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/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 index 95c4e7dea816..ad1e52cb5388 100644 --- a/CIPP-Permissions.json +++ b/CIPP-Permissions.json @@ -425,6 +425,11 @@ "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": "424b07a8-1209-4d17-9fe4-9018a93a1024", + "Name": "TeamsTelephoneNumber.ReadWrite.All", + "Description": "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." + }, { "Id": "b7887744-6746-4312-813d-72daeaee7e2d", "Name": "UserAuthenticationMethod.ReadWrite.All", @@ -697,6 +702,11 @@ "Name": "User.ReadWrite.All", "Description": "Allows the app to read and update user profiles without a signed in user." }, + { + "Id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", + "Name": "TeamsTelephoneNumber.ReadWrite.All", + "Description": "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." + }, { "Id": "50483e42-d915-4231-9639-7fdb7fd190e5", "Name": "UserAuthenticationMethod.ReadWrite.All", 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/CIPPTimers.json b/CIPPTimers.json index cbd1366a5363..4bbf8518afc6 100644 --- a/CIPPTimers.json +++ b/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 */1 * * *", + "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", diff --git a/CommunityRepos.json b/CommunityRepos.json index e34aafb8c821..9d6d702d0161 100644 --- a/CommunityRepos.json +++ b/CommunityRepos.json @@ -1,4 +1,22 @@ [ + { + "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", @@ -52,5 +70,23 @@ "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/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..9a451842ed8e 100644 --- a/Config/schemaDefinitions.json +++ b/Config/schemaDefinitions.json @@ -1,16 +1,17 @@ [ - { - "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": "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 a9a336b70b3a..3c40463ff676 100644 --- a/Config/standards.json +++ b/Config/standards.json @@ -965,10 +965,18 @@ "name": "standards.DisableGuests", "cat": "Entra (AAD) Standards", "tag": [], - "helpText": "Blocks login for guest users that have not logged in for 90 days", - "executiveText": "Automatically disables external guest accounts that haven't been used for 90 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": [], - "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", @@ -2283,6 +2291,13 @@ ], "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", @@ -2330,6 +2345,13 @@ ], "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)", @@ -2540,6 +2562,13 @@ ], "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, @@ -2684,6 +2713,13 @@ ], "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, @@ -2803,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)", @@ -3428,6 +3472,163 @@ "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", @@ -4607,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" + } + ] } ] }, @@ -4750,6 +4975,35 @@ } ] }, + { + "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", diff --git a/ConversionTable.csv b/ConversionTable.csv index 2658524b8cf2..27ee53d2fe35 100644 --- a/ConversionTable.csv +++ b/ConversionTable.csv @@ -65,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 @@ -240,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 @@ -2246,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 @@ -3680,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste 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 @@ -4331,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 @@ -5127,6 +5257,11 @@ Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN36 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 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/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/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.3.1/CHANGELOG.md b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md similarity index 62% rename from Modules/AzBobbyTables/3.3.1/CHANGELOG.md rename to Modules/AzBobbyTables/3.4.0/CHANGELOG.md index 8b9681a286b1..3a3ec108efc8 100644 --- a/Modules/AzBobbyTables/3.3.1/CHANGELOG.md +++ b/Modules/AzBobbyTables/3.4.0/CHANGELOG.md @@ -6,7 +6,27 @@ The format is based on and uses the types of changes according to [Keep a Change ### 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 + +## [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 @@ -49,7 +69,11 @@ The format is based on and uses the types of changes according to [Keep a Change ## 3.1.1 - 2023-05-03 -[Unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.0...HEAD +[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 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.3.1/PSGetModuleInfo.xml b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml similarity index 57% rename from Modules/AzBobbyTables/3.3.1/PSGetModuleInfo.xml rename to Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml index 2559d56021b4..64fa6faf50b2 100644 --- a/Modules/AzBobbyTables/3.3.1/PSGetModuleInfo.xml +++ b/Modules/AzBobbyTables/3.4.0/PSGetModuleInfo.xml @@ -1,143 +1,145 @@ - - - - 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 -
-
-
+ + + + 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/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll new file mode 100644 index 000000000000..390182c78ad8 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/Azure.Core.dll differ 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/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll new file mode 100644 index 000000000000..0cb4427b10db Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.ClientModel.dll differ 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/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll new file mode 100644 index 000000000000..ed4f7b399813 Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Memory.Data.dll differ 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/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll new file mode 100644 index 000000000000..c1df9f92f2ca Binary files /dev/null and b/Modules/AzBobbyTables/3.4.0/dependencies/System.Text.Json.dll differ 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/Public/Add-CIPPApplicationPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 index 80241c161acf..ddcbd3447e9e 100644 --- a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 @@ -4,9 +4,9 @@ function Add-CIPPApplicationPermission { $RequiredResourceAccess, $TemplateId, $ApplicationId, - $Tenantfilter + $TenantFilter ) - if ($ApplicationId -eq $env:ApplicationID -and $Tenantfilter -eq $env:TenantID) { + if ($ApplicationId -eq $env:ApplicationID -and $TenantFilter -eq $env:TenantID) { #return @('Cannot modify application permissions for CIPP-SAM on partner tenant') $RequiredResourceAccess = 'CIPPDefaults' } @@ -60,18 +60,18 @@ function Add-CIPPApplicationPermission { } - $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $Tenantfilter -NoAuthCheck $true + $ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true $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 = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -skipTokenCache $true -tenantid $TenantFilter -NoAuthCheck $true $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) { $svcPrincipalId = $ServicePrincipalList | Where-Object -Property AppId -EQ $App.resourceAppId @@ -80,7 +80,7 @@ function Add-CIPPApplicationPermission { $Body = @{ appId = $App.resourceAppId } | ConvertTo-Json -Compress - $svcPrincipalId = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $Tenantfilter -body $Body -type POST + $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 @@ -98,7 +98,7 @@ function Add-CIPPApplicationPermission { $counter = 0 foreach ($Grant in $Grants) { 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 + $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++ } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message 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-CIPPDelegatedPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 index d2a4f8cd19e1..e06e3493ce0c 100644 --- a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 @@ -5,12 +5,12 @@ 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 +35,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 @@ -70,11 +70,11 @@ 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 + $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 ad3a24553976..4dd7e2a14e77 100644 --- a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 @@ -19,6 +19,9 @@ 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 @@ -53,7 +56,7 @@ function Add-CIPPScheduledTask { $propertiesToCheck = @('Webhook', 'Email', 'PSA') $PostExecutionObject = ($propertiesToCheck | Where-Object { $task.PostExecution.$_ -eq $true }) - $PostExecution = $PostExecutionObject ? ($PostExecutionObject -join ',') : ($Task.PostExecution.value -join ',') + $PostExecution = $PostExecutionObject ? @($PostExecutionObject -join ',') : ($Task.PostExecution.value -join ',') $Parameters = [System.Collections.Hashtable]@{} foreach ($Key in $task.Parameters.PSObject.Properties.Name) { $Param = $task.Parameters.$Key @@ -119,8 +122,28 @@ function Add-CIPPScheduledTask { $task.Recurrence.value } - if ([int64]$task.ScheduledTime -eq 0 -or [string]::IsNullOrEmpty($task.ScheduledTime)) { - $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + if ($task.PSObject.Properties.Name -notcontains 'ScheduledTime') { + $task | Add-Member -MemberType NoteProperty -Name 'ScheduledTime' -Value 0 -Force + } + + 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 ',' @@ -165,6 +188,13 @@ function Add-CIPPScheduledTask { 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 @@ -181,6 +211,40 @@ function Add-CIPPScheduledTask { # 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 } @@ -188,14 +252,17 @@ function Add-CIPPScheduledTask { Add-CIPPAzDataTableEntity @Table -Entity $entity -Force } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - return "Could not add task: $ErrorMessage" + 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 return "Successfully added task: $($entity.Name)" } } catch { Write-Warning "Failed to add scheduled task: $($_.Exception.Message)" - Write-Information $_.InvocationInfo.PositionMessage $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message - throw "Could not add task: $ErrorMessage" + #Write-Information ($Task | ConvertTo-Json) + throw "Error - Could not add task: $ErrorMessage" } } 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..a9816aa5aef6 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertEntraConnectSyncStatus.ps1 @@ -20,10 +20,18 @@ 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 } } diff --git a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 index 1c8046934429..a1b626f4662e 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertExpiringLicenses.ps1 @@ -4,7 +4,7 @@ function Get-CIPPAlertExpiringLicenses { Entrypoint #> [CmdletBinding()] - Param ( + param ( [Parameter(Mandatory = $false)] [Alias('input')] $InputValue, @@ -12,12 +12,24 @@ function Get-CIPPAlertExpiringLicenses { ) try { $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)" + $TermData = $_.TermInfo | ConvertFrom-Json + foreach ($Term in $TermData) { + if ($Term.DaysUntilRenew -lt 30 -and $Term.DaysUntilRenew -gt 0) { + Write-Host "$($_.License) will expire in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + [PSCustomObject]@{ + Message = "$($_.License) will expire in $($Term.DaysUntilRenew) days. The estimated term is $($Term.Term)" + License = $_.License + SkuId = $_.skuId + DaysUntilRenew = $Term.DaysUntilRenew + Term = $Term.Term + Status = $Term.Status + TotalLicenses = $Term.TotalLicenses + CountUsed = $_.CountUsed + NextLifecycle = $Term.NextLifecycle + Tenant = $_.Tenant + } + } } - } Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData 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..964e60d5a375 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, @@ -18,7 +18,7 @@ function Get-CIPPAlertInactiveLicensedUsers { $Lookup = (Get-Date).AddDays(-90).ToUniversalTime() # Build base filter - cannot filter assignedLicenses server-side - $BaseFilter = if ($InputValue -eq $true) { "accountEnabled eq true" } else { "" } + $BaseFilter = if ($InputValue -eq $true) { '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 +56,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-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-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..138ba2870631 --- /dev/null +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertMXRecordChanged.ps1 @@ -0,0 +1,45 @@ +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 } + if ($PreviousDomain -and $PreviousDomain.ActualMXRecords -ne $Domain.ActualMXRecords) { + "$($Domain.Domain): MX records changed from [$($PreviousDomain.ActualMXRecords -join ', ')] to [$($Domain.ActualMXRecords -join ', ')]" + } + } + + if ($ChangedDomains) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $ChangedDomains + } + + # Update cache with current data + foreach ($Domain in $DomainData) { + $CacheEntity = @{ + PartitionKey = $TenantFilter + RowKey = $Domain.Domain + Domain = $Domain.Domain + ActualMXRecords = $Domain.ActualMXRecords + LastRefresh = $Domain.LastRefresh + MailProvider = $Domain.MailProvider + } + Add-CIPPAzDataTableEntity @CacheTable -Entity $CacheEntity -Force + } + } 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..c6da6950077f 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1 @@ -15,6 +15,7 @@ function Get-CIPPAlertNewAppApproval { try { $Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$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 @@ -29,13 +30,17 @@ function Get-CIPPAlertNewAppApproval { } $Message = [PSCustomObject]@{ + RequestId = $_.id AppName = $App.appDisplayName RequestUser = $_.createdBy.user.userPrincipalName Reason = $_.reason + RequestDate = $_.createdDateTime + Status = $_.status # Will allways 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) } 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 4fe56c864570..4cbb4580d160 100644 --- a/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 +++ b/Modules/CIPPCore/Public/Alerts/Get-CIPPAlertOnedriveQuota.ps1 @@ -32,7 +32,17 @@ function Get-CIPPAlertOneDriveQuota { if ($UsagePercent -gt $InputValue) { $GBLeft = [math]::Round(($_.storageAllocatedInBytes - $_.storageUsedInBytes) / 1GB) - "$($_.ownerPrincipalName): OneDrive is $UsagePercent% full. OneDrive has $($GBLeft)GB storage left" + [PSCustomObject]@{ + Details = @{ + 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-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..23921f7899a7 --- /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-AlertMessage -tenant $($TenantFilter) -message "Could not get restricted users for $($TenantFilter): $(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-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..37db5976d94f 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,6 +29,7 @@ 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 } 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-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 2cbbd76e9e8d..7b07fcfe8c0f 100644 --- a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 +++ b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 @@ -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-CIPPHttpFunctions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 index 643130adb428..178ee74fb4ab 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPHttpFunctions.ps1 @@ -11,21 +11,21 @@ function Get-CIPPHttpFunctions { 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-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 index 0f11f47d8684..a52728c6d5d7 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 @@ -70,7 +70,6 @@ function Get-CippAllowedPermissions { # For admin and superadmin: Compute permissions from base role include/exclude rules if ($PrimaryRole -in @('admin', 'superadmin')) { - Write-Information "Computing permissions for $PrimaryRole using base role rules" if ($BaseRole) { # Start with all permissions and apply include/exclude rules @@ -143,7 +142,19 @@ function Get-CippAllowedPermissions { } # Restrict base permissions to only those allowed by custom roles - $RestrictedPermissions = $BasePermissions | Where-Object { $CustomRolePermissions -contains $_ } + # 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) @@ -161,8 +172,6 @@ function Get-CippAllowedPermissions { } # Handle users with only custom roles (no base role) elseif ($CustomRoles.Count -gt 0) { - Write-Information 'Computing permissions for custom roles only' - foreach ($CustomRole in $CustomRoles) { try { $RolePermissions = Get-CIPPRolePermissions -RoleName $CustomRole @@ -178,5 +187,5 @@ function Get-CippAllowedPermissions { } # Return sorted unique permissions - return ($AllowedPermissions | Sort-Object -Unique) + 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..d81c8f2ae54a 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippApiAuth.ps1 @@ -19,7 +19,7 @@ function Get-CippApiAuth { if ($AuthSettings.properties) { [PSCustomObject]@{ - ApiUrl = "https://$($FunctionAppName).azurewebsites.net" + ApiUrl = "https://$($env:WEBSITE_HOSTNAME)" 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 diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 index 43b3de6e8141..31c817c0b583 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 @@ -1,7 +1,8 @@ function Test-CIPPAccess { param( $Request, - [switch]$TenantList + [switch]$TenantList, + [switch]$GroupList ) if ($Request.Params.CIPPEndpoint -eq 'ExecSAMSetup') { return $true } @@ -79,7 +80,7 @@ function Test-CIPPAccess { } if ($Request.Params.CIPPEndpoint -eq 'me') { $Permissions = Get-CippAllowedPermissions -UserRoles $CustomRoles - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ( @{ @@ -90,7 +91,6 @@ function Test-CIPPAccess { 'permissions' = $Permissions } | ConvertTo-Json -Depth 5) }) - return } } else { @@ -107,7 +107,7 @@ function Test-CIPPAccess { if ($Request.Params.CIPPEndpoint -eq 'me') { if (!$User.userRoles) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ( @{ @@ -118,7 +118,7 @@ function Test-CIPPAccess { } $Permissions = Get-CippAllowedPermissions -UserRoles $User.userRoles - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = ( @{ @@ -126,7 +126,6 @@ function Test-CIPPAccess { 'permissions' = $Permissions } | ConvertTo-Json -Depth 5) }) - return } if ($User.userRoles -contains 'admin' -or $User.userRoles -contains 'superadmin') { @@ -199,6 +198,7 @@ function Test-CIPPAccess { continue } } + if ($PermissionsFound) { if ($TenantList.IsPresent) { $LimitedTenantList = foreach ($Permission in $PermissionSet) { @@ -240,7 +240,21 @@ function Test-CIPPAccess { $ExpandedAllowedTenants | Where-Object { $ExpandedBlockedTenants -notcontains $_ } } } - return $LimitedTenantList + return @($LimitedTenantList | Sort-Object -Unique) + } elseif ($GroupList.IsPresent) { + 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 + } + } + } + } + return @($LimitedGroupList | Sort-Object -Unique) } $TenantAllowed = $false @@ -248,18 +262,23 @@ function Test-CIPPAccess { 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 @@ -326,12 +345,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 diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 index d5293966cf77..ec7bf596ca37 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 @@ -20,9 +20,15 @@ function Test-CIPPAccessUserRole { $User ) $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 + + try { + $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 + } catch { + 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 @@ -31,9 +37,9 @@ function Test-CIPPAccessUserRole { $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)" + Write-Information "Found group memberships for $($User.userDetails)" } else { - Write-Information "No user roles found for $($User.userDetails)" + Write-Information "No group memberships found for $($User.userDetails)" } } catch { Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)" @@ -41,23 +47,34 @@ function Test-CIPPAccessUserRole { } $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups - $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable + $AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'" + $CustomRolesTable = Get-CippTable -TableName CustomRoles + $CustomRoles = Get-CIPPAzDataTableEntity @CustomRolesTable -Filter "PartitionKey eq 'CustomRoles'" + $BaseRoles = @('superadmin', 'admin', 'editor', 'readonly') $Roles = foreach ($AccessGroup in $AccessGroups) { - if ($Memberships.id -contains $AccessGroup.GroupId) { + if ($Memberships.id -contains $AccessGroup.GroupId -and ($CustomRoles.RowKey -contains $AccessGroup.RowKey -or $BaseRoles -contains $AccessGroup.RowKey)) { $AccessGroup.RowKey } } $Roles = @($Roles) + @($User.userRoles) - if (($Roles | Measure-Object).Count -gt 0) { - $UserRole = [PSCustomObject]@{ - PartitionKey = 'AccessUser' - RowKey = [string]$User.userDetails - Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + if ($Roles) { + Write-Information "Roles determined for $($User.userDetails): $($Roles -join ', ')" + } + + if (($Roles | Measure-Object).Count -gt 2) { + try { + $UserRole = [PSCustomObject]@{ + PartitionKey = 'AccessUser' + RowKey = [string]$User.userDetails + Role = [string](ConvertTo-Json -Compress -InputObject $Roles) + } + Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force + } catch { + Write-Information "Could not cache user roles for $($User.userDetails). $($_.Exception.Message)" } - Add-CIPPAzDataTableEntity @Table -Entity $UserRole -Force } } $User.userRoles = $Roles 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/Clear-CIPPImmutableId.ps1 b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 index eaba79df769d..60255008687e 100644 --- a/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 +++ b/Modules/CIPPCore/Public/Clear-CIPPImmutableId.ps1 @@ -8,6 +8,17 @@ function Clear-CIPPImmutableId { ) 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 diff --git a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 index 44c77f74e82c..6b0edd1a0caa 100644 --- a/Modules/CIPPCore/Public/Clear-CippDurables.ps1 +++ b/Modules/CIPPCore/Public/Clear-CippDurables.ps1 @@ -1,6 +1,6 @@ function Clear-CippDurables { [CmdletBinding(SupportsShouldProcess = $true)] - Param() + param() # Collect info $StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage $FunctionName = $env:WEBSITE_SITE_NAME -replace '-', '' @@ -8,6 +8,13 @@ function Clear-CippDurables { # 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 @@ -19,8 +26,6 @@ function Clear-CippDurables { } } - Remove-AzDataTable @InstancesTable - Remove-AzDataTable @HistoryTable $BlobContainer = '{0}-largemessages' -f $FunctionName if (Get-AzStorageContainer -Name $BlobContainer -Context $StorageContext -ErrorAction SilentlyContinue) { Write-Information "- Removing blob container: $BlobContainer" @@ -29,32 +34,6 @@ function Clear-CippDurables { } } - $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 = Get-CippTable -TableName ('{0}History' -f $FunctionName) Write-Information 'Durable Orchestrators and Queues have been cleared' return $true diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 index 2de562a1fdf8..da8f54359689 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 @@ -217,6 +217,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,37 +344,15 @@ 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 { @@ -318,40 +416,15 @@ 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 - } - if (!$childValue -and $child.simpleSettingValue.value) { - $childValue = $child.simpleSettingValue.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 { diff --git a/Modules/CIPPCore/Public/ConversionTable.csv b/Modules/CIPPCore/Public/ConversionTable.csv index 2658524b8cf2..27ee53d2fe35 100644 --- a/Modules/CIPPCore/Public/ConversionTable.csv +++ b/Modules/CIPPCore/Public/ConversionTable.csv @@ -65,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 @@ -240,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 @@ -2246,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 @@ -3680,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste 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 @@ -4331,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 @@ -5127,6 +5257,11 @@ Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN36 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 diff --git a/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 index 27d77acb5c87..2e96f68871a9 100644 --- a/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 +++ b/Modules/CIPPCore/Public/CustomData/Invoke-CustomDataSync.ps1 @@ -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 index 9ec6c2bbdd0c..3ff6452739af 100644 --- a/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 +++ b/Modules/CIPPCore/Public/DeltaQueries/New-GraphDeltaQuery.ps1 @@ -4,61 +4,167 @@ function New-GraphDeltaQuery { 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')] - [string]$TenantFilter, + $TenantFilter, [Parameter(ParameterSetName = 'NewDeltaQuery', Mandatory = $true)] - [ValidateSet('users', 'groups', 'contacts', 'devices', 'applications', 'servicePrincipals', 'directoryObjects', 'administrativeUnits')] + [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 + [string]$DeltaUrl, + + [Parameter(Mandatory = $false, ParameterSetName = 'NewDeltaQuery')] + [Parameter(Mandatory = $true, ParameterSetName = 'DeltaUrl')] + [string]$PartitionKey ) - try { - if ($DeltaUrl) { - $GraphQuery = [System.UriBuilder]$DeltaUrl + 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 { - $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/beta/{0}/delta' -f $Resource) - $QueryParams = @{ - '$deltaToken' = 'latest' + $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 } - $ParamCollection = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) + } - foreach ($key in $QueryParams.Keys) { - if ($QueryParams[$key]) { - $ParamCollection.Add($key, $QueryParams[$key]) - } + $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'" + } - foreach ($Item in ($Parameters.GetEnumerator() | Sort-Object -CaseSensitive -Property Key)) { - if ($Item.Value -is [System.Boolean]) { - $Item.Value = $Item.Value.ToString().ToLower() + try { + if ($DeltaUrl) { + $GraphQuery = [System.UriBuilder]$DeltaUrl + } else { + $GraphQuery = [System.UriBuilder]('https://graph.microsoft.com/beta/{0}/delta' -f $Resource) + $QueryParams = @{ + '$deltaToken' = 'latest' } - if ($Item.Value) { - $ParamCollection.Add($Item.Key, $Item.Value) + $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() } - $GraphQuery.Query = $ParamCollection.ToString() - } - #Write-Information "Creating Delta Query for $Resource with parameters: $($GraphQuery.Query)" - $response = New-GraphGetRequest -tenantid $TenantFilter -uri $GraphQuery.ToString() -ReturnRawResponse - Write-Information "Delta Query created successfully for $Resource. Response: $($response | ConvertTo-Json -Depth 5)" - return $response.Content - } catch { - Write-Error "Failed to create Delta Query: $(Get-NormalizedError -Message $_.Exception.message)" - Write-Warning $_.InvocationInfo.PositionMessage + $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..09eabf880be8 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]@{ @@ -159,7 +159,7 @@ function Push-BECRun { NewUsers = @($NewUsers) MFADevices = @($MFADevices) 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/Domain Analyser/Push-DomainAnalyserTenant.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Domain Analyser/Push-DomainAnalyserTenant.ps1 index 96b434147f30..586518f8afe1 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 @@ -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 = $_ @@ -100,6 +102,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) 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/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-ExecAppApprovalTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 index acde7892b480..e6eec613a662 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecAppApprovalTemplate.ps1 @@ -10,7 +10,7 @@ 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 } # Get the template data to determine if it's a Gallery Template or Enterprise App @@ -19,7 +19,7 @@ function Push-ExecAppApprovalTemplate { if (!$Template) { Write-LogMessage -message "Template $TemplateId not found" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error - return + return $false } $TemplateData = $Template.JSON | ConvertFrom-Json @@ -37,14 +37,14 @@ function Push-ExecAppApprovalTemplate { $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 + 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 + return $true } # Instantiate the gallery template @@ -74,14 +74,36 @@ function Push-ExecAppApprovalTemplate { $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 + return $false } # Check for existing application by display name - $ExistingApp = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/applications?`$filter=displayName eq '$($TemplateData.AppName)'&`$top=1" -tenantid $Item.Tenant -NoAuthCheck $true - if ($ExistingApp -and $ExistingApp.value) { - Write-LogMessage -message "Application Manifest $($TemplateData.AppName) already exists in tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add App Manifest' -sev Info - return + $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') @@ -103,22 +125,20 @@ function Push-ExecAppApprovalTemplate { appId = $CreatedApp.appId } | ConvertTo-Json - $ServicePrincipal = New-GraphPostRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body $ServicePrincipalBody + $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 - $DelegateResourceAccess = $ApplicationManifest.requiredResourceAccess - $ApplicationResourceAccess = $ApplicationManifest.requiredResourceAccess - if ($ApplicationManifest.requiredResourceAccess) { - Add-CIPPDelegatedPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $App -Tenantfilter $Tenant - Add-CIPPApplicationPermission -RequiredResourceAccess $ApplicationManifest.requiredResourceAccess -ApplicationId $App -Tenantfilter $Tenant - } + 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 + throw $_.Exception.Message } } else { 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..f7cd1a3dc2a0 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 diff --git a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 index cbc9cc65fc8f..7614842279e4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 @@ -7,6 +7,8 @@ function Push-ExecScheduledCommand { $item = $Item | ConvertTo-Json -Depth 100 | ConvertFrom-Json Write-Information "We are going to be running a scheduled task: $($Item.TaskInfo | ConvertTo-Json -Depth 10)" + $script:ScheduledTaskId = $Item.TaskInfo.RowKey + $Table = Get-CippTable -tablename 'ScheduledTasks' $task = $Item.TaskInfo $commandParameters = $Item.Parameters | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable @@ -18,6 +20,67 @@ function Push-ExecScheduledCommand { # 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') { + Write-Information "The task $($task.Name) for tenant $($task.Tenant) is already completed. Skipping 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 @@ -36,6 +99,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 } @@ -54,18 +118,72 @@ function Push-ExecScheduledCommand { Write-Information "Failed to remove parameters: $($_.Exception.Message)" } - Write-Information "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-Information "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)" - $State = 'Failed' + 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-Information '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.' @@ -144,9 +262,15 @@ function Push-ExecScheduledCommand { 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 + $HTML = $FinalResults -replace '
', "This alert is for tenant $Tenant.

$TableDesign
" | Out-String + + # Add alert comment if available + if ($task.AlertComment) { + $HTML += "

Alert Information

$($task.AlertComment)

" + } + $title = "$TaskType - $Tenant - $($task.Name)" Write-Information 'Scheduler: Sending the results to the target.' Write-Information "The content of results is: $Results" @@ -155,10 +279,11 @@ function Push-ExecScheduledCommand { '*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) } @@ -167,7 +292,7 @@ function Push-ExecScheduledCommand { Write-Information 'Sent the results to the target. Updating the task state.' try { - if ($task.Recurrence -eq '0' -or [string]::IsNullOrEmpty($task.Recurrence)) { + 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 @@ -211,4 +336,5 @@ 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 } 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-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..438511222545 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' 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..e5d7fe008cbb --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPDriftManagement.ps1 @@ -0,0 +1,79 @@ +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 = (Get-CIPPTenantAlignment -TenantFilter $Item.Tenant | Where-Object -Property standardType -EQ 'drift') + $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 + $Data = $Drift.currentDeviations | ForEach-Object { + $currentValue = if ($_.receivedValue -and $_.receivedValue.Length -gt 200) { + $_.receivedValue.Substring(0, 200) + '...' + } else { + $_.receivedValue + } + [PSCustomObject]@{ + Standard = $_.standardDisplayName ? $_.standardDisplayName : $_.standardName + 'Expected Value' = $_.expectedValue + 'Current Value' = $currentValue + Status = $_.status + } + } + + $GenerateEmail = New-CIPPAlertTemplate -format 'html' -data $Data -CIPPURL $CIPPURL -Tenant $Item.Tenant -InputObject 'driftStandard' -AuditLogLink $drift.standardId + $CIPPAlert = @{ + Type = 'email' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Write-Host 'Going to send the mail' + Send-CIPPAlert @CIPPAlert -altEmail $email + $WebhookData = @{ + Title = $GenerateEmail.title + ActionUrl = $GenerateEmail.ButtonUrl + ActionText = $GenerateEmail.ButtonText + AlertData = $Data + Tenant = $Item.Tenant + } | ConvertTo-Json -Depth 15 -Compress + $CippAlert = @{ + Type = 'webhook' + Title = $GenerateEmail.title + JSONContent = $WebhookData + TenantFilter = $Item.Tenant + } + Write-Host 'Sending Webhook Content' + Send-CIPPAlert @CippAlert -altWebhook $webhook + #Always do PSA. + $CIPPAlert = @{ + Type = 'psa' + Title = $GenerateEmail.title + HTMLContent = $GenerateEmail.htmlcontent + TenantFilter = $Item.Tenant + } + Send-CIPPAlert @CIPPAlert + 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..b48f9f42b954 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 @@ -12,20 +12,51 @@ function Push-CIPPStandard { $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 + } + + $Script:StandardInfo = $StandardInfo + 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 + } + + & $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop Write-Information "Standard $($Standard) completed for tenant $($Tenant)" } catch { 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 { + Remove-Variable -Name StandardInfo -Scope Script -ErrorAction SilentlyContinue } } 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/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-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-ExecCPVRefresh.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCPVRefresh.ps1 index 972d03b87485..5459d1fab375 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,14 +11,9 @@ 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' 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..2db5725ce7b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCloneTemplate.ps1 @@ -0,0 +1,63 @@ +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 + $Template.Package = $null + $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-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 cb88cf706419..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,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecEditTemplate { <# .FUNCTIONALITY @@ -11,21 +9,41 @@ 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.id ? $request.body.id : $request.body.GUID - $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.body | Select-Object * -ExcludeProperty GUID) - $Type = $request.query.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 = ConvertTo-Json -Compress -Depth 100 -InputObject $Request.body.parsedRAWJson - 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 @{ @@ -34,7 +52,7 @@ function Invoke-ExecEditTemplate { 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' } @@ -44,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-ExecListBackup.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecListBackup.ps1 index fe9fa4b02aae..bd7c0445bf3a 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,31 @@ 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') -and $_.Value } + [PSCustomObject]@{ + BackupName = $item.RowKey + Timestamp = $item.Timestamp + Items = $properties.Name + } + } + $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..21febc29a539 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' @@ -77,7 +72,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 704a75cb30ad..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 @@ -7,11 +7,6 @@ function Invoke-ExecServicePrincipals { #> [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 @@ -94,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..4898e5bb8def --- /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 + } + + + 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..db079c9d79f7 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,21 @@ 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 + 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 + } + $Response.AllowedTenants = $script:AllowedTenants + $Response.AllowedGroups = $script:AllowedGroups - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + 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-ListDirectoryObjects.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1 index 489bf3371654..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 @@ -7,12 +7,7 @@ function Invoke-ListDirectoryObjects { #> [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 @@ -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..17f35f5adf12 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 @@ -31,10 +29,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 = $Request.Query.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 10d66559b4b5..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 RowKey, Name, TaskState, Command, Parameters, Recurrence, ExecutedTime, ScheduledTime, PostExecution, Tenant, TenantGroup, 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" }) @@ -86,6 +81,18 @@ function Invoke-ListScheduledItemDetails { $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'" @@ -193,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 68d4e7f692c2..edc9691e2c61 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,11 +7,6 @@ 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' - $ScheduledItemFilter = [System.Collections.Generic.List[string]]::new() $ScheduledItemFilter.Add("PartitionKey eq 'ScheduledTask'") @@ -26,6 +19,7 @@ function Invoke-ListScheduledItems { $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') @@ -53,6 +47,10 @@ function Invoke-ListScheduledItems { $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') { @@ -108,12 +106,22 @@ function Invoke-ListScheduledItems { 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 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 c967d94f6f28..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,37 +1,44 @@ -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..a9ef82959f51 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,11 +7,6 @@ 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 $SWAName = $env:WEBSITE_SITE_NAME -replace 'cipp', 'CIPP-SWA-' @@ -21,7 +14,7 @@ Function Invoke-ExecBackendURLs { 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 @@ -44,8 +37,7 @@ Function Invoke-ExecBackendURLs { $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-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..efd32dc5b5d4 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 @@ -12,7 +12,16 @@ function Invoke-ExecCustomRole { $AccessRoleGroupTable = Get-CippTable -tablename 'AccessRoleGroups' $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,13 +33,14 @@ 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) { + 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") @@ -60,10 +70,50 @@ 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 + $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 + } $Body = @{Results = 'Custom role deleted' } Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Deleted custom role $($Request.Body.RoleName)" -Sev 'Info' } @@ -90,13 +140,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,11 +155,20 @@ 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 } } @@ -118,12 +177,13 @@ function Invoke-ExecCustomRole { } $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) { @@ -136,7 +196,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-ExecExcludeLicenses.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecExcludeLicenses.ps1 index 936659310732..26d3db6edf2f 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecExcludeLicenses { <# .FUNCTIONALITY @@ -11,11 +9,6 @@ Function Invoke-ExecExcludeLicenses { 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 ExcludedLicenses try { @@ -64,8 +57,7 @@ Function Invoke-ExecExcludeLicenses { $body = [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 = $body }) 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-ExecMaintenanceScripts.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecMaintenanceScripts.ps1 index 42eeded7c863..9fba0a453be0 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 @@ -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 c332ff12cd8b..52d1a81378ad 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 @@ -83,7 +83,7 @@ function Invoke-ExecPermissionRepair { } } - 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..37f08dcd22de 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,13 +9,11 @@ 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)'" + $Backup = Get-CippAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.BackupName)' or OriginalEntityId eq '$($Request.Body.BackupName)'" if ($Backup) { $BackupData = $Backup.Backup | ConvertFrom-Json -ErrorAction SilentlyContinue | Select-Object * -ExcludeProperty ETag, Timestamp $BackupData | ForEach-Object { @@ -27,7 +23,7 @@ Function Invoke-ExecRestoreBackup { $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 +40,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 +52,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 5ab6cf634b28..0e33e92067e3 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 @@ -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.DynamicRules = "$($dynamicRules | ConvertTo-Json -Depth 100 -Compress)" + $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-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 51e23977d3ec..0fac4036a55f 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 @@ -129,7 +124,7 @@ 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-ListTenantGroups.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListTenantGroups.ps1 index 790ccae6ff2c..7de5c13c4ad9 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 @@ -14,7 +14,7 @@ function Invoke-ListTenantGroups { $TenantGroups = (Get-TenantGroups -GroupId $groupFilter) ?? @() $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..5d9b59c9616a 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 @@ -73,8 +71,7 @@ function Invoke-ExecAddTenant { $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..1bf97df9724b 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 @@ -14,7 +12,7 @@ function Invoke-ExecCombinedSetup { $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) { + if (($env:AzureWebJobsStorage -ne 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -ne '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 @@ -67,7 +65,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,6 +83,7 @@ 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 { @@ -100,6 +99,10 @@ function Invoke-ExecCombinedSetup { Set-AzKeyVaultSecret -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-AzKeyVaultSecret -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 +115,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..1aa1fb57bf8a 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 @@ -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 } @@ -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..fc124c54c5c7 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) { @@ -63,7 +56,7 @@ 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 } @@ -86,7 +79,7 @@ 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 @@ -95,7 +88,7 @@ function Invoke-ExecSAMSetup { 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 { @@ -192,7 +185,7 @@ 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 @@ -239,8 +232,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..a046cc2e92e8 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecTokenExchange { <# .FUNCTIONALITY @@ -34,7 +32,7 @@ Function Invoke-ExecTokenExchange { # 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'" $ClientSecret = $Secret.applicationsecret @@ -75,13 +73,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..fcaa4156c323 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,7 +15,7 @@ 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'" @@ -51,17 +49,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 be57d83d393f..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,5 +1,3 @@ -using namespace System.Net - function Invoke-AddSharedMailbox { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ 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.Generic.List[string]]::new() $MailboxObject = $Request.Body @@ -73,8 +71,7 @@ function Invoke-AddSharedMailbox { } - # 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-ExecConvertMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecConvertMailbox.ps1 index 40c35048cb4a..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 @@ -12,7 +10,7 @@ Function Invoke-ExecConvertMailbox { $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 @@ -26,8 +24,7 @@ Function Invoke-ExecConvertMailbox { $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 } }) 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 c3fa53a4d50f..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 @@ -110,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 593c69f6eaac..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 @@ -61,8 +59,7 @@ Function Invoke-ExecEmailForward { } } - # 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-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 ec262837d003..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 @@ -29,8 +27,7 @@ Function Invoke-ExecRemoveMailboxRule { $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-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..61f14eef0be4 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,9 +9,6 @@ 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 @@ -32,8 +27,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..65a0ee9d6e7c 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,35 @@ 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" + QueueId = $RunningQueue.RowKey } [PSCustomObject]@{ Waiting = $true } } 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 +44,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]@{ @@ -62,9 +63,8 @@ Function Invoke-ListMailboxRules { } } 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 +80,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..6945b4881e7b 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListmailboxPermissions { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ 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 @@ -70,8 +63,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..e90ed122fc89 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListMailboxCAS { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ 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 { @@ -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..1249f3f14a6c 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 @@ -28,24 +22,25 @@ Function Invoke-ListSharedMailboxAccountEnabled { if ($User) { # 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 1bff3ee58b80..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 @@ -53,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 index 71135e9f31bb..f8ed1bd373f9 100644 --- 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 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddRoomList { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-AddRoomList { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + $Tenant = $Request.Body.tenantFilter ?? $Request.Body.tenantid @@ -49,8 +47,7 @@ Function Invoke-AddRoomList { } $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-AddRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-AddRoomMailbox.ps1 index 50888f859309..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 @@ -48,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 index dfe1a1393259..8d6f3e819ab2 100644 --- 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 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-EditRoomList { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ Function Invoke-EditRoomList { $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]]::new() $RoomListObj = $Request.Body @@ -169,8 +167,7 @@ Function Invoke-EditRoomList { Write-LogMessage -headers $Headers -API $APIName -tenant $TenantId -message "Failed to edit room list: $($_.Exception.Message)" -Sev 'Error' } - # 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/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 index 2b3f42107b80..7b976f0b9861 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 @@ -117,8 +112,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 fc17e325ad3f..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,11 +7,6 @@ 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 @@ -108,8 +101,7 @@ Function Invoke-ListRoomLists { $ResponseBody = $ErrorMessage } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode 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..4218cd7a19ba 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 @@ -173,8 +166,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..b01f46feebf4 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 @@ -29,6 +24,7 @@ function Invoke-ListMailQuarantine { if ($RunningQueue) { $Metadata = [PSCustomObject]@{ QueueMessage = 'Still loading data for all tenants. Please check back in a few more minutes' + QueueId = $RunningQueue.RowKey } [PSCustomObject]@{ Waiting = $true @@ -39,6 +35,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' @@ -57,6 +54,9 @@ function Invoke-ListMailQuarantine { Waiting = $true } } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } $messages = $Rows foreach ($message in $messages) { $messageObj = $message.QuarantineMessage | ConvertFrom-Json @@ -80,8 +80,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..84b8abd072ca 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,5 @@ function Invoke-ListExoRequest { 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 +39,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 +91,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..55e74c8693e0 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,7 +10,7 @@ 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 @@ -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..4395e899a8fe 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 = if ($Request.Body.AssignTo -ne 'on') { $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..6b34aaaea5d4 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddStoreApp { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ 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 @@ -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..b9699fc7db68 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListApps { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ListApps { #> [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-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/Invoke-RemoveQueuedApp.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 similarity index 74% rename from Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 rename to Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 index 6c80a2c62572..f54ceb7c2cac 100644 --- a/Modules/CIPPCore/Public/Invoke-RemoveQueuedApp.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-RemoveQueuedApp.ps1 @@ -1,6 +1,6 @@ using namespace System.Net -Function Invoke-RemoveQueuedApp { +function Invoke-RemoveQueuedApp { <# .FUNCTIONALITY Entrypoint @@ -11,9 +11,6 @@ Function Invoke-RemoveQueuedApp { 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' @@ -31,11 +28,10 @@ Function Invoke-RemoveQueuedApp { } $body = [pscustomobject]@{'Results' = $Message } - # Associate values to output bindings by calling 'Push-OutputBinding'. - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = $body - }) + 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 5ccce144b576..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,7 +10,7 @@ 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 } @@ -75,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 } { @@ -93,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) @@ -201,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' @@ -252,10 +264,11 @@ 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 $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" } @@ -350,8 +363,7 @@ Function Invoke-AddDefenderDeployment { } - # 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/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneTemplate.ps1 index a779b047cdf0..f8efbd292ecf 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-AddIntuneTemplate { <# .FUNCTIONALITY @@ -11,9 +9,6 @@ Function Invoke-AddIntuneTemplate { param($Request, $TriggerMetadata) $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) { @@ -69,8 +64,7 @@ Function Invoke-AddIntuneTemplate { } - # 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-AddPolicy.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddPolicy.ps1 index 985b60203f3d..50463f0035da 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 @@ -11,11 +9,8 @@ Function Invoke-AddPolicy { param($Request, $TriggerMetadata) $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 } + $Tenants = $Request.Body.tenantFilter.value ? $Request.Body.tenantFilter.value : $Request.Body.tenantFilter + if ('AllTenants' -in $Tenants) { $Tetnants = (Get-Tenants).defaultDomainName } $displayname = $Request.Body.displayName $description = $Request.Body.Description $AssignTo = if ($Request.Body.AssignTo -ne 'on') { $Request.Body.AssignTo } @@ -25,7 +20,7 @@ Function Invoke-AddPolicy { $results = foreach ($Tenant in $tenants) { if ($Request.Body.replacemap.$tenant) { - ([pscustomobject]$Request.Body.replacemap.$tenant).psobject.properties | ForEach-Object { $RawJson = $RawJson -replace $_.name, $_.value } + ([pscustomobject]$Request.Body.replacemap.$tenant).psobject.properties | ForEach-Object { $RawJson = $RawJson -replace $_.name, $_.value } } try { Write-Host 'Calling Adding policy' @@ -41,8 +36,7 @@ Function Invoke-AddPolicy { $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-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 c084cd79206a..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,22 +58,22 @@ 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' { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = "Method $($Request.Method) is not supported." - }) + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = "Method $($Request.Method) is not supported." + }) } 'POST' { # Parse the script data to determine type @@ -110,13 +108,13 @@ 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)" }) 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..dc6220fca72d 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecAssignPolicy { <# .FUNCTIONALITY @@ -24,18 +22,30 @@ Function Invoke-ExecAssignPolicy { $results = try { if ($AssignTo) { - $null = Set-CIPPAssignedPolicy -PolicyId $ID -TenantFilter $TenantFilter -GroupName $AssignTo -Type $Type -Headers $Headers + $AssignmentResult = Set-CIPPAssignedPolicy -PolicyId $ID -TenantFilter $TenantFilter -GroupName $AssignTo -Type $Type -Headers $Headers + if ($AssignmentResult) { + # Check if it's a warning message (no groups found) + if ($AssignmentResult -like "*No groups found*") { + $StatusCode = [HttpStatusCode]::BadRequest + } else { + $StatusCode = [HttpStatusCode]::OK + } + $AssignmentResult + } else { + $StatusCode = [HttpStatusCode]::OK + "Successfully edited policy for $($TenantFilter)" + } + } else { + $StatusCode = [HttpStatusCode]::OK + "Successfully edited policy for $($TenantFilter)" } - "Successfully edited policy for $($TenantFilter)" - $StatusCode = [HttpStatusCode]::OK } catch { - "Failed to add policy for $($TenantFilter): $($_.Exception.Message)" $StatusCode = [HttpStatusCode]::InternalServerError + "Failed to add policy for $($TenantFilter): $($_.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-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-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-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..c405a939425b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListAssignmentFilters.ps1 @@ -0,0 +1,41 @@ +function Invoke-ListAssignmentFilters { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Endpoint.MEM.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev Debug + + # Get the tenant filter + $TenantFilter = $Request.Query.TenantFilter + + try { + if ($Request.Query.filterId) { + # Get specific filter + $AssignmentFilters = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/assignmentFilters/$($Request.Query.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 $Request.Headers -API $APINAME -message "Failed to retrieve assignment filters: $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $AssignmentFilters = @() + $StatusCode = [HttpStatusCode]::InternalServerError + } + + # Associate values to output bindings by calling 'Push-OutputBinding'. + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($AssignmentFilters) + }) +} 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..9a190fe23747 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 @@ -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 @@ -130,8 +122,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..5e2a8459cb53 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 @@ -48,7 +46,19 @@ function Invoke-ListIntuneScript { } 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' } @@ -61,8 +71,7 @@ function Invoke-ListIntuneScript { } - # 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..54333e58ff47 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,8 @@ 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)) $data } catch { @@ -52,7 +47,35 @@ 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 + } 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 +83,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..e5e9f83b1d1e 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,19 @@ 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 = $UrlName -eq 'managedAppPolicies' ? 'deviceAppManagement' : '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 +34,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 18cd79effab4..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,7 +10,7 @@ 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 @@ -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' @@ -361,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 { @@ -430,8 +454,7 @@ function Invoke-EditGroup { } $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..855e35ab8395 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,6 @@ -using namespace System.Net - Function Invoke-ListGroupSenderAuthentication { [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 +30,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..f2f642edc5d8 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,12 +7,6 @@ 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 @@ -22,10 +14,31 @@ function Invoke-ListGroupTemplates { $Filter = "PartitionKey eq 'GroupTemplate'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) | ForEach-Object { $data = $_.JSON | ConvertFrom-Json + + # Normalize groupType to camelCase for consistent frontend handling + # Handle both stored normalized values and legacy values + $normalizedGroupType = switch -Wildcard ($data.groupType.ToLower()) { + # 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 = $data.groupType + groupType = $normalizedGroupType membershipRules = $data.membershipRules allowExternal = $data.allowExternal username = $data.username @@ -36,8 +49,7 @@ function Invoke-ListGroupTemplates { 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 c0256ffdd24a..75f51bee09ae 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,17 +7,19 @@ 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,userPrincipalName' + if ($ExpandMembers -ne $false) { + $SelectString = '{0}&$expand=members($select=userPrincipalName)' -f $SelectString + } + $BulkRequestArrayList = [System.Collections.Generic.List[object]]::new() @@ -86,14 +86,22 @@ function Invoke-ListGroups { $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' } + @{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 } } } + }, + @{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 owners = ($RawGraphRequest | Where-Object { $_.id -eq 3 }).body.value allowExternal = (!$OnlyAllowInternal) @@ -104,12 +112,18 @@ function Invoke-ListGroups { $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 } } } @@ -123,10 +137,9 @@ 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 }) -} \ No newline at end of file +} 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-AddUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1 index f67050101183..5a26d87f2694 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,14 +10,15 @@ 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.Scheduled.Enabled) { + $Username = $UserObj.username ?? $UserObj.mailNickname $TaskBody = [pscustomobject]@{ TenantFilter = $UserObj.tenantFilter - Name = "New user creation: $($UserObj.mailNickname)@$($UserObj.PrimDomain.value)" + Name = "New user creation: $($Username)@$($UserObj.PrimDomain.value)" Command = @{ value = 'New-CIPPUserTask' label = 'New-CIPPUserTask' @@ -52,10 +51,10 @@ Function Invoke-AddUser { 'Success' = $CreationResults.CopyFrom.Success 'Error' = $CreationResults.CopyFrom.Error } + 'User' = $CreationResults.User } } - # 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-AddUserBulk.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserBulk.ps1 index a7240624c9c1..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 -UserId $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 0b1c0254759e..c6d697e5d865 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,143 +11,238 @@ function Invoke-CIPPOffboardingJob { if ($Options -is [string]) { $Options = $Options | ConvertFrom-Json } - $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)?`$select=id,displayName" -tenantid $TenantFilter + $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) { + $JobResults = [ordered]@{} + + switch ($Options) { { $_.ConvertToShared -eq $true } { try { - Set-CIPPMailboxType -Headers $Headers -tenantFilter $TenantFilter -userid $UserID -username $Username -MailboxType 'Shared' -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPMailboxType -Headers $Headers -tenantFilter $TenantFilter -userid $UserID -username $Username -MailboxType 'Shared' -APIName $APIName + $JobResults['ConvertToSharedMailbox'] = $Result + } + catch { + $JobResults['ConvertToSharedMailbox'] = $_.Exception.Message } } { $_.RevokeSessions -eq $true } { try { - Revoke-CIPPSessions -tenantFilter $TenantFilter -username $Username -userid $UserID -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Revoke-CIPPSessions -tenantFilter $TenantFilter -username $Username -userid $UserID -Headers $Headers -APIName $APIName + $JobResults['RevokeSessions'] = $Result + } + catch { + $JobResults['RevokeSessions'] = $_.Exception.Message } } { $_.ResetPass -eq $true } { try { - Set-CIPPResetPassword -tenantFilter $TenantFilter -DisplayName -UserID $username -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPResetPassword -tenantFilter $TenantFilter -DisplayName $DisplayName -UserID $username -Headers $Headers -APIName $APIName + $JobResults['ResetPassword'] = $Result + } + catch { + $JobResults['ResetPassword'] = $_.Exception.Message } } { $_.RemoveGroups -eq $true } { - Remove-CIPPGroups -userid $UserID -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Username $Username + try { + $Result = Remove-CIPPGroups -userid $UserID -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Username $Username + if ($Result -is [array]) { + $JobResults['RemoveGroups'] = $Result | ForEach-Object { [PSCustomObject]@{ Result = $_ } } + } + elseif ($Result) { + $JobResults['RemoveGroups'] = @([PSCustomObject]@{ Result = $Result }) + } + else { + $JobResults['RemoveGroups'] = "User $Username is not a member of any groups" + } + } + catch { + $JobResults['RemoveGroups'] = @([PSCustomObject]@{ Result = $_.Exception.Message }) + } } { $_.HideFromGAL -eq $true } { try { - Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $username -HideFromGAL $true -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPHideFromGAL -tenantFilter $TenantFilter -UserID $username -HideFromGAL $true -Headers $Headers -APIName $APIName + $JobResults['HideFromGAL'] = $Result + } + catch { + $JobResults['HideFromGAL'] = $_.Exception.Message } } { $_.DisableSignIn -eq $true } { try { - Set-CIPPSignInState -TenantFilter $TenantFilter -userid $username -AccountEnabled $false -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPSignInState -TenantFilter $TenantFilter -userid $username -AccountEnabled $false -Headers $Headers -APIName $APIName + $JobResults['DisableSignIn'] = $Result + } + catch { + $JobResults['DisableSignIn'] = $_.Exception.Message } } { $_.OnedriveAccess } { + $JobResults['OnedriveAccess'] = [System.Collections.Generic.List[PSCustomObject]]::new() $Options.OnedriveAccess | ForEach-Object { try { - Set-CIPPSharePointPerms -tenantFilter $TenantFilter -userid $username -OnedriveAccessUser $_.value -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPSharePointPerms -tenantFilter $TenantFilter -userid $username -OnedriveAccessUser $_.value -Headers $Headers -APIName $APIName + $JobResults['OnedriveAccess'].Add([PSCustomObject]@{ Result = $Result }) + } + catch { + $JobResults['OnedriveAccess'].Add([PSCustomObject]@{ Result = $_.Exception.Message }) } } } { $_.AccessNoAutomap } { + $JobResults['AccessNoAutomap'] = [System.Collections.Generic.List[PSCustomObject]]::new() $Options.AccessNoAutomap | ForEach-Object { try { - Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $false -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $false -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + $JobResults['AccessNoAutomap'].Add([PSCustomObject]@{ Result = $Result }) + } + catch { + $JobResults['AccessNoAutomap'].Add([PSCustomObject]@{ Result = $_.Exception.Message }) } } } { $_.AccessAutomap } { + $JobResults['AccessAutomap'] = [System.Collections.Generic.List[PSCustomObject]]::new() $Options.AccessAutomap | ForEach-Object { try { - Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $true -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPMailboxAccess -tenantFilter $TenantFilter -userid $username -AccessUser $_.value -Automap $true -AccessRights @('FullAccess') -Headers $Headers -APIName $APIName + $JobResults['AccessAutomap'].Add([PSCustomObject]@{ Result = $Result }) + } + catch { + $JobResults['AccessAutomap'].Add([PSCustomObject]@{ Result = $_.Exception.Message }) } } } { $_.OOO } { try { - Set-CIPPOutOfOffice -tenantFilter $TenantFilter -UserID $username -InternalMessage $Options.OOO -ExternalMessage $Options.OOO -Headers $Headers -APIName $APIName -state 'Enabled' - } catch { - $_.Exception.Message + $Result = Set-CIPPOutOfOffice -tenantFilter $TenantFilter -UserID $username -InternalMessage $Options.OOO -ExternalMessage $Options.OOO -Headers $Headers -APIName $APIName -state 'Enabled' + $JobResults['SetOutOfOffice'] = $Result + } + catch { + $JobResults['SetOutOfOffice'] = $_.Exception.Message } } { $_.forward } { if (!$Options.KeepCopy) { try { - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -Headers $Headers -APIName $APIName + $JobResults['SetForwarding'] = $Result + } + catch { + $JobResults['SetForwarding'] = $_.Exception.Message } - } else { + } + else { $KeepCopy = [boolean]$Options.KeepCopy try { - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -KeepCopy $KeepCopy -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Forward $Options.forward.value -KeepCopy $KeepCopy -Headers $Headers -APIName $APIName + $JobResults['SetForwarding'] = $Result + } + catch { + $JobResults['SetForwarding'] = $_.Exception.Message } } } { $_.disableForwarding } { try { - Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Disable $true -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Set-CIPPForwarding -userid $userid -username $username -tenantFilter $TenantFilter -Disable $true -Headers $Headers -APIName $APIName + $JobResults['DisableForwarding'] = $Result + } + catch { + $JobResults['DisableForwarding'] = $_.Exception.Message + } + } + { $_.RemoveTeamsPhoneDID } { + try { + $Result = Remove-CIPPUserTeamsPhoneDIDs -userid $userid -username $username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $JobResults['RemoveTeamsPhoneDID'] = $Result + } + catch { + $JobResults['RemoveTeamsPhoneDID'] = $_.Exception.Message } } { $_.RemoveLicenses -eq $true } { - Remove-CIPPLicense -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Schedule + try { + $Result = Remove-CIPPLicense -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -Schedule + if ($Result -is [array]) { + $JobResults['RemoveLicenses'] = $Result | ForEach-Object { [PSCustomObject]@{ Result = $_ } } + } + elseif ($Result) { + $JobResults['RemoveLicenses'] = @([PSCustomObject]@{ Result = $Result }) + } + else { + $JobResults['RemoveLicenses'] = "No licenses found to remove for $Username" + } + } + catch { + $JobResults['RemoveLicenses'] = @([PSCustomObject]@{ Result = $_.Exception.Message }) + } } { $_.DeleteUser -eq $true } { try { - Remove-CIPPUser -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Remove-CIPPUser -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $JobResults['DeleteUser'] = $Result + } + catch { + $JobResults['DeleteUser'] = $_.Exception.Message } } { $_.RemoveRules -eq $true } { Write-Host "Removing rules for $username" try { - Remove-CIPPMailboxRule -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -RemoveAllRules - } catch { - $_.Exception.Message + $Result = Remove-CIPPMailboxRule -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName -RemoveAllRules + $JobResults['RemoveRules'] = $Result + } + catch { + $JobResults['RemoveRules'] = $_.Exception.Message } } { $_.RemoveMobile -eq $true } { try { - Remove-CIPPMobileDevice -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Remove-CIPPMobileDevice -userid $userid -username $Username -tenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $JobResults['RemoveMobile'] = $Result + } + catch { + $JobResults['RemoveMobile'] = $_.Exception.Message } } { $_.removeCalendarInvites -eq $true } { try { - Remove-CIPPCalendarInvites -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + $Result = Remove-CIPPCalendarInvites -UserID $userid -Username $Username -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $JobResults['RemoveCalendarInvites'] = $Result + } + catch { + $JobResults['RemoveCalendarInvites'] = $_.Exception.Message } } { $_.removePermissions } { if ($RunScheduled) { - Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid 'AllUsers' -AccessUser $UserName -TenantFilter $TenantFilter -APIName $APINAME -Headers $Headers + try { + $Result = Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid 'AllUsers' -AccessUser $UserName -TenantFilter $TenantFilter -APIName $APINAME -Headers $Headers + if ($Result -is [array]) { + $JobResults['RemovePermissions'] = $Result | ForEach-Object { [PSCustomObject]@{ Result = $_ } } + } + elseif ($Result) { + $JobResults['RemovePermissions'] = @([PSCustomObject]@{ Result = $Result }) + } + else { + $JobResults['RemovePermissions'] = "No mailbox permissions found to remove for $UserName" + } + } + catch { + if ($_.Exception.Message -is [array]) { + $JobResults['RemovePermissions'] = $_.Exception.Message | ForEach-Object { [PSCustomObject]@{ Result = $_ } } + } + else { + $JobResults['RemovePermissions'] = @([PSCustomObject]@{ Result = $_.Exception.Message }) + } + } - } else { + } + else { $Queue = New-CippQueueEntry -Name "Offboarding - Mailbox Permissions: $Username" -TotalTasks 1 $InputObject = [PSCustomObject]@{ Batch = @( @@ -164,24 +259,67 @@ function Invoke-CIPPOffboardingJob { SkipLog = $true } $null = Start-NewOrchestration -FunctionName CIPPOrchestrator -InputObject ($InputObject | ConvertTo-Json -Depth 10) - "Removal of permissions queued. This task will run in the background and send it's results to the logbook." + $Result = "Removal of permissions queued. This task will run in the background and send it's results to the logbook." + $JobResults['RemovePermissions'] = $Result } } { $_.RemoveMFADevices -eq $true } { try { - Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers - } catch { - $_.Exception.Message + $Result = Remove-CIPPUserMFA -UserPrincipalName $Username -TenantFilter $TenantFilter -Headers $Headers + $JobResults['RemoveMFADevices'] = $Result + } + catch { + $JobResults['RemoveMFADevices'] = $_.Exception.Message } } { $_.ClearImmutableId -eq $true } { - try { - Clear-CIPPImmutableID -UserID $userid -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName - } catch { - $_.Exception.Message + 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 { + $Result = Clear-CIPPImmutableID -UserID $userid -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $JobResults['ClearImmutableId'] = $Result + } + catch { + $JobResults['ClearImmutableId'] = $_.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 + $Result = '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 + $JobResults['ClearImmutableId'] = $Result } } } - return $Return + return [PSCustomObject]$JobResults } +``` 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 6249ac7c1680..acda628e0a00 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 }) @@ -61,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.' ) @@ -119,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) } @@ -234,8 +239,7 @@ function Invoke-EditUser { $Results.Add($SponsorResult) } - # 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/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 35b068c7a887..9d2db27f7e2a 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,7 +10,7 @@ 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 @@ -206,7 +204,7 @@ function Invoke-ExecBECRemediate { $ResponseBody = [pscustomobject]@{'Results' = @($Results) } # Associate values to output bindings - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = $StatusCode 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 d521b371535c..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 @@ -28,8 +26,7 @@ Function Invoke-ExecDisableUser { $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..890ab08c3748 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,167 @@ -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 - } - } - } 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) + if ($Request.Body.existingUser.value -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/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName + } - $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' } + $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 ($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 + 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)" - $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 + Reason = $Request.Body.reason + Action = 'Create' + TenantFilter = $TenantFilter } - } else { - - if ($Request.Body.existingUser.value -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/$($Request.Body.existingUser.value)" -tenantid $TenantFilter).userPrincipalName + $CreateResult = Set-CIPPUserJITAdmin @JITAdmin + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created JIT Admin user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ')" -Sev 'Info' -LogData $JITAdmin + $Results.Add("Created User: $Username") + if (!$Request.Body.UseTAP) { + $Results.Add("Password: $($CreateResult.password)") } - 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() + $Results.Add("JIT Admin Expires: $($Expiration)") + Start-Sleep -Seconds 1 + } - 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)" + #Region TAP creation + if ($Request.Body.UseTAP) { + try { + if ($Start -gt (Get-Date)) { + $TapParams = @{ + startDateTime = [System.DateTimeOffset]::FromUnixTimeSeconds($Request.Body.StartDate).DateTime } - Expiration = $Expiration - Action = 'Create' - TenantFilter = $TenantFilter - } - $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)") + $TapBody = ConvertTo-Json -Depth 5 -InputObject $TapParams + } else { + $TapBody = '{}' } - $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 ) - - $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") + # 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 ) + + $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") } } - #EndRegion TAP creation + } + #EndRegion TAP creation - $Parameters = @{ - TenantFilter = $TenantFilter - User = @{ - 'UserPrincipalName' = $Username - } - Roles = $Request.Body.AdminRoles.value - Action = 'AddRoles' - Expiration = $Expiration + $Parameters = @{ + TenantFilter = $TenantFilter + User = @{ + 'UserPrincipalName' = $Username } - if ($Start -gt (Get-Date)) { - $TaskBody = @{ - TenantFilter = $TenantFilter - Name = "JIT Admin (enable): $Username" - Command = @{ - value = 'Set-CIPPUserJITAdmin' - label = 'Set-CIPPUserJITAdmin' - } - 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 - } - $Results.Add("Scheduling JIT Admin enable task for $Username") - } else { - $Results.Add("Executing JIT Admin enable task for $Username") - Set-CIPPUserJITAdmin @Parameters - } - - $DisableTaskBody = [pscustomobject]@{ + Roles = $Request.Body.AdminRoles.value + Action = 'AddRoles' + Reason = $Request.Body.Reason + Expiration = $Expiration + } + 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 -Reason $Request.Body.Reason } + $Results.Add("Scheduling JIT Admin enable task for $Username") + Write-LogMessage -Headers $Headers -API $APIName -message "Scheduling JIT Admin for existing user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ') " -tenant $TenantFilter -Sev 'Info' + } else { + $Results.Add("Executing JIT Admin enable task for $Username") + Set-CIPPUserJITAdmin @Parameters + Write-LogMessage -Headers $Headers -API $APIName -message "Executing JIT Admin for existing user: $Username. Reason: $($Request.Body.reason). Roles: $($Request.Body.adminRoles.label -join ', ') " -tenant $TenantFilter -Sev 'Info' } + $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..0ce96583a85a 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 @@ -39,7 +38,7 @@ function Invoke-ExecOffboardUser { } 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 +48,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-ExecResetMFA.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ExecResetMFA.ps1 index 0755de89c493..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,10 +7,8 @@ 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 @@ -25,8 +21,7 @@ Function Invoke-ExecResetMFA { $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 879a7b65b432..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. @@ -30,8 +28,7 @@ Function Invoke-ExecResetPass { $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 54af83616810..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 @@ -27,8 +25,7 @@ Function Invoke-ExecRevokeSessions { $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..9c4ca15bc5d6 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListJITAdmin.ps1 @@ -0,0 +1,127 @@ +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 + jitAdminReason = $_.($Schema.id).jitAdminReason + 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 + jitAdminReason = $UserObject.jitAdminReason + 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-ListNewUserDefaults.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 new file mode 100644 index 000000000000..a3e243fdf143 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListNewUserDefaults.ps1 @@ -0,0 +1,57 @@ +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 + Write-Host "TenantFilter from request: $TenantFilter" + + # 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 + Write-Host "Template found: $($data.templateName), tenantFilter: $($data.tenantFilter)" + $data + } catch { + Write-Warning "Failed to process User Default template: $($row.RowKey) - $($_.Exception.Message)" + } + } + + Write-Host "Total templates before filtering: $($Templates.Count)" + + # Filter by tenant if TenantFilter is provided + if ($TenantFilter) { + $Templates = $Templates | Where-Object -Property tenantFilter -EQ $TenantFilter + Write-Host "Templates after filtering: $($Templates.Count)" + } + + # 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 34f7a1d7c5b1..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,12 +7,6 @@ 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 @@ -270,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' } }, @@ -287,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 1cfbd218703c..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,10 +6,8 @@ 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 @@ -24,6 +20,9 @@ function Invoke-ListUserSettings { $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' @@ -36,6 +35,14 @@ function Invoke-ListUserSettings { } } } + + 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' @@ -44,14 +51,18 @@ function Invoke-ListUserSettings { $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-ListUsers.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 index 5e81ea1c684b..d7e0c7f2f33f 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,11 +7,6 @@ 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 # Interact with query parameters or the body of the request. $TenantFilter = $Request.Query.tenantFilter @@ -78,8 +71,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-RemoveUser.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-RemoveUser.ps1 index 48d7379aaf71..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,7 +10,7 @@ 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 @@ -29,8 +27,7 @@ Function Invoke-RemoveUser { $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..65c79f2bb82c 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListMFAUsers { <# .FUNCTIONALITY @@ -9,11 +7,6 @@ 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 @@ -58,8 +51,7 @@ Function Invoke-ListMFAUsers { $GraphRequest = $Rows } } - # 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/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/New-CippCoreRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 new file mode 100644 index 000000000000..5ccd7467ec94 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 @@ -0,0 +1,112 @@ +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) + + $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 { + $Access = Test-CIPPAccess -Request $Request + if ($FunctionName -eq 'Invoke-Me') { + return $Access + } + } catch { + Write-Information "Access denied for $FunctionName : $($_.Exception.Message)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Forbidden + Body = $_.Exception.Message + }) + } + + $AllowedTenants = Test-CippAccess -Request $Request -TenantList + $AllowedGroups = Test-CippAccess -Request $Request -GroupList + + if ($AllowedTenants -notcontains 'AllTenants') { + Write-Warning 'Limiting tenant access' + $script:AllowedTenants = $AllowedTenants + } + if ($AllowedGroups -notcontains 'AllGroups') { + Write-Warning 'Limiting group access' + $script:AllowedGroups = $AllowedGroups + } + + try { + Write-Information "Access: $Access" + Write-LogMessage -headers $Headers -API $Request.Params.CIPPEndpoint -message 'Accessed this API' -Sev 'Debug' + if ($Access) { + $Response = & $FunctionName @HttpTrigger + # 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 + 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') { + return ([HttpResponseContext]@{ + StatusCode = $Response.StatusCode + Body = $Response.Body + }) + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Response + }) + } + } + } + } catch { + Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = $_.Exception.Message + }) + } + } else { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::NotFound + Body = 'Endpoint not found' + }) + } + } else { + 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..1f1733152f55 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,11 +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' + QueueId = $RunningQueue.RowKey } [PSCustomObject]@{ Waiting = $true @@ -78,6 +71,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' @@ -97,6 +91,10 @@ Function Invoke-ExecAlertsList { InstanceId = $InstanceId } } else { + $Metadata = [PSCustomObject]@{ + QueueId = $RunningQueue.RowKey ?? $null + } + $Alerts = $Rows $AlertsObj = foreach ($Alert in $Alerts) { $AlertInfo = $Alert.Alert | ConvertFrom-Json @@ -137,7 +135,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 8f720dc32a19..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,5 +1,3 @@ -using namespace System.Net - function Invoke-AddSite { <# .FUNCTIONALITY @@ -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. @@ -27,8 +23,7 @@ function Invoke-AddSite { $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 0ac9be97d022..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,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecSetSharePointMember { <# .FUNCTIONALITY @@ -9,18 +7,20 @@ 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 { @@ -38,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 7f7b4c72911f..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,11 +7,6 @@ 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 -TenantFilter $TenantFilter).customerId @@ -45,7 +38,7 @@ 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 | 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 f66af08ebffe..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,78 +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 - # 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 - } - $Command = Get-Command New-CippAuditLogSearch - $AvailableParameters = $Command.Parameters.Keys - $BadProps = foreach ($Prop in $Query.PSObject.Properties.Name) { - if ($AvailableParameters -notcontains $Prop) { - $Prop + 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 + + 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 + } - try { - Write-Information "Executing audit log search with parameters: $($Query | ConvertTo-Json -Depth 10)" + # 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 + } - $Query = $Query | ConvertTo-Json -Depth 10 | ConvertFrom-Json -AsHashtable - $NewSearch = New-CippAuditLogSearch @Query + if ($Query.EndTime -match '^\d+$') { + $Query.EndTime = [DateTime]::UnixEpoch.AddSeconds([long]$Query.EndTime) + } else { + $Query.EndTime = [DateTime]$Query.EndTime + } - if ($NewSearch) { - $Results = @{ - resultText = "Created audit log search: $($NewSearch.displayName)" - state = 'success' - details = $NewSearch + $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 } - } else { - $Results = @{ - resultText = 'Failed to initiate search' - state = 'error' + + 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 + }) } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) - } catch { - Push-OutputBinding -Name Response -Value ([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 2fd0871a46e3..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,5 +1,3 @@ -using namespace System.Net - function Invoke-ListAlertsQueue { <# .FUNCTIONALITY @@ -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 } } @@ -109,6 +102,7 @@ function Invoke-ListAlertsQueue { LogType = 'Scripted' EventType = 'Scheduled Task' RepeatsEvery = $Task.Recurrence + AlertComment = $Task.AlertComment RawAlert = $Task } @@ -158,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 3518ac87bf36..af575369f8f4 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,10 +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 @@ -82,8 +79,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..ed347dc8dc35 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' @@ -90,7 +88,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 index c46541d8632f..64de2982c341 100644 --- 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 @@ -7,11 +7,6 @@ function Invoke-ExecApplication { #> [CmdletBinding()] param($Request, $TriggerMetadata) - - $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' - $ValidTypes = @('applications', 'servicePrincipals') $ValidActions = @('Update', 'Upsert', 'Delete', 'RemoveKey', 'RemovePassword') @@ -20,7 +15,7 @@ function Invoke-ExecApplication { if (-not $Id) { $AppId = $Request.Query.AppId ?? $Request.Body.AppId if (-not $AppId) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "Required parameter 'Id' or 'AppId' is missing" }) @@ -31,7 +26,7 @@ function Invoke-ExecApplication { $IdPath = "/$Id" } if ($Type -and $ValidTypes -notcontains $Type) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "Invalid Type specified. Valid types are: $($ValidTypes -join ', ')" }) @@ -42,7 +37,7 @@ function Invoke-ExecApplication { $Action = $Request.Query.Action ?? $Request.Body.Action if ($ValidActions -notcontains $Action) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "Invalid Action specified. Valid actions are: $($ValidActions -join ', ')" }) @@ -77,7 +72,7 @@ function Invoke-ExecApplication { # Handle credential removal $KeyIds = $Request.Body.KeyIds.value ?? $Request.Body.KeyIds if (-not $KeyIds -or $KeyIds.Count -eq 0) { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::BadRequest Body = "KeyIds parameter is required for $Action action" }) @@ -137,7 +132,7 @@ function Invoke-ExecApplication { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @{ Results = $Results } }) @@ -147,7 +142,7 @@ function Invoke-ExecApplication { state = 'error' } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + 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..202377450790 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 @@ -0,0 +1,264 @@ +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' + } + + # Get the app details based on type + if ($Type -eq 'servicePrincipal') { + # For enterprise apps (service principals) + $AppDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId eq '$AppId'&`$select=id,appId,displayName,appRoles,oauth2PermissionScopes,requiredResourceAccess" -tenantid $TenantFilter + + if (-not $AppDetails -or $AppDetails.Count -eq 0) { + throw "Service principal not found for AppId: $AppId" + } + + $App = $AppDetails[0] + + # Get the application registration to access requiredResourceAccess + try { + $AppRegistration = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/applications?`$filter=appId eq '$AppId'&`$select=id,appId,displayName,requiredResourceAccess" -tenantid $TenantFilter + if ($AppRegistration -and $AppRegistration.Count -gt 0) { + $RequiredResourceAccess = $AppRegistration[0].requiredResourceAccess + } else { + $RequiredResourceAccess = @() + } + } catch { + Write-LogMessage -headers $Request.headers -API $APINAME -message "Could not retrieve app registration for $AppId - will extract from service principal" -Sev 'Warning' + $RequiredResourceAccess = @() + } + + # Use requiredResourceAccess if available, otherwise we can't create a proper template + if ($RequiredResourceAccess -and $RequiredResourceAccess.Count -gt 0) { + $Permissions = $RequiredResourceAccess + } else { + # No permissions found - warn the user + Write-LogMessage -headers $Request.headers -API $APINAME -message "No permissions found for $AppId. The app registration may not have configured API permissions." -Sev 'Warning' + $Permissions = @() + } + } else { + # For app registrations (applications) + $App = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$AppId')" -tenantid $TenantFilter + if (-not $App -or $App.Count -eq 0) { + throw "App registration not found for AppId: $AppId" + } + + $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 + } + $NewSP = 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) { + foreach ($Resource in $Permissions) { + $ResourceAppId = $Resource.resourceAppId + $AppPerms = [System.Collections.ArrayList]::new() + $DelegatedPerms = [System.Collections.ArrayList]::new() + + foreach ($Access in $Resource.resourceAccess) { + $PermObj = [PSCustomObject]@{ + id = $Access.id + value = $Access.id # In the permission set format, both id and value are the permission ID + } + + if ($Access.type -eq 'Role') { + [void]$AppPerms.Add($PermObj) + } elseif ($Access.type -eq 'Scope') { + [void]$DelegatedPerms.Add($PermObj) + } + } + + $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/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 2299049da727..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 @@ -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 0029cf95e0ba..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,11 +6,6 @@ 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 @@ -83,7 +76,7 @@ function Invoke-ListAppConsentRequests { $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 bd5c6e397f4b..a18a532513d8 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,5 +1,3 @@ -using namespace System.Net - function Invoke-AddCAPolicy { <# .FUNCTIONALITY @@ -12,7 +10,7 @@ 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 } @@ -30,8 +28,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 755914af4aaf..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 @@ -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 3ff15b901e71..27fdae54e71f 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,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCAExclusion { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ 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' + try { #If UserId is a guid, get the user's UPN $TenantFilter = $Request.Body.tenantFilter @@ -22,6 +18,7 @@ function Invoke-ExecCAExclusion { $EndDate = $Request.Body.EndDate $PolicyId = $Request.Body.PolicyId $ExclusionType = $Request.Body.ExclusionType + $ExcludeLocationAuditAlerts = $Request.Body.excludeLocationAuditAlerts if ($Users) { $UserID = $Users.value @@ -32,34 +29,58 @@ function Invoke-ExecCAExclusion { } } - $Policy = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)?`$select=id,displayName" -tenantid $TenantFilter -asApp $true + $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]@{ - ExclusionType = 'Add' - PolicyId = $PolicyId - } - - if ($Users) { - $Parameters | Add-Member -NotePropertyName Users -NotePropertyValue $Users - } else { - $Parameters | Add-Member -NotePropertyName UserID -NotePropertyValue $UserID + 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 = 'Set-CIPPCAExclusion' - label = 'Set-CIPPCAExclusion' + value = 'Add-CIPPGroupMember' + label = 'Add-CIPPGroupMember' } Parameters = [pscustomobject]$Parameters ScheduledTime = $StartDate @@ -68,11 +89,37 @@ function Invoke-ExecCAExclusion { 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.Parameters.ExclusionType = 'Remove' + $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 + } + Add-CIPPScheduledTask -Task $AuditRemoveTask -hidden $true + } $body = @{ Results = "Successfully added vacation mode schedule for $Username." } } else { $Parameters = @{ @@ -94,7 +141,7 @@ function Invoke-ExecCAExclusion { 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 index e5db017bf14e..b167ed66cbf5 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAServiceExclusion.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecCAServiceExclusion { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ Function Invoke-ExecCAServiceExclusion { #> [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 request $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter @@ -28,8 +24,8 @@ Function Invoke-ExecCAServiceExclusion { 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 $_) } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body }) -} \ No newline at end of file +} 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..95bfae0262f2 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,7 +10,7 @@ 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. @@ -20,6 +18,7 @@ function Invoke-ExecNamedLocation { $NamedLocationId = $Request.Body.namedLocationId ?? $Request.Query.namedLocationId $Change = $Request.Body.change ?? $Request.Query.change $Content = $Request.Body.input ?? $Request.Query.input + if ($content.value) { $content = $content.value } try { $results = Set-CIPPNamedLocation -NamedLocationId $NamedLocationId -TenantFilter $TenantFilter -Change $Change -Content $Content -Headers $Headers @@ -31,8 +30,7 @@ function Invoke-ExecNamedLocation { $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/Tenant/Conditional/Invoke-ListCAtemplates.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 index 91a163298ce0..6403c20af94e 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,20 @@ 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 + } 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..2e5a051df76a 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,30 @@ 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') { + $Table = Get-CIPPTable -TableName 'ApiClients' + $Client = Get-CIPPAzDataTableEntity @Table -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 +45,6 @@ function Invoke-ExecGDAPInvite { $AutoExtendDuration = 'P180D' } - $Table = Get-CIPPTable -TableName 'GDAPInvites' try { $Step = 'Creating GDAP relationship' $JSONBody = @{ @@ -75,7 +93,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 +124,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 +158,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..a8312cdc0bcb 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 @@ -5,11 +5,6 @@ function Invoke-ListGDAPAccessAssignments { #> [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 +27,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 +50,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..5f5cdfcf2920 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,5 +1,3 @@ -using namespace System.Net - Function Invoke-ListLicenses { <# .FUNCTIONALITY @@ -9,12 +7,6 @@ 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') { @@ -58,9 +50,9 @@ Function Invoke-ListLicenses { } } - 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 b22a4b1687e0..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' @@ -42,8 +42,7 @@ function Invoke-AddStandardsTemplate { 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..72861c0358d8 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 - - $InputObject = [PSCustomObject]@{ - OrchestratorName = 'StandardsOrchestrator' - QueueFunction = @{ - FunctionName = 'GetStandards' - QueueId = $Queue.RowKey - StandardParams = @{ - TenantFilter = $TenantFilter - runManually = $runManually + $Batch = foreach ($Task in $AllTasks) { + [PSCustomObject]@{ + FunctionName = 'CIPPDriftManagement' + Tenant = $Task.TenantFilter } } - SkipLog = $true - } - if ($TemplateID) { - $InputObject.QueueFunction.StandardParams['TemplateId'] = $TemplateID + + $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' + + $GetStandardParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + + if ($TemplateID) { + $GetStandardParams['TemplateId'] = $TemplateID + } + + $AllTasks = Get-CIPPStandards @GetStandardParams + + if ($Force.IsPresent) { + Write-Information 'Clearing Rerun Cache' + Test-CIPPRerun -ClearAll -TenantFilter $TenantFilter -Type 'Standard' + } + + if ($AllTasks.Count -eq 0) { + Write-Information "No standards found for tenant $($TenantFilter)." + return + } + + #For each item in our object, run the queue. + $Queue = New-CippQueueEntry -Name "Applying Standards ($TenantFilter)" -TotalTasks ($AllTasks | Measure-Object).Count + + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'StandardsOrchestrator' + QueueFunction = @{ + FunctionName = 'GetStandards' + QueueId = $Queue.RowKey + StandardParams = @{ + TenantFilter = $TenantFilter + runManually = $runManually + } + } + SkipLog = $true + } + if ($TemplateID) { + $InputObject.QueueFunction.StandardParams['TemplateId'] = $TemplateID + } + Write-Information "InputObject: $($InputObject | ConvertTo-Json -Depth 5 -Compress)" + $InstanceId = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress) + Write-Information "Started orchestration with ID = '$InstanceId'" + #$Orchestrator = New-OrchestrationCheckStatusResponse -Request $Request -InstanceId $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..fdcb1f71aaa0 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 @@ -17,7 +15,8 @@ function Invoke-ListStandardsCompare { $Table.Filter = "PartitionKey eq '{0}'" -f $TenantFilter } - $Standards = Get-CIPPAzDataTableEntity @Table + $Tenants = Get-Tenants -IncludeErrors + $Standards = Get-CIPPAzDataTableEntity @Table | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } #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 { @@ -57,14 +56,14 @@ 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 @@ -90,7 +89,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 index 4f4a48dd6766..2fce6965eed6 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ListTenantAlignment { <# .FUNCTIONALITY @@ -11,8 +9,6 @@ function Invoke-ListTenantAlignment { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - $Headers = $Request.Headers - try { # Use the new Get-CIPPTenantAlignment function to get alignment data $AlignmentData = Get-CIPPTenantAlignment @@ -22,6 +18,7 @@ function Invoke-ListTenantAlignment { [PSCustomObject]@{ tenantFilter = $_.TenantFilter standardName = $_.StandardName + standardType = $_.StandardType ? $_.StandardType : 'Classic Standard' standardId = $_.StandardId alignmentScore = $_.AlignmentScore LicenseMissingPercentage = $_.LicenseMissingPercentage @@ -30,13 +27,13 @@ function Invoke-ListTenantAlignment { } } - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = @($Results) }) } catch { Write-LogMessage -API $APIName -message "Failed to get tenant alignment data: $($_.Exception.Message)" -sev Error - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ + 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..cfd69a6fe214 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,7 +10,7 @@ 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 @@ -32,8 +30,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..c6ada23304bd 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 { @@ -45,8 +38,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 9828d33ba5ef..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,10 +7,8 @@ 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' + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails $Action = $Request.Body.action ?? '' @@ -41,31 +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 = @{ + 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 = @{ + Results = @(@{ resultText = $Message state = 'error' - } + }) } }) return @@ -110,14 +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 = @{ + 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..3ec5056c2735 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 }) @@ -172,8 +172,14 @@ function Invoke-ExecCommunityRepo { Write-Host 'Found a migration table, getting contents' $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 $TemplateSettings.templateRepo.value -Branch $TemplateSettings.templateRepoBranch.value -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..e0869e456abd 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 @@ -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..fd6852d65e3e --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 @@ -0,0 +1,70 @@ +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 | Where-Object -Property Timestamp -GT (Get-Date).AddHours(-24) + + try { + if ($Rows) { + $Releases = ConvertFrom-Json -InputObject $Rows.GitHubReleases -Depth 10 + } else { + $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 2fb1e75e4337..7de5b671d4f3 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecBreachSearch.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecBreachSearch { <# .FUNCTIONALITY @@ -9,17 +7,12 @@ 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.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. 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 1f4796422ab2..6b7400e98ca4 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecCSPLicense.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - function Invoke-ExecCSPLicense { <# .FUNCTIONALITY @@ -9,10 +7,8 @@ function Invoke-ExecCSPLicense { #> [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 @@ -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..7570b578f921 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecListAppId.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecListAppId { <# .FUNCTIONALITY @@ -10,12 +8,9 @@ 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 @@ -54,10 +49,9 @@ Function Invoke-ExecListAppId { 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" } - # 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-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..44f8009edea1 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Invoke-ExecUniversalSearch.ps1 @@ -1,5 +1,3 @@ -using namespace System.Net - Function Invoke-ExecUniversalSearch { <# .FUNCTIONALITY @@ -9,14 +7,6 @@ Function Invoke-ExecUniversalSearch { #> [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]@{ + return [HttpResponseContext]@{ StatusCode = $StatusCode Body = @($GraphRequest) - }) + } } 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..61618a0fc7c7 --- /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..45faae5f8224 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) { + $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..31844a48a08d 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,36 @@ 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 + $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 $env:TenantID + $StatusCode = [HttpStatusCode]::OK + $HttpResponse.Body = [PSCustomObject]@{ + GraphRequest = $GraphRequest + } + } 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..7a0d704fe7ed 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 @@ -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]@{ + 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 60801c2e3afb..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,10 +7,8 @@ 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' + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails @@ -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..92682df3bf50 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,11 +19,74 @@ function Invoke-ListLogs { label = $_.PartitionKey } } + } elseif ($Request.Query.logentryid) { + # Return single log entry by RowKey + $Filter = "RowKey eq '{0}'" -f $Request.Query.logentryid + $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 + } + } + } } 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 @@ -48,12 +107,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 +128,54 @@ 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 } } } } - 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-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..3971a7d3e728 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() 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-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..7c47ad657c64 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 (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-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 ab8383486b3d..d635141637dc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 @@ -2,18 +2,50 @@ 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')" + $Filter = "PartitionKey eq 'ScheduledTask' and (TaskState eq 'Planned' or TaskState eq 'Failed - Planned' or (TaskState eq 'Running' and Timestamp lt datetime'$1HourAgo'))" $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 { @@ -113,21 +145,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-DurableCleanup.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 index 661bf5182d89..64e175b72e8c 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-DurableCleanup.ps1 @@ -28,33 +28,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 $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-UpdateTokensTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 index b5780a3f33c4..fd8654db8907 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) { @@ -57,7 +57,7 @@ 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 @@ -99,7 +99,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) { diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 index 5671b2a79632..364e6c9bdf85 100644 --- a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 @@ -34,7 +34,7 @@ function Get-CIPPTenantAlignment { $JSON = $_.JSON -replace '"Action":', '"action":' try { $RowKey = $_.RowKey - $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $Data = $JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop } catch { Write-Warning "$($RowKey) standard could not be loaded: $($_.Exception.Message)" return @@ -52,13 +52,14 @@ function Get-CIPPTenantAlignment { # Get standards comparison data $StandardsTable = Get-CIPPTable -TableName 'CippStandardsReports' - $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable + $AllStandards = Get-CIPPAzDataTableEntity @StandardsTable -Filter "PartitionKey ne 'StandardReport' and PartitionKey ne ''" # Filter by tenant if specified $Standards = if ($TenantFilter) { $AllStandards | Where-Object { $_.PartitionKey -eq $TenantFilter } } else { - $AllStandards + $Tenants = Get-Tenants -IncludeErrors + $AllStandards | Where-Object { $_.PartitionKey -in $Tenants.defaultDomainName } } # Build tenant standards data structure @@ -71,8 +72,16 @@ function Get-CIPPTenantAlignment { # Process field value if ($FieldValue -is [System.Boolean]) { $FieldValue = [bool]$FieldValue - } elseif ($FieldValue -like '*{*') { - $FieldValue = ConvertFrom-Json -InputObject $FieldValue -ErrorAction SilentlyContinue + } elseif (Test-Json -Json $FieldValue -ErrorAction SilentlyContinue) { + try { + $FieldValue = ConvertFrom-Json -Depth 100 -InputObject $FieldValue -ErrorAction Stop + } catch { + Write-Warning "$($FieldName) standard report could not be loaded: $($_.Exception.Message)" + $FieldValue = [PSCustomObject]@{ + Error = "Invalid JSON format: $($_.Exception.Message)" + OriginalValue = $FieldValue + } + } } else { $FieldValue = [string]$FieldValue } @@ -101,7 +110,13 @@ function Get-CIPPTenantAlignment { if ($Template.tenantFilter -and $Template.tenantFilter.Count -gt 0) { # Extract tenant values from the tenantFilter array - $TenantValues = $Template.tenantFilter | ForEach-Object { $_.value } + $TenantValues = $Template.tenantFilter | ForEach-Object { + if ($_.type -eq 'group') { + (Get-TenantGroups -GroupId $_.value).members.defaultDomainName + } else { + $_.value + } + } if ($TenantValues -contains 'AllTenants') { $AppliestoAllTenants = $true @@ -143,6 +158,37 @@ function Get-CIPPTenantAlignment { 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 + $TemplatesList = Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter | Where-Object -Property package -EQ $Tag.value + $TemplatesList | 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]@{ @@ -194,7 +240,7 @@ function Get-CIPPTenantAlignment { [PSCustomObject]@{ StandardName = $StandardKey Compliant = $IsCompliant - StandardValue = ($Value | ConvertTo-Json -Compress) + StandardValue = ($Value | ConvertTo-Json -Depth 100 -Compress) ComplianceStatus = $ComplianceStatus ReportingDisabled = $IsReportingDisabled } @@ -236,6 +282,10 @@ function Get-CIPPTenantAlignment { TenantFilter = $TenantName StandardName = $Template.templateName StandardId = $Template.GUID + standardType = $Template.type + standardSettings = $Template.Standards + driftAlertEmail = $Template.driftAlertEmail + driftAlertWebhook = $Template.driftAlertWebhook AlignmentScore = $AlignmentPercentage LicenseMissingPercentage = $LicenseMissingPercentage CombinedScore = $AlignmentPercentage + $LicenseMissingPercentage @@ -255,6 +305,7 @@ function Get-CIPPTenantAlignment { 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/Test-CIPPStandardLicense.ps1 b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 index 768bced2eca9..758c68b75ea5 100644 --- a/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 +++ b/Modules/CIPPCore/Public/Functions/Test-CIPPStandardLicense.ps1 @@ -27,7 +27,10 @@ function Test-CIPPStandardLicense { [string]$TenantFilter, [Parameter(Mandatory = $true)] - [string[]]$RequiredCapabilities + [string[]]$RequiredCapabilities, + + [Parameter(Mandatory = $false)] + [switch]$SkipLog ) try { @@ -41,16 +44,22 @@ function Test-CIPPStandardLicense { } if ($Capabilities.Count -le 0) { - 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 Error - Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter - Write-Host "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" + 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 Error + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: This tenant is not licensed for the following capabilities: $($RequiredCapabilities -join ',')" -Tenant $TenantFilter + Write-Host "Tenant does not have the required capability to run standard $StandardName - $($RequiredCapabilities -join ','). Exiting" + } return $false } Write-Host "Tenant has the required capabilities for standard $StandardName" return $true } catch { - Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "Error checking license capabilities for standard $StandardName`: $($_.Exception.Message)" -sev Error - Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: Error checking license capabilities - $($_.Exception.Message)" -Tenant $TenantFilter + 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 Error + Set-CIPPStandardsCompareField -FieldName "standards.$StandardName" -FieldValue "License Missing: Error checking license capabilities - $SanitizedMessage" -Tenant $TenantFilter + } return $false } } diff --git a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 index 6b5d2eb5b6e0..02d791993929 100644 --- a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 @@ -7,7 +7,7 @@ function Get-CIPPAuthentication { $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) { diff --git a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 index 91d29ac8ec0f..e824402a7b85 100644 --- a/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPBackup.ps1 @@ -6,15 +6,13 @@ 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)'") } @@ -25,7 +23,9 @@ function Get-CIPPBackup { $Filter = $Conditions -join ' and ' $Table.Filter = $Filter - - $Info = Get-CIPPAzDataTableEntity @Table - return $info + $Info = Get-CIPPAzDataTableEntity @Table -Debug + if ($TenantFilter) { + $Info = $Info | Where-Object { $_.TenantFilter -eq $TenantFilter } + } + 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-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..13bc151458b6 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 @@ -0,0 +1,361 @@ +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 + ) + + + $IntuneTable = Get-CippTable -tablename 'templates' + $IntuneFilter = "PartitionKey eq 'IntuneTemplate'" + $RawIntuneTemplates = (Get-CIPPAzDataTableEntity @IntuneTable -Filter $IntuneFilter) + $AllIntuneTemplates = $RawIntuneTemplates | 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 + } 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 -Index 2 + Write-Host "Extracted GUID: $CompareGuid" + $Template = $AllIntuneTemplates | Where-Object { $_.GUID -like "*$CompareGuid*" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + } + } + # Handle Conditional Access templates + if ($ComparisonItem.StandardName -like '*ConditionalAccessTemplate*') { + $CompareGuid = $ComparisonItem.StandardName.Split('.') | Select-Object -Index 2 + Write-Host "Extracted CA GUID: $CompareGuid" + $Template = $AllCATemplates | Where-Object { $_.GUID -like "*$CompareGuid*" } + if ($Template) { + $displayName = $Template.displayName + $standardDescription = $Template.description + } + } + $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 + expectedValue = 'Compliant' + receivedValue = $ComparisonItem.StandardValue + state = 'current' + Status = $Status + Reason = $reason + lastChangedByUser = $User + }) + } + } + } + + # Perform full policy collection + + # Always get live data when not in AllTenants mode + $IntuneRequests = @( + @{ + id = 'deviceAppManagement/managedAppPolicies' + url = 'deviceAppManagement/managedAppPolicies' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceCompliancePolicies' + url = 'deviceManagement/deviceCompliancePolicies' + method = 'GET' + } + @{ + id = 'deviceManagement/groupPolicyConfigurations' + url = 'deviceManagement/groupPolicyConfigurations' + method = 'GET' + } + @{ + id = 'deviceManagement/deviceConfigurations' + url = 'deviceManagement/deviceConfigurations' + method = 'GET' + } + @{ + id = 'deviceManagement/configurationPolicies' + url = 'deviceManagement/configurationPolicies' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsDriverUpdateProfiles' + url = 'deviceManagement/windowsDriverUpdateProfiles' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsFeatureUpdateProfiles' + url = 'deviceManagement/windowsFeatureUpdateProfiles' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdatePolicies' + url = 'deviceManagement/windowsQualityUpdatePolicies' + method = 'GET' + } + @{ + id = 'deviceManagement/windowsQualityUpdateProfiles' + url = 'deviceManagement/windowsQualityUpdateProfiles' + 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 + try { + $CARequests = @( + @{ + id = 'policies' + url = 'identity/conditionalAccess/policies' + 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 = $Alignment.standardSettings.IntuneTemplate.TemplateList | ForEach-Object { $_.value } + } + 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' + } + $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 + } + $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' + } + $PolicyDeviation = [PSCustomObject]@{ + standardName = $PolicyKey + standardDisplayName = "Conditional Access - $($TenantCAPolicy.displayName)" + expectedValue = 'This policy only exists in the tenant, not in the template.' + receivedValue = ($TenantCAPolicy | ConvertTo-Json -Depth 10 -Compress) + state = 'current' + Status = $Status + } + $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 + } + + $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..9ef67b5e673f 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 { @@ -38,9 +54,54 @@ function Get-CIPPLicenseOverview { $ConvertTable = Import-Csv 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 @@ -81,11 +143,12 @@ function Get-CIPPLicenseOverview { skuPartNumber = [string]$PrettyName availableUnits = [string]$sku.prepaidUnits.enabled - $sku.consumedUnits TermInfo = [string]($TermInfo | ConvertTo-Json -Depth 10 -Compress) + AssignedUsers = ($UsersBySku.ContainsKey($SkuKey) ? @(($UsersBySku[$SkuKey])) : $null) + AssignedGroups = ($GroupsBySku.ContainsKey($SkuKey) ? @(($GroupsBySku[$SkuKey])) : $null) 'PartitionKey' = 'License' - 'RowKey' = "$($singlereq.Tenant) - $($sku.skuid)" + 'RowKey' = "$($singleReq.Tenant) - $($sku.skuid)" } } } return $GraphRequest } - 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-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 '(? param( - $skuname, - $skuID, + $SkuName, + $SkuID, $ConvertTable ) if (!$ConvertTable) { Set-Location (Get-Item $PSScriptRoot).Parent.FullName $ConvertTable = Import-Csv 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-GraphToken.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 index c89d8fd2dd75..327052774f61 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 @@ -95,10 +95,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-Tenants.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-Tenants.ps1 index c231eb916100..bd0272213d0f 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:AllowedTenants) { + $IncludedTenantsCache = $IncludedTenantsCache | Where-Object { $script:AllowedTenants -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-ExoBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 index 38275011282b..553331e6a328 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 @@ -43,6 +43,7 @@ function New-ExoBulkRequest { # Initialize the ID to Cmdlet Name mapping $IdToCmdletName = @{} + $IdToOperationGuid = @{} # Track operation GUIDs when provided # Split the cmdletArray into batches of 10 $batches = [System.Collections.Generic.List[object]]::new() @@ -69,19 +70,32 @@ function New-ExoBulkRequest { $Headers['Accept'] = 'application/json; odata.metadata=minimal' $Headers['Accept-Encoding'] = 'gzip' - # Generate a unique ID for each request - $RequestId = [Guid]::NewGuid().ToString() + # Use provided OperationGuid if available, otherwise generate one + $RequestId = if ($cmd.OperationGuid) { + $cmd.OperationGuid + } else { + [Guid]::NewGuid().ToString() + } + + # Create clean cmdlet object for API (without OperationGuid) + $CleanCmd = @{ + CmdletInput = $cmd.CmdletInput + } + $BatchRequest = @{ url = $URL method = 'POST' - body = $cmd + body = $CleanCmd headers = $Headers.Clone() id = $RequestId } $BatchBodyObj['requests'] = $BatchBodyObj['requests'] + $BatchRequest - # Map the Request ID to the Cmdlet Name + # Map the Request ID to the Cmdlet Name and Operation GUID (if provided) $IdToCmdletName[$RequestId] = $cmd.CmdletInput.CmdletName + if ($cmd.OperationGuid) { + $IdToOperationGuid[$RequestId] = $cmd.OperationGuid + } } $BatchBodyJson = ConvertTo-Json -InputObject $BatchBodyObj -Depth 10 $BatchBodyJson = Get-CIPPTextReplacement -TenantFilter $tenantid -Text $BatchBodyJson @@ -104,6 +118,7 @@ function New-ExoBulkRequest { foreach ($item in $ReturnedData) { $itemId = $item.id $CmdletName = $IdToCmdletName[$itemId] + $OperationGuid = $IdToOperationGuid[$itemId] # Will be $null if not provided $body = $item.body.PSObject.Copy() if ($body.'@adminapi.warnings') { @@ -115,20 +130,50 @@ function New-ExoBulkRequest { } else { $msg = [pscustomobject]@{ error = $body.error.message; target = $body.error.details.target } } + + # Add OperationGuid to error if it was provided + if ($OperationGuid) { + $msg | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value $msg -Force + } else { + # Handle successful operations - add OperationGuid if provided + if ($body.value) { + # Add GUID to existing results if provided + if ($OperationGuid) { + if ($body.value -is [array]) { + foreach ($val in $body.value) { + $val | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } else { + $body.value | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } + } else { + # Create success indicators when GUID was provided (caller wants tracking) + if ($OperationGuid) { + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value ([pscustomobject]@{ + Success = $true + OperationGuid = $OperationGuid + }) -Force + } + } } + $resultValues = $body.value foreach ($resultValue in $resultValues) { if (-not $FinalData.ContainsKey($CmdletName)) { $FinalData[$CmdletName] = [System.Collections.Generic.List[object]]::new() - $FinalData.$CmdletName.Add($resultValue) + $FinalData[$CmdletName].Add($resultValue) } else { - $FinalData.$CmdletName.Add($resultValue) + $FinalData[$CmdletName].Add($resultValue) } } } } else { $FinalData = foreach ($item in $ReturnedData) { + $OperationGuid = $IdToOperationGuid[$item.id] # Will be $null if not provided $body = $item.body.PSObject.Copy() if ($body.'@adminapi.warnings') { @@ -140,7 +185,35 @@ function New-ExoBulkRequest { } else { $msg = [pscustomobject]@{ error = $body.error.message; target = $body.error.details.target } } + + # Add OperationGuid to error if it was provided + if ($OperationGuid) { + $msg | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value $msg -Force + } else { + # Handle successful operations + if ($body.value) { + # Add GUID to existing results if provided + if ($OperationGuid) { + if ($body.value -is [array]) { + foreach ($val in $body.value) { + $val | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } else { + $body.value | Add-Member -MemberType NoteProperty -Name 'OperationGuid' -Value $OperationGuid -Force + } + } + } else { + # Create success indicators when GUID was provided (caller wants tracking) + if ($OperationGuid) { + $body | Add-Member -MemberType NoteProperty -Name 'value' -Value ([pscustomobject]@{ + Success = $true + OperationGuid = $OperationGuid + }) -Force + } + } } $body.value } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 index 2abf72d3f2af..93c373c1fa98 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 @@ -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) { diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 index 12b72accf29e..0b961c534385 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 @@ -3,6 +3,7 @@ function New-GraphBulkRequest { .FUNCTIONALITY Internal #> + [CmdletBinding()] param( $tenantid, $NoAuthCheck, @@ -17,6 +18,10 @@ function New-GraphBulkRequest { if ($NoAuthCheck -or (Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp + if ($script:XMsThrottlePriority) { + $headers['x-ms-throttle-priority'] = $script:XMsThrottlePriority + } + $URL = "https://graph.microsoft.com/$Version/`$batch" # Track consecutive Graph API failures @@ -58,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 e7a3ad3bdf9b..293add8a1f76 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 @@ -36,6 +36,11 @@ 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) { @@ -56,71 +61,120 @@ function New-GraphGetRequest { } $ReturnedData = do { - try { - $GraphRequest = @{ - Uri = $nextURL - Method = 'GET' - Headers = $headers - ContentType = 'application/json; charset=utf-8' - } - if ($IncludeResponseHeaders) { - $GraphRequest.ResponseHeadersVariable = 'ResponseHeaders' - } - - if ($ReturnRawResponse) { - $GraphRequest.SkipHttpErrorCheck = $true - $Data = Invoke-WebRequest @GraphRequest - } else { - $Data = (Invoke-RestMethod @GraphRequest) - } + $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) { - if (Test-Json -Json $Data.Content) { - $Content = $Data.Content | ConvertFrom-Json + if ($ReturnRawResponse) { + $GraphRequest.SkipHttpErrorCheck = $true + $Data = Invoke-WebRequest @GraphRequest } else { - $Content = $Data.Content + $GraphRequest.ResponseHeadersVariable = 'ResponseHeaders' + $Data = (Invoke-RestMethod @GraphRequest) + $script:LastGraphResponseHeaders = $ResponseHeaders } - $Data | Select-Object -Property StatusCode, StatusDescription, @{Name = 'Content'; Expression = { $Content }} - $nextURL = $null - } elseif ($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' } + # If we reach here, the request was successful + $RequestSuccessful = $true + + if ($ReturnRawResponse) { + if (Test-Json -Json $Data.Content) { + $Content = $Data.Content | ConvertFrom-Json + } else { + $Content = $Data.Content } + + $Data | Select-Object -Property StatusCode, StatusDescription, @{Name = 'Content'; Expression = { $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 -Maximum 10 # Random sleep between 1-10 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..ebcabfa12702 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,36 @@ 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 (!$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/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..52127cc88471 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:StandardInfo) { + $TableRow.Standard = [string]$script:StandardInfo.Standard + $TableRow.StandardTemplateId = [string]$script:StandardInfo.StandardTemplateId + if ($script:StandardInfo.IntuneTemplateId) { + $TableRow.IntuneTemplateId = [string]$script:StandardInfo.IntuneTemplateId + } + if ($script:StandardInfo.ConditionalAccessTemplateId) { + $TableRow.ConditionalAccessTemplateId = [string]$script:StandardInfo.ConditionalAccessTemplateId + } + } + if ($script:ScheduledTaskId) { + $TableRow.ScheduledTaskId = [string]$script:ScheduledTaskId + } $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/New-CIPPAlertTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 index bf93a9098812..1a0836dba0c2 100644 --- a/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPAlertTemplate.ps1 @@ -9,7 +9,8 @@ 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 @@ -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' } @@ -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 024ba4571721..7d64760ad5c4 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 @@ -17,6 +17,7 @@ function New-CIPPBackup { 'AppPermissions' 'AccessRoleGroups' 'ApiClients' + 'CippReplacemap' 'CustomData' 'CustomRoles' 'Config' diff --git a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 index 1814abc23fe0..1d824262d601 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 @@ -6,6 +6,25 @@ function New-CIPPBackupTask { ) $BackupData = switch ($Task) { + 'CippCustomVariables' { + Write-Host "Backing up Custom Variables for $TenantFilter" + $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 diff --git a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 index a6c6ede0714d..ebca5a4e81b2 100644 --- a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 @@ -8,6 +8,7 @@ function New-CIPPCAPolicy { $Overwrite, $ReplacePattern = 'none', $DisableSD = $false, + $CreateGroups = $false, $APIName = 'Create CA Policy', $Headers ) @@ -39,21 +40,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 $User -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 $User -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" } @@ -68,14 +91,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 $User -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 $User -API 'Create CA Policy' -message "Replaced user name $_ with ID $uid" -Sev 'Debug' $UserIds.Add($uid) # add the ID to the list } } else { @@ -88,17 +111,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. @@ -108,31 +131,34 @@ 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 $User -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) { + #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) { [pscustomobject]@{ - id = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).id - name = ($CheckExististing | Where-Object -Property displayName -EQ $Location.displayName).displayName + id = ($CheckExisting | Where-Object -Property displayName -EQ $Location.displayName).id + name = ($CheckExisting | Where-Object -Property displayName -EQ $Location.displayName).displayName + templateId = $location.id } - Write-LogMessage -Headers $User -API $APINAME -message "Matched a CA policy with the existing Named Location: $($location.displayName)" -Sev 'Info' + Write-LogMessage -Tenant $TenantFilter -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 @@ -143,7 +169,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 $User -API $APINAME -message "Created new Named Location: $($location.displayName)" -Sev 'Info' [pscustomobject]@{ id = $GraphRequest.id name = $GraphRequest.displayName @@ -151,21 +177,23 @@ 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) { + $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) { + $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' { @@ -174,54 +202,74 @@ 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 } } @@ -229,37 +277,74 @@ function New-CIPPCAPolicy { if ($DisableSD -eq $true) { #Send request to disable security defaults. $body = '{ "isEnabled": false }' - $null = New-GraphPostRequest -tenantid $tenant -Uri 'https://graph.microsoft.com/beta/policies/identitySecurityDefaultsEnforcementPolicy' -Type patch -Body $body -ContentType 'application/json' - Write-LogMessage -Headers $User -API $APINAME -tenant $($Tenant) -message "Disabled Security Defaults for tenant $($TenantFilter)" -Sev 'Info' - Start-Sleep 3 + 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 $User -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 + $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 $User -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 $User -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-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-CIPPRestoreTask.ps1 b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 index a16760daf7ce..2e19b3f3f0a2 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 @@ -11,6 +11,46 @@ function New-CIPPRestoreTask { $Table = Get-CippTable -tablename 'ScheduledBackup' $BackupData = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$backup'" $RestoreData = switch ($Task) { + 'CippCustomVariables' { + Write-Host "Restore Custom Variables for $TenantFilter" + $ReplaceTable = Get-CIPPTable -TableName 'CippReplacemap' + $Backup = $BackupData.CippCustomVariables | ConvertFrom-Json + + $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 + } + + if ($overwrite) { + Add-CIPPAzDataTableEntity @ReplaceTable -Entity $entity -Force + Write-LogMessage -message "Restored custom variable $($variable.RowKey) from backup" -Sev 'info' + "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' + "Restored custom variable $($variable.RowKey) from backup" + } else { + Write-LogMessage -message "Custom variable $($variable.RowKey) already exists and overwrite is disabled" -Sev 'info' + "Custom variable $($variable.RowKey) already exists and overwrite is disabled" + } + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + "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 diff --git a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 index d8b09e412d33..eacab20fb018 100644 --- a/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPTemplateRun.ps1 @@ -39,9 +39,15 @@ 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) { @@ -49,14 +55,14 @@ function New-CIPPTemplateRun { 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) { 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 if ($UpdateNeeded) { Write-Information "Template $($File.name) needs to be updated as the SHA is different" "Template $($File.name) updated" @@ -69,6 +75,7 @@ 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 { diff --git a/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 index e18f016429a6..ed21070cefa5 100644 --- a/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPUserTask.ps1 @@ -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 = @{ @@ -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 fb3451234e72..7381e1426548 100644 --- a/Modules/CIPPCore/Public/New-CippUser.ps1 +++ b/Modules/CIPPCore/Public/New-CippUser.ps1 @@ -49,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 @@ -66,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/PermissionsTranslator.json b/Modules/CIPPCore/Public/PermissionsTranslator.json index 74fbcebe7cbe..52f29c119433 100644 --- a/Modules/CIPPCore/Public/PermissionsTranslator.json +++ b/Modules/CIPPCore/Public/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/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-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 1284db3c752d..527de771990e 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroups.ps1 @@ -11,43 +11,127 @@ function Remove-CIPPGroups { if (-not $userid) { $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 (-not $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-CIPPMailboxPermissions.ps1 b/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 index dc934b29088d..35d7bdbfbefc 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPMailboxPermissions.ps1 @@ -12,13 +12,14 @@ function Remove-CIPPMailboxPermissions { try { if ($userid -eq 'AllUsers') { $Mailboxes = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -Select UserPrincipalName - $Mailboxes | ForEach-Object -Parallel { + $Results = $Mailboxes | ForEach-Object -Parallel { Import-Module '.\Modules\AzBobbyTables' Import-Module '.\Modules\CIPPCore' Write-Host "Removing permissions from mailbox $($_.UserPrincipalName)" - Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid $_.UserPrincipalName -AccessUser $using:AccessUser -TenantFilter $using:TenantFilter -APIName $using:APINAME -Headers $using:Headers + Remove-CIPPMailboxPermissions -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') -userid $_.UserPrincipalName -AccessUser $using:AccessUser -TenantFilter $using:TenantFilter -APIName $using:APIName -Headers $using:Headers } -ThrottleLimit 10 - } else { + } + else { $Results = $PermissionsLevel | ForEach-Object { switch ($_) { 'SendOnBehalf' { @@ -58,7 +59,8 @@ function Remove-CIPPMailboxPermissions { } } return $Results - } catch { + } + catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -headers $Headers -API $APIName -message "Could not remove mailbox permissions for $($userid). Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage return "Could not remove mailbox permissions for $($userid). Error: $($ErrorMessage.NormalizedError)" 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/SAMManifest.json b/Modules/CIPPCore/Public/SAMManifest.json index 12702b4c6beb..9d9af97d45fb 100644 --- a/Modules/CIPPCore/Public/SAMManifest.json +++ b/Modules/CIPPCore/Public/SAMManifest.json @@ -43,10 +43,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 +67,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 +80,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 +103,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 +187,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 +263,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 +427,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 +495,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 +524,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 +623,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 index 90f3e36c3649..3eee2aff1ed1 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)" @@ -70,18 +100,19 @@ function Send-CIPPAlert { if ($Type -eq 'webhook') { Write-Information 'Trying to send webhook' - + $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,15 +121,17 @@ 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 + Invoke-RestMethod -Uri $webhook -Method POST -ContentType 'Application/json' -Body $JSONContent } } } + 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 $_ diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 index 272c0d21aff8..862ca7e91d5c 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 @@ -6,11 +6,36 @@ 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 + } + default { + # No additional settings + } + } + } + + # Build the assignment object $MobileAppAssignment = switch ($GroupName) { 'AllUsers' { @(@{ @@ -19,12 +44,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 +55,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 +67,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 +75,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' -tenantid $TenantFilter | ForEach-Object { + $Group = $_ + foreach ($SingleName in $GroupNames) { + if ($_.displayName -like $SingleName) { + $group.id + } } } + Write-Information "found $($resolvedGroupIds) groups" } - Write-Information "found $($GroupIds) groups" - foreach ($Group in $GroupIds) { + + # We ain't found nothing so we panic + if (-not $resolvedGroupIds) { + throw 'No matching groups resolved for assignment request.' + } + + foreach ($Group in $resolvedGroupIds) { @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' target = @{ @@ -93,30 +109,79 @@ 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 + # Write-Information (ConvertTo-Json $DefaultAssignmentObject -Depth 10) $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..afe026749296 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -8,12 +8,31 @@ function Set-CIPPAssignedPolicy { $TenantFilter, $PlatformType = 'deviceManagement', $APIName = 'Assign Policy', - $Headers + $Headers, + $AssignmentFilterName, + $AssignmentFilterType = 'include' ) Write-Host "Assigning policy $PolicyId ($PlatformType/$Type) to $GroupName" try { + # 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 = New-Object System.Collections.Generic.List[System.Object] switch ($GroupName) { 'allLicensedUsers' { @@ -51,7 +70,6 @@ function Set-CIPPAssignedPolicy { ) } 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 { @@ -61,6 +79,13 @@ function Set-CIPPAssignedPolicy { } } } + + if (-not $GroupIds -or $GroupIds.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 + return $ErrorMessage + } + foreach ($gid in $GroupIds) { $assignmentsList.Add( @{ @@ -97,24 +122,38 @@ function Set-CIPPAssignedPolicy { } } + # 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 + } + } + } + $assignmentsObject = [PSCustomObject]@{ assignments = $assignmentsList } $AssignJSON = $assignmentsObject | ConvertTo-Json -Depth 10 -Compress - Write-Host "AssignJSON: $AssignJSON" 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 if ($ExcludeGroup) { Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$GroupName' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter + return "Successfully assigned group '$GroupName' 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 + return "Successfully assigned group '$GroupName' 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 + 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 9c6443c15103..a8d045379c26 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCAExclusion.ps1 @@ -7,19 +7,38 @@ function Set-CIPPCAExclusion { $PolicyId, $Username, $Users, + $Groups, $Headers ) try { $CheckExisting = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies/$($PolicyId)" -tenantid $TenantFilter -AsApp $true if ($ExclusionType -eq 'add') { - if ($Users) { + 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 ($ExcludeUsers -notcontains $User) { + if ($User -and $User -ne '' -and $ExcludeUsers -notcontains $User) { $ExcludeUsers.Add($User) } } @@ -29,7 +48,7 @@ function Set-CIPPCAExclusion { } } } - } else { + } 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 } @@ -42,41 +61,93 @@ function Set-CIPPCAExclusion { } $RawJson = ConvertTo-Json -Depth 10 -InputObject $NewExclusions - if ($PSCmdlet.ShouldProcess($PolicyId, "Add exclusion for $UserID")) { + + 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') { - if ($Users) { - $UserID = $Users.value + 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 $_ }) + $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")) { + + 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 } } - 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 + 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 + } } } catch { - 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 $_) + 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-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-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-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 index 71564d7a732f..e465e7552887 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -9,7 +9,9 @@ function Set-CIPPIntunePolicy { $ExcludeGroup, $Headers, $APINAME, - $tenantFilter + $tenantFilter, + $AssignmentFilterName, + $AssignmentFilterType = 'include' ) $APINAME = 'Set-CIPPIntunePolicy' @@ -109,6 +111,40 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'configurationPolicies' $DisplayName = ($RawJSON | ConvertFrom-Json).Name + + $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 @@ -210,7 +246,21 @@ function Set-CIPPIntunePolicy { 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)" } catch { 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-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-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-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-CIPPUserJITAdmin.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 index e6979a826ecc..06114c720f41 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdmin.ps1 @@ -21,8 +21,11 @@ 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. + .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)] @@ -39,7 +42,9 @@ function Set-CIPPUserJITAdmin { [ValidateSet('Create', 'AddRoles', 'RemoveRoles', 'DeleteUser', 'DisableUser')] [string]$Action, - [datetime]$Expiration + [datetime]$Expiration, + + [string]$Reason = 'No reason provided' ) if ($PSCmdlet.ShouldProcess("User: $($User.UserPrincipalName)", "Action: $Action")) { @@ -67,6 +72,7 @@ function Set-CIPPUserJITAdmin { $Schema.id = @{ jitAdminEnabled = $false jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminReason = $Reason } } $Json = ConvertTo-Json -Depth 5 -InputObject $Body @@ -109,7 +115,7 @@ function Set-CIPPUserJITAdmin { } catch {} } - Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration | Out-Null + Set-CIPPUserJITAdminProperties -TenantFilter $TenantFilter -UserId $UserObj.id -Enabled -Expiration $Expiration -Reason $Reason | Out-Null return "Added admin roles to user $($UserObj.displayName) ($($UserObj.userPrincipalName))" } 'RemoveRoles' { diff --git a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 index 0a9df92b5e16..481fef740b42 100644 --- a/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPUserJITAdminProperties.ps1 @@ -1,11 +1,12 @@ function Set-CIPPUserJITAdminProperties { [CmdletBinding()] - Param( + param( [string]$TenantFilter, [string]$UserId, [switch]$Enabled, $Expiration, - [switch]$Clear + [switch]$Clear, + [string]$Reason ) try { $Schema = Get-CIPPSchemaExtensions | Where-Object { $_.id -match '_cippUser' } | Select-Object -First 1 @@ -14,6 +15,7 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $null jitAdminExpiration = $null + jitAdminReason = $null } } } else { @@ -21,6 +23,7 @@ function Set-CIPPUserJITAdminProperties { "$($Schema.id)" = @{ jitAdminEnabled = $Enabled.IsPresent jitAdminExpiration = $Expiration.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + jitAdminReason = $Reason } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 b/Modules/CIPPCore/Public/Set-CIPPUserLicense.ps1 index 32e907e15669..19b9db51942c 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 diff --git a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 index 7eaf01a80d1e..1abed41229f2 100644 --- a/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 +++ b/Modules/CIPPCore/Public/Standards/Get-CIPPStandards.ps1 @@ -20,17 +20,86 @@ function Get-CIPPStandards { $Table = Get-CippTable -tablename 'templates' $Filter = "PartitionKey eq 'StandardsTemplateV2'" $Templates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter | Sort-Object TimeStamp).JSON | - ForEach-Object { - try { - # Fix old "Action" => "action" - $JSON = $_ -replace '"Action":', '"action":' -replace '"permissionlevel":', '"permissionLevel":' - ConvertFrom-Json -InputObject $JSON -ErrorAction SilentlyContinue - } catch {} - } | - Where-Object { - $_.GUID -like $TemplateId -and $_.runManually -eq $runManually + ForEach-Object { + try { + # Fix old "Action" => "action" + $JSON = $_ -replace '"Action":', '"action":' -replace '"permissionlevel":', '"permissionLevel":' + ConvertFrom-Json -InputObject $JSON -ErrorAction SilentlyContinue + } catch {} + } | + Where-Object { + $_.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 +114,6 @@ function Get-CIPPStandards { $_.tenantFilter.value -contains 'AllTenants' } - $ComputedStandards = [ordered]@{} - foreach ($Template in $AllTenantsTemplates) { $Standards = $Template.standards @@ -55,82 +122,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,7 +240,7 @@ function Get-CIPPStandards { } } - # Separate them into AllTenant vs. TenantSpecific sets + # Separate AllTenants vs TenantSpecific templates $AllTenantTemplatesSet = $ApplicableTemplates | Where-Object { $_.tenantFilter.value -contains 'AllTenants' } @@ -191,9 +248,10 @@ function Get-CIPPStandards { $_.tenantFilter.value -notcontains 'AllTenants' } - $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,50 +264,63 @@ 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 } $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 - } + # 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')) { - $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 - } + $TemplateKey = if ($CurrentStandard.TemplateList.value) { $CurrentStandard.TemplateList.value } else { '' } + $Key = "$StandardName|$TemplateKey" + + $ComputedStandards[$Key] = $CurrentStandard } } } } - # 4b. Merge the TenantSpecificTemplatesSet + # Process TenantSpecific templates, merging with AllTenants base foreach ($Template in $TenantSpecificTemplatesSet) { $Standards = $Template.standards @@ -262,22 +333,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 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,46 +367,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 } } } } } - # 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 - } + # Emit one object per unique (StandardName, TemplateList.value) + 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 - $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..0bdf7e92a3eb 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,19 @@ 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 + 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 + } $StateIsCorrect = if ($CurrentState.definition -like "*$timeout*") { $true } else { $false } - 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 +77,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 } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDKIM.ps1 index 49e881023c41..4485efc83044 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,7 @@ 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_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -74,6 +76,7 @@ function Invoke-CIPPStandardAddDKIM { # Same exclusions also found in Push-DomainAnalyserTenant $ExclusionDomains = @( '*.microsoftonline.com' + '*.mail.onmicrosoft.com' '*.exclaimer.cloud' '*.excl.cloud' '*.codetwo.online' @@ -83,6 +86,7 @@ function Invoke-CIPPStandardAddDKIM { '*.teams.dstny.com' '*.msteams.8x8.com' '*.ucconnect.co.uk' + '*.teams-sbc.dk' ) $AllDomains = ($BatchResults | Where-Object { $_.DomainName }).DomainName | ForEach-Object { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 index 85e5ba190ec8..cd576e64222e 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,12 +42,12 @@ 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 { # Get current DNS records that matches _dmarc hostname and TXT type @@ -54,9 +56,9 @@ function Invoke-CIPPStandardAddDMARCToMOERA { if ($CurrentRecords.count -eq 0) { #record not found, return a model with Match set to false [PSCustomObject]@{ - DomainName = $_.Name - Match = $false - CurrentRecord = $null + DomainName = $_.Name + Match = $false + CurrentRecord = $null } } else { foreach ($CurrentRecord in $CurrentRecords) { @@ -71,15 +73,15 @@ 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 = $_.Name + Match = $true + CurrentRecord = $CurrentRecord } } else { [PSCustomObject]@{ - DomainName = $_.Name - Match = $false - CurrentRecord = $CurrentRecord + DomainName = $_.Name + Match = $false + CurrentRecord = $CurrentRecord } } } @@ -88,35 +90,34 @@ function Invoke-CIPPStandardAddDMARCToMOERA { # 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 } 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)) { + foreach ($Record in ($CurrentInfo | Where-Object -Property DomainName -EQ $Domain.DomainName)) { 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'} + 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 } - 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) + 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 } - } - 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,10 +128,10 @@ 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 } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAnonReportDisable.ps1 index 5a0d65510fe5..05d16fd877de 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,25 @@ 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 + } - 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 } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 index 5952765a17b5..2192e715ee90 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,6 +20,8 @@ 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":"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} @@ -50,7 +51,7 @@ function Invoke-CIPPStandardAntiPhishPolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'AntiPhishPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -63,18 +64,26 @@ function Invoke-CIPPStandardAntiPhishPolicy { $MDOLicensed = $ServicePlans -contains "ATP_ENTERPRISE" 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 + # 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 = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AntiPhishRule' | 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAntiSpamSafeList.ps1 index 4b2750be7fa0..768dd1c9628c 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,7 +32,7 @@ function Invoke-CIPPStandardAntiSpamSafeList { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'AntiSpamSafeList' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -41,7 +44,7 @@ function Invoke-CIPPStandardAntiSpamSafeList { $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 { @@ -49,7 +52,7 @@ 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAppDeploy.ps1 index 1848e47918a6..af96e1e1ab7c 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"}} @@ -186,6 +188,27 @@ function Invoke-CIPPStandardAppDeploy { $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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 new file mode 100644 index 000000000000..5cececa9417b --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAssignmentFilterTemplate.ps1 @@ -0,0 +1,126 @@ +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) + + ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'AssignmentFilterTemplate' + $existingFilters = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/assignmentFilters' -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 + + if ($Settings.remediate -eq $true) { + Write-Host "Settings: $($Settings.TemplateList | ConvertTo-Json)" + 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 + } + } + + if ($MissingFilters.Count -eq 0) { + $fieldValue = $true + } else { + $fieldValue = $MissingFilters -join ', ' + } + + Set-CIPPStandardsCompareField -FieldName 'standards.AssignmentFilterTemplate' -FieldValue $fieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAtpPolicyForO365.ps1 index b570a9206e41..4eb08c0cf3fa 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,7 +32,7 @@ function Invoke-CIPPStandardAtpPolicyForO365 { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'AtpPolicyForO365' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $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) { @@ -40,7 +41,7 @@ function Invoke-CIPPStandardAtpPolicyForO365 { } #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' @@ -64,8 +65,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 } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuditLog.ps1 index 81ae65729879..3d8ef1325f2e 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,7 +35,7 @@ function Invoke-CIPPStandardAuditLog { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'AuditLog' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -43,7 +46,7 @@ function Invoke-CIPPStandardAuditLog { Write-Host ($Settings | ConvertTo-Json) $AuditLogEnabled = [bool](New-ExoRequest -tenantid $Tenant -cmdlet 'Get-AdminAuditLogConfig' -Select UnifiedAuditLogIngestionEnabled).UnifiedAuditLogIngestionEnabled - If ($Settings.remediate -eq $true) { + if ($Settings.remediate -eq $true) { Write-Host 'Time to remediate' $DehydratedTenant = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig' -Select IsDehydrated).IsDehydrated @@ -66,8 +69,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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 index 2d40d7a7e266..733571d2ceba 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAuthMethodsPolicyMigration.ps1 @@ -13,14 +13,17 @@ function Invoke-CIPPStandardAuthMethodsPolicyMigration { 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-01-08 + 2025-07-07 POWERSHELLEQUIVALENT Update-MgBetaPolicyAuthenticationMethodPolicy RECOMMENDEDBY + "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -28,30 +31,41 @@ function Invoke-CIPPStandardAuthMethodsPolicyMigration { #> param($Tenant, $Settings) - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant + 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' + } if ($Settings.remediate -eq $true) { - if ($CurrentInfo.policyMigrationState -eq 'migrationComplete') { + 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 { - Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to complete authentication methods policy migration: $($_.Exception.Message)" -sev Error + $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') { + 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' + $migrationComplete = $CurrentInfo.policyMigrationState -eq 'migrationComplete' -or $null -eq $CurrentInfo.policyMigrationState Set-CIPPStandardsCompareField -FieldName 'standards.AuthMethodsPolicyMigration' -FieldValue $migrationComplete -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..da292eff3ae1 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"}]} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoAddProxy.ps1 index 09a97aabe0d2..06313eebbf53 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,15 @@ function Invoke-CIPPStandardAutoAddProxy { } $MissingProxies += $ProcessMailboxes.Count } - + $StateIsCorrect = $MissingProxies -eq 0 - + if ($Settings.report -eq $true) { $state = $StateIsCorrect ? $true : $MissingProxies Set-CIPPStandardsCompareField -FieldName 'standards.AutoAddProxy' -FieldValue $state -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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutoExpandArchive.ps1 index 940f2c236ac3..6a9f9d80cc8d 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,7 +30,7 @@ function Invoke-CIPPStandardAutoExpandArchive { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'AutoExpandArchive' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -36,9 +38,15 @@ function Invoke-CIPPStandardAutoExpandArchive { } #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) { + if ($Settings.remediate -eq $true) { Write-Host 'Time to remediate' if ($CurrentState) { @@ -48,8 +56,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 } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1 index e0f85ac949ca..4db07c9b94b8 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} @@ -49,44 +49,44 @@ function Invoke-CIPPStandardAutopilotProfile { return $true } #we're done. try { - # Replace variables in displayname to prevent duplicates - $DisplayName = Get-CIPPTextReplacement -Text $Settings.DisplayName -TenantFilter $Tenant - $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 } # 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 @@ -94,7 +94,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 @@ -103,13 +103,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 } } @@ -125,10 +125,10 @@ function Invoke-CIPPStandardAutopilotProfile { # 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 97851eefeeb0..e765ec90013e 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 @@ -46,7 +48,10 @@ function Invoke-CIPPStandardAutopilotStatusPage { } #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 @@ -54,11 +59,12 @@ function Invoke-CIPPStandardAutopilotStatusPage { ($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 } @@ -66,21 +72,20 @@ function Invoke-CIPPStandardAutopilotStatusPage { 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 } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 new file mode 100644 index 000000000000..1588392ebbca --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBitLockerKeysForOwnedDevice.ps1 @@ -0,0 +1,101 @@ +function Invoke-CIPPStandardBitLockerKeysForOwnedDevice { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) BitLockerKeysForOwnedDevice + .SYNOPSIS + (Label) Restrict users from recovering BitLocker keys for owned devices + .DESCRIPTION + (Helptext) Controls whether standard users can recover BitLocker keys for devices they own via Microsoft 365 portals. + (DocsDescription) Updates the default user role setting that governs access to BitLocker recovery keys for owned devices. This allows administrators to either permit self-service recovery or require helpdesk involvement through Microsoft Entra authorization policies. + .NOTES + CAT + Entra (AAD) Standards + TAG + "NIST CSF 2.0 (PR.AA-05)" + EXECUTIVETEXT + Ensures administrators retain control over BitLocker recovery secrets when required, while still allowing flexibility to enable self-service recovery when business needs demand it. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Select state","name":"standards.BitLockerKeysForOwnedDevice.state","options":[{"label":"Restrict","value":"restrict"},{"label":"Allow","value":"allow"}]} + IMPACT + Medium Impact + ADDEDDATE + 2025-10-12 + POWERSHELLEQUIVALENT + Update-MgBetaPolicyAuthorizationPolicy + 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) + ##$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 + } + $CurrentValue = [bool]$CurrentState.defaultUserRolePermissions.allowedToReadBitLockerKeysForOwnedDevice + $StateIsCorrect = ($CurrentValue -eq $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 + $CurrentValue = $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 ($CurrentValue) { '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' -FieldValue $StateIsCorrect -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 e1b10d9944cb..a9d2d9633ffe 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,7 +31,7 @@ function Invoke-CIPPStandardBookings { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'Bookings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,7 +42,13 @@ function Invoke-CIPPStandardBookings { # 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 } @@ -54,7 +62,7 @@ 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' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardBranding.ps1 index 24ddefaffd0b..c6b8f80a97a6 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} @@ -38,24 +40,55 @@ function Invoke-CIPPStandardBranding { $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) - 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 +122,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,7 +132,7 @@ function Invoke-CIPPStandardBranding { } } - If ($Settings.report -eq $true) { + 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 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 ccd6411243c1..8a61d794eac0 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,7 +31,7 @@ function Invoke-CIPPStandardCloudMessageRecall { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'CloudMessageRecall' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,7 +42,13 @@ function Invoke-CIPPStandardCloudMessageRecall { # 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 index f12c32b6e2e9..aefd4251b824 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 @@ -20,9 +20,12 @@ 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"}} {"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"} UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -30,21 +33,52 @@ function Invoke-CIPPStandardConditionalAccessTemplate { #> param($Tenant, $Settings) ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ConditionalAccess' - $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate' -TenantFilter $Tenant -RequiredCapabilities @('AAD_PREMIUM', 'AAD_PREMIUM_P2') $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. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($_.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $AllCAPolicies = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$top=999' -tenantid $Tenant + + 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 { $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 -DisableSD $Setting.DisableSD + $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' @@ -54,12 +88,21 @@ function Invoke-CIPPStandardConditionalAccessTemplate { 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) { - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Setting.value)" -FieldValue "Policy $($Setting.label) is missing from this tenant." -Tenant $Tenant + 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 { $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject (New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing) $Compare = Compare-CIPPIntuneObject -ReferenceObject $policy -DifferenceObject $CompareObj diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 index 5191bf2cc04c..6c5009d324a9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCustomBannedPasswordList.ps1 @@ -5,17 +5,17 @@ function Invoke-CIPPStandardCustomBannedPasswordList { .COMPONENT (APIName) CustomBannedPasswordList .SYNOPSIS - (Label) Update Entra ID Custom Banned Password List + (Label) Set Entra ID Custom Banned Password List .DESCRIPTION - (Helptext) Updates the Entra ID custom banned password list with organization-specific terms. Requires Entra ID P1 or P2 licenses. Enter words separated by commas or new lines. Each word must be 4-16 characters long. Maximum 1,000 words allowed. - (DocsDescription) Updates the Entra ID custom banned password list with organization-specific terms that should be blocked from user passwords. 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 combinations of these terms in user passwords. + (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 - Global Standards + Entra (AAD) Standards TAG "CIS M365 5.0 (5.2.3.2)" ADDEDCOMPONENT - {"type":"textArea","name":"standards.CustomBannedPasswordList.BannedWords","label":"Banned Words List","placeholder":"Enter banned words separated by commas or new lines (4-16 characters each, max 1000 words)","required":true,"rows":10} + {"type":"textField","name":"standards.CustomBannedPasswordList.BannedWords","label":"Banned Words","placeholder":"Banned words separated by commas or semicolons","required":true} IMPACT Medium Impact ADDEDDATE @@ -23,7 +23,7 @@ function Invoke-CIPPStandardCustomBannedPasswordList { POWERSHELLEQUIVALENT Get-MgBetaDirectorySetting, New-MgBetaDirectorySetting, Update-MgBetaDirectorySetting RECOMMENDEDBY - "CIS", "CIPP" + "CIS" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -31,9 +31,8 @@ function Invoke-CIPPStandardCustomBannedPasswordList { #> param($Tenant, $Settings) - + Write-Host "All params received: $Tenant, $tenant, $($Settings | ConvertTo-Json -Depth 10 -Compress)" $PasswordRuleTemplateId = '5cf42378-d67d-4f36-ba46-e8b86229381d' - # Parse and validate banned words from input $BannedWordsInput = $Settings.BannedWords if ([string]::IsNullOrWhiteSpace($BannedWordsInput)) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultPlatformRestrictions.ps1 index 133f804ad5e9..1dc00ce739d0 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} @@ -48,9 +51,11 @@ function Invoke-CIPPStandardDefaultPlatformRestrictions { 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 - } catch { + } + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 index f7fd81002f10..409ad97db6bb 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDefaultSharingLink.ps1 @@ -8,21 +8,27 @@ function Invoke-CIPPStandardDefaultSharingLink { (Label) Set Default Sharing Link Settings .DESCRIPTION (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. + (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,"label":"Default Sharing Link Type","name":"standards.DefaultSharingLink.SharingLinkType","options":[{"label":"Direct - Only specific people","value":"Direct"},{"label":"Internal - Anyone in the organization","value":"Internal"}]}] + {"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 [Direct|Internal] -DefaultLinkPermission View + Set-SPOTenant -DefaultSharingLinkType [Direct\|Internal] -DefaultLinkPermission View RECOMMENDEDBY - CIS + "CIS" + "CIPP" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -30,7 +36,7 @@ function Invoke-CIPPStandardDefaultSharingLink { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultSharingLink' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'DefaultSharingLink' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') # Determine the desired sharing link type (default to Internal if not specified) @@ -48,8 +54,15 @@ function Invoke-CIPPStandardDefaultSharingLink { } $DesiredSharingLinkTypeValue = $SharingLinkTypeMap[$DesiredSharingLinkType] - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType, DefaultLinkPermission + 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 + } # Check if the current state matches the desired configuration $StateIsCorrect = ($CurrentState.DefaultSharingLinkType -eq $DesiredSharingLinkTypeValue) -and ($CurrentState.DefaultLinkPermission -eq 1) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDelegateSentItems.ps1 index e3686fec0076..14c3d735e600 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,7 +31,7 @@ function Invoke-CIPPStandardDelegateSentItems { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DelegateSentItems' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeletedUserRentention.ps1 index 3f9e1d4bece1..41172643c22e 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,7 +31,7 @@ function Invoke-CIPPStandardDeletedUserRentention { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DeletedUserRentention' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $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' if ($TestResult -eq $false) { @@ -37,7 +39,14 @@ function Invoke-CIPPStandardDeletedUserRentention { 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 DeletedUserRetention state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $Days = $Settings.Days.value ?? $Settings.Days if ($Settings.report -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 new file mode 100644 index 000000000000..664e27fec20c --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployCheckChromeExtension.ps1 @@ -0,0 +1,232 @@ +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)' + + # Get configuration values with defaults + $ShowNotifications = $Settings.showNotifications ?? $true + $EnableValidPageBadge = $Settings.enableValidPageBadge ?? $true + $EnablePageBlocking = $Settings.enablePageBlocking ?? $true + $EnableCippReporting = $Settings.enableCippReporting ?? $true + $CippServerUrl = $Settings.cippServerUrl + $CippTenantId = $Settings.cippTenantId + $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 + Set-CIPPStandardsCompareField -FieldName 'standards.DeployCheckChromeExtension' -FieldValue $StateIsCorrect -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 63f77574f974..c5a6ce29d1f6 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,7 +34,7 @@ function Invoke-CIPPStandardDeployContactTemplates { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DeployContactTemplates' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 index aa419c59f095..01b2c06a8ae6 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,7 +35,7 @@ function Invoke-CIPPStandardDeployMailContact { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DeployMailContact' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAddShortcutsToOneDrive.ps1 index d8582c299a21..248c250d6b6f 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,7 +31,7 @@ function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAddShortcutsToOneDrive' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $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' if ($TestResult -eq $false) { @@ -37,7 +39,15 @@ function Invoke-CIPPStandardDisableAddShortcutsToOneDrive { return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, DisableAddToOneDrive + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAdditionalStorageProviders.ps1 index ab555b551825..e3768e11b933 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,7 +33,7 @@ function Invoke-CIPPStandardDisableAdditionalStorageProviders { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableAdditionalStorageProviders' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -39,7 +41,14 @@ function Invoke-CIPPStandardDisableAdditionalStorageProviders { } #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 + } if ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableAppCreation.ps1 index e295bf78dec1..a95bb94a6278 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,7 +40,14 @@ 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 + } If ($Settings.remediate -eq $true) { if ($CurrentInfo.defaultUserRolePermissions.allowedToCreateApps -eq $false) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableBasicAuthSMTP.ps1 index da0f37a1b4d8..d2a75761de75 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,7 +34,7 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableBasicAuthSMTP' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -38,8 +42,17 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { } #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' + + $SMTPusers = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-CASMailbox' -cmdParams @{ ResultSize = 'Unlimited' } | + 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) { Write-Host 'Time to remediate' @@ -59,7 +72,7 @@ function Invoke-CIPPStandardDisableBasicAuthSMTP { # 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 + New-ExoRequest -tenantid $Tenant -cmdlet 'Set-CASMailbox' -cmdParams @{ Identity = $_.Guid; 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 index 2316844428a2..58c0c89e84db 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 @@ -30,7 +34,14 @@ 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) { @@ -54,7 +65,7 @@ function Invoke-CIPPStandardDisableEmail { } if ($Settings.report -eq $true) { - $state = $StateIsCorrect -eq $true ? $true : $CurrentState + $state = $StateIsCorrect -eq $true ? $true : $CurrentState Set-CIPPStandardsCompareField -FieldName 'standards.DisableEmail' -FieldValue $state -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..1f791cbd4b26 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableEntraPortal.ps1 @@ -12,7 +12,14 @@ 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 525cfd6149e2..016557aa7124 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,7 +34,7 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExchangeOnlinePowerShell' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -44,7 +45,7 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { 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 { @@ -61,7 +62,7 @@ function Invoke-CIPPStandardDisableExchangeOnlinePowerShell { @{ CmdletInput = @{ CmdletName = 'Set-User' - Parameters = @{Identity = $_.Identity; RemotePowerShellEnabled = $false } + Parameters = @{Identity = $_.Guid; RemotePowerShellEnabled = $false } } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableExternalCalendarSharing.ps1 index 9873bf4e088c..fca63098a8cc 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,7 +33,7 @@ function Invoke-CIPPStandardDisableExternalCalendarSharing { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableExternalCalendarSharing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -39,7 +41,15 @@ function Invoke-CIPPStandardDisableExternalCalendarSharing { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableExternalCalendarSharing' - $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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuestDirectory.ps1 index bd3f35789266..83179a83634b 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 @@ -31,7 +39,14 @@ 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 + 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableGuests.ps1 index 56ac2349159d..a4169524521d 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,43 +33,60 @@ 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. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName 'standards.DisableGuests' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + Write-Host "We're exiting as the correct license is not present for this standard." + 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() + $Lookup = $Days.ToString('o') $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 { + $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 $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) $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 + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabling guest $($guest.UserPrincipalName) ($($guest.id)). Last sign-in: $($guest.signInActivity.lastSuccessfulSignInDateTime)" -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 } } } 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 index 44bc07465732..174eeef2fd89 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,7 +31,7 @@ function Invoke-CIPPStandardDisableM365GroupUsers { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableM365GroupUsers' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableM365GroupUsers' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableM365GroupUsers' if ($TestResult -eq $false) { @@ -36,7 +39,15 @@ function Invoke-CIPPStandardDisableM365GroupUsers { return $true } #we're done. - $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | Where-Object -Property displayname -EQ 'Group.unified' + 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') { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableOutlookAddins.ps1 index 39ab24e016bf..483d7b3c1219 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,7 +35,7 @@ function Invoke-CIPPStandardDisableOutlookAddins { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableOutlookAddins' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -39,7 +43,15 @@ function Invoke-CIPPStandardDisableOutlookAddins { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableOutlookAddins' - $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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 index 358f1bfb76e5..cd3ad4ca11e5 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableReshare.ps1 index 94504d7792a6..00907b647f35 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,7 +35,7 @@ function Invoke-CIPPStandardDisableReshare { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableReshare' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableReshare' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableReshare' if ($TestResult -eq $false) { @@ -39,7 +43,14 @@ function Invoke-CIPPStandardDisableReshare { 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableResourceMailbox.ps1 index 0635a3eeef52..5f6509f7baa1 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,7 +33,7 @@ function Invoke-CIPPStandardDisableResourceMailbox { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableResourceMailbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,10 +42,17 @@ function Invoke-CIPPStandardDisableResourceMailbox { ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableResourceMailbox' # 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 | + try { + $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' | + $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' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 index 076ea346d5d3..9e31319e9e74 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 @@ -31,7 +36,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSecurityGroupUsers.ps1 index 434754a89f43..2ebc31ab174f 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 @@ -30,7 +34,14 @@ 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 ($CurrentInfo.defaultUserRolePermissions.allowedToCreateSecurityGroups -eq $false) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSelfServiceLicenses.ps1 index 535aeca021cc..84aa8b9e166d 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharePointLegacyAuth.ps1 index 99535b28cf89..3f3ad436c31a 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,7 +37,7 @@ function Invoke-CIPPStandardDisableSharePointLegacyAuth { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableSharePointLegacyAuth' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableSharePointLegacyAuth' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableSharePointLegacyAuth' if ($TestResult -eq $false) { @@ -40,7 +45,14 @@ function Invoke-CIPPStandardDisableSharePointLegacyAuth { 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableSharedMailbox.ps1 index 257229cb8aea..ce4ee3ecd59a 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 @@ -33,8 +37,15 @@ 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 { + $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 }) + } + 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTNEF.ps1 index f9d16a185bd2..37453584a858 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 @@ -30,13 +32,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_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-RemoteDomain' -cmdParams @{Identity = 'Default' } + + 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) { Write-Host 'Time to remediate' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableTenantCreation.ps1 index dcdab63d0073..f5023093a594 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 @@ -33,7 +36,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableUserSiteCreate.ps1 index d88f4cbc3fc4..20c91e310e65 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,7 +30,7 @@ function Invoke-CIPPStandardDisableUserSiteCreate { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'DisableUserSiteCreate' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableUserSiteCreate' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'DisableUserSiteCreate' if ($TestResult -eq $false) { @@ -36,7 +38,14 @@ function Invoke-CIPPStandardDisableUserSiteCreate { 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 DisableUserSiteCreate state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } If ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableViva.ps1 index 59d7a1055f19..5cae497f3b8d 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 index 3ad258c913e1..4e53abdff35a 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 @@ -31,7 +36,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 index 518c4ab96cd1..3424827b8efa 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 @@ -30,7 +32,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODirectSend.ps1 index 146c78a3a5f8..1d21de6a55e3 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXODisableAutoForwarding.ps1 index 9ad98d78c2cf..9b51a323a138 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,7 +37,7 @@ function Invoke-CIPPStandardEXODisableAutoForwarding { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EXODisableAutoForwarding' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -41,7 +45,14 @@ function Invoke-CIPPStandardEXODisableAutoForwarding { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EXODisableAutoForwarding' - $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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 index 10d8a82011b0..21093d8428ea 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEXOOutboundSpamLimits.ps1 @@ -13,7 +13,9 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { 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,7 +37,7 @@ function Invoke-CIPPStandardEXOOutboundSpamLimits { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EXOOutboundSpamLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -68,7 +70,15 @@ 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableAppConsentRequests.ps1 index 4f2fe48c8f42..93c488c8637d 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 @@ -33,7 +43,14 @@ 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) { try { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableCustomerLockbox.ps1 index ee6badad343b..60c87aaa5359 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 @@ -39,7 +41,15 @@ function Invoke-CIPPStandardEnableCustomerLockbox { return $true } #we're done. - $CustomerLockboxStatus = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').CustomerLockboxEnabled + 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 + } + if ($Settings.remediate -eq $true) { Write-Host 'Time to remediate' try { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 index dc5b9e9e5da7..873b902eca0b 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 @@ -31,7 +40,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 index 405a2747e0bc..2f72f66f0136 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 @@ -30,7 +32,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1 index 97173ce9afc5..1476f7eab82d 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,7 +31,7 @@ function Invoke-CIPPStandardEnableLitigationHold { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EnableLitigationHold' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -37,7 +39,14 @@ function Invoke-CIPPStandardEnableLitigationHold { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableLitigationHold' - $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' } + 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailTips.ps1 index 1532e458a2ab..0ab55ef1a2c9 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,7 +35,7 @@ function Invoke-CIPPStandardEnableMailTips { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailTips' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -41,7 +43,14 @@ function Invoke-CIPPStandardEnableMailTips { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableMailTips' - $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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableMailboxAuditing.ps1 index 6a2397ce7139..fc6e8be67ce1 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,7 +39,7 @@ function Invoke-CIPPStandardEnableMailboxAuditing { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EnableMailboxAuditing' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,7 +47,14 @@ function Invoke-CIPPStandardEnableMailboxAuditing { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'EnableMailboxAuditing' - $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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableNamePronunciation.ps1 index b3d00a681c95..c24373226143 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableOnlineArchiving.ps1 index fe06e02928a4..bb0389b0988d 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,7 +32,7 @@ function Invoke-CIPPStandardEnableOnlineArchiving { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'EnableOnlineArchiving' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -76,7 +80,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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnablePronouns.ps1 index 3e3a23a6ee9a..99df96d1ca0c 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 new file mode 100644 index 000000000000..dc8ab4838108 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnrollmentWindowsHelloForBusinessConfiguration.ps1 @@ -0,0 +1,143 @@ +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) { + Write-Host "We're exiting as the correct license is not present for this standard." + 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 + } + + 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) { + $FieldValue = $StateIsCorrect ? $true : $CompareField + Set-CIPPStandardsCompareField -FieldName 'standards.EnrollmentWindowsHelloForBusinessConfiguration' -FieldValue $FieldValue -TenantFilter $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 similarity index 63% rename from Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 rename to Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 index b57860ecf55b..9213b8324650 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExConnector.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExchangeConnectorTemplate.ps1 @@ -1,10 +1,34 @@ function Invoke-CIPPStandardExchangeConnectorTemplate { <# .FUNCTIONALITY - Internal + 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_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExcludedfileExt.ps1 index fc1fd74618ce..9924dc9cdf7b 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,7 +31,7 @@ function Invoke-CIPPStandardExcludedfileExt { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'ExcludedfileExt' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'ExcludedfileExt' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'ExcludedfileExt' if ($TestResult -eq $false) { @@ -37,7 +39,14 @@ function Invoke-CIPPStandardExcludedfileExt { 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 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 { $_ } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardExternalMFATrusted.ps1 index 05320c8fbb03..719d1be1357a 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 @@ -31,7 +33,14 @@ 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFocusedInbox.ps1 index e45a8920d3e3..4d668dbd3854 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,7 @@ function Invoke-CIPPStandardFocusedInbox { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'FocusedInbox' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -46,7 +48,14 @@ function Invoke-CIPPStandardFocusedInbox { 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardFormsPhishingProtection.ps1 index 795216b19e74..8c4598b93b57 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 index 138fb8a2464d..1eff1e59ac2f 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGlobalQuarantineNotifications.ps1 @@ -30,13 +30,22 @@ function Invoke-CIPPStandardGlobalQuarantineNotifications { 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_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGroupTemplate.ps1 index 29c84354828e..dae60252fc37 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,90 +30,194 @@ function Invoke-CIPPStandardGroupTemplate { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'GroupTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access - if ($TestResult -eq $false) { - Write-Host "We're exiting as the correct license is not present for this standard." - return $true - } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'GroupTemplate' $existingGroups = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999' -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 = $existingGroups | 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 + } + + # 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'") + } } - $GraphRequest = New-ExoRequest -tenantid $tenant -cmdlet 'Set-DynamicDistributionGroup' -cmdParams $params + } 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 { @@ -121,12 +227,18 @@ function Invoke-CIPPStandardGroupTemplate { } } if ($Settings.report -eq $true) { - $Groups = $Settings.groupTemplate.JSON | ConvertFrom-Json -Depth 10 #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 $Groups) { - $CheckExististing = $existingGroups | Where-Object -Property displayName -EQ $Group.displayname - if (!$CheckExististing) { - $Group.displayname + $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 + } } } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardGuestInvite.ps1 index 4cb15592d663..9a6762f5723a 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,7 +35,14 @@ 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneComplianceSettings.ps1 index bbdd69edd3c6..e306641d550d 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)"} @@ -37,7 +39,15 @@ function Invoke-CIPPStandardIntuneComplianceSettings { return $true } #we're done. - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/settings' -tenantid $Tenant | Select-Object secureByDefault, deviceComplianceCheckinThresholdDays + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 index 04b3f8eb6c86..9e71c3a79077 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -20,21 +20,28 @@ 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"}} + {"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."} 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 'IntuneTemplate' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') + $TestResult = Test-CIPPStandardLicense -StandardName 'IntuneTemplate_general' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneTemplate' if ($TestResult -eq $false) { + #writing to each item that the license is not present. + $settings.TemplateList | ForEach-Object { + Set-CIPPStandardsCompareField -FieldName "standards.IntuneTemplate.$($_.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. @@ -85,38 +92,42 @@ function Invoke-CIPPStandardIntuneTemplate { 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 } } } @@ -127,7 +138,24 @@ function Invoke-CIPPStandardIntuneTemplate { 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' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 new file mode 100644 index 000000000000..2cca54b4929f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardLegacyEmailReportAddins.ps1 @@ -0,0 +1,157 @@ +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) { + $ReportData = if ($StateIsCorrect) { + $true + } else { + @{ + InstalledLegacyAddins = $InstalledLegacyAddins + Status = 'Legacy add-ins still installed' + } + } + Set-CIPPStandardsCompareField -FieldName 'standards.LegacyEmailReportAddins' -FieldValue $ReportData -TenantFilter $Tenant + 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-CIPPStandardMDMScope.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMDMScope.ps1 index ab52addfe26d..5566af2f0c46 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} @@ -37,7 +39,14 @@ function Invoke-CIPPStandardMDMScope { return $true } #we're done. - $CurrentInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/mobileDeviceManagementPolicies/0000000a-0000-0000-c000-000000000000?$expand=includedGroups' -tenantid $Tenant + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailContacts.ps1 index 55655ccc1d8f..0c255ecfa1d6 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} @@ -34,16 +36,23 @@ 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 { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMailboxRecipientLimits.ps1 index 0225f6423bfe..72e7b220962b 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,7 +32,7 @@ function Invoke-CIPPStandardMailboxRecipientLimits { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'MailboxRecipientLimits' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -44,7 +46,14 @@ 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 = @{} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 index 632ae123f34e..97f7b4b32ed9 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMalwareFilterPolicy.ps1 @@ -13,10 +13,12 @@ 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":"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"} @@ -40,7 +42,7 @@ function Invoke-CIPPStandardMalwareFilterPolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'MalwareFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -48,24 +50,38 @@ function Invoke-CIPPStandardMalwareFilterPolicy { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'MalwareFilterPolicy' - $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 = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterPolicy' | 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 = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MalwareFilterRule' | 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 + try { + $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 + } 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 + } $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') @@ -75,27 +91,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 + 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) { @@ -105,7 +123,7 @@ function Invoke-CIPPStandardMalwareFilterPolicy { $cmdParams = @{ EnableFileFilter = $true FileTypes = $ExpectedFileTypes - FileTypeAction = $Settings.FileTypeAction + FileTypeAction = $FileTypeAction ZapEnabled = $true QuarantineTag = $Settings.QuarantineTag EnableInternalSenderAdminNotifications = $Settings.EnableInternalSenderAdminNotifications diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 index fcbf37358bd4..b3d2e22adb6d 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardMessageExpiration.ps1 @@ -28,7 +28,7 @@ function Invoke-CIPPStandardMessageExpiration { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'MessageExpiration' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -36,7 +36,14 @@ function Invoke-CIPPStandardMessageExpiration { } #we're done. ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'MessageExpiration' - $MessageExpiration = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-TransportConfig').messageExpiration + 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' diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 index 98c73b0c9372..e81fc47ee558 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} @@ -33,20 +35,20 @@ function Invoke-CIPPStandardNudgeMFA { ##$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 +59,7 @@ function Invoke-CIPPStandardNudgeMFA { Body = @{ registrationEnforcement = @{ authenticationMethodsRegistrationCampaign = @{ - state = $state + state = $State snoozeDurationInDays = $Settings.snoozeDurationInDays enforceRegistrationAfterAllowedSnoozes = $true includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets @@ -69,7 +71,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 +86,8 @@ 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 + $State = $StateIsCorrect ? $true : ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign | Select-Object snoozeDurationInDays, state) + Set-CIPPStandardsCompareField -FieldName 'standards.NudgeMFA' -FieldValue $State -Tenant $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..d63acb07b749 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOWAAttachmentRestrictions.ps1 @@ -0,0 +1,137 @@ +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) { + Write-Host "We're exiting as the correct license is not present for this standard." + 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) { + if ($StateIsCorrect) { + Set-CIPPStandardsCompareField -FieldName 'standards.OWAAttachmentRestrictions' -FieldValue $true -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OWAAttachmentRestrictions' -FieldValue $true -StoreAs bool -Tenant $Tenant + } else { + $ReportData = @{ + CurrentPolicy = $CurrentPolicy.ConditionalAccessPolicy + RequiredPolicy = $Settings.ConditionalAccessPolicy.value + PolicyName = $CurrentPolicy.Name + IsCompliant = $false + Description = 'OWA attachment restrictions not properly configured for unmanaged devices' + } + Set-CIPPStandardsCompareField -FieldName 'standards.OWAAttachmentRestrictions' -FieldValue $ReportData -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'OWAAttachmentRestrictions' -FieldValue $ReportData -StoreAs json -Tenant $Tenant + } + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 index 9d00b6a527e7..3c26e522a553 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,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 index 8338bcf4b108..89a4336b0d84 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,17 @@ 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 $_ } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardOutBoundSpamAlert.ps1 index 5216f08af174..3407c342634c 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,14 +31,21 @@ function Invoke-CIPPStandardOutBoundSpamAlert { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'OutBoundSpamAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWcompanionAppAllowedState.ps1 index a52afe311852..cfc78fe70b03 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 index 7dacd622acbd..05a71918a8c2 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,15 @@ 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') diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPasswordExpireDisabled.ps1 index a801f3a32244..b26f7ba9b84c 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,7 +35,15 @@ 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPerUserMFA.ps1 index a9cb8cf01c4e..32cfa2b62748 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,7 +40,14 @@ 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 { + $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 + } + 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 index c74ea30aa0e8..ee3093fbd9c9 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 index d385120c7449..23691f879c08 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishSimSpoofIntelligence.ps1 @@ -30,15 +30,22 @@ function Invoke-CIPPStandardPhishSimSpoofIntelligence { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'PhishSimSpoofIntelligence' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 index 6b4b4005846f..6cc3a314ea55 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardPhishingSimulations.ps1 @@ -32,7 +32,7 @@ function Invoke-CIPPStandardPhishingSimulations { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'PhishingSimulations' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -41,9 +41,16 @@ function Invoke-CIPPStandardPhishingSimulations { $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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardProfilePhotos.ps1 index 58ced8cd5211..181abe1da4ce 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,7 +31,7 @@ function Invoke-CIPPStandardProfilePhotos { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'ProfilePhotos' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -49,8 +51,15 @@ function Invoke-CIPPStandardProfilePhotos { $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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 index 9fd1b7426f98..4942da7410c9 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,7 +31,7 @@ function Invoke-CIPPStandardQuarantineRequestAlert { #> param ($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineRequestAlert' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -37,9 +39,16 @@ function Invoke-CIPPStandardQuarantineRequestAlert { } #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 } | + Select-Object -Property * + } + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardQuarantineTemplate.ps1 index 02bf724072d4..474775e9002b 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,7 +42,7 @@ function Invoke-CIPPStandardQuarantineTemplate { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'QuarantineTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRestrictThirdPartyStorageServices.ps1 index 2b446afcfe9c..b84aca5fe2c9 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 @@ -31,7 +33,7 @@ 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', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'ThirdPartyStorageServicesRestricted' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 index cc96f1cb4053..438d70c82afa 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,7 +32,7 @@ function Invoke-CIPPStandardRetentionPolicyTag { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'RetentionPolicyTag' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -37,11 +40,19 @@ function Invoke-CIPPStandardRetentionPolicyTag { } #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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardRotateDKIM.ps1 index d99d8e2800e3..846f3b93eadb 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,14 +33,21 @@ function Invoke-CIPPStandardRotateDKIM { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'RotateDKIM' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPAzureB2B.ps1 index b27311d068a9..767910a0793f 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,15 +32,22 @@ function Invoke-CIPPStandardSPAzureB2B { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPAzureB2B' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPAzureB2B' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDirectSharing.ps1 index 08e3e1ca1c81..a7e9e3a8a2ff 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,7 +32,7 @@ function Invoke-CIPPStandardSPDirectSharing { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPDirectSharing' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDirectSharing' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,8 +41,15 @@ function Invoke-CIPPStandardSPDirectSharing { 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 - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | - Select-Object -Property _ObjectIdentity_, TenantFilter, DefaultSharingLinkType + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisableLegacyWorkflows.ps1 index ae96250dba3e..dbbf748b9739 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,15 +29,22 @@ 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', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisableLegacyWorkflows' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + try { + $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object -Property * + } + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPDisallowInfectedFiles.ps1 index 812f35819c74..03bd09556c31 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,15 +35,22 @@ function Invoke-CIPPStandardSPDisallowInfectedFiles { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisallowInfectedFiles' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPDisallowInfectedFiles' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPEmailAttestation.ps1 index 1445b22f2723..c454a1976170 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,14 +35,22 @@ function Invoke-CIPPStandardSPEmailAttestation { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPEmailAttestation' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPEmailAttestation' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object -Property _ObjectIdentity_, TenantFilter, 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPExternalUserExpiration.ps1 index 27d90d437ef3..96be5ff61600 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,15 +34,22 @@ function Invoke-CIPPStandardSPExternalUserExpiration { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPExternalUserExpiration' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPExternalUserExpiration' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 new file mode 100644 index 000000000000..7d01dbbcdca4 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPFileRequests.ps1 @@ -0,0 +1,136 @@ +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 (($Settings.state -eq $null) -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 ($ExpirationDays -ne $null -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 ($ExpirationDays -ne $null -and $WantedState -eq $true) { + $Properties['CoreRequestFilesLinkExpirationInDays'] = $ExpirationDays + $Properties['OneDriveRequestFilesLinkExpirationInDays'] = $ExpirationDays + } + + $CurrentState | Set-CIPPSPOTenant -Properties $Properties + + $ExpirationMessage = if ($ExpirationDays -ne $null -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 ($ExpirationDays -ne $null -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 ($ExpirationDays -ne $null -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 ($ExpirationDays -ne $null -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 ($ExpirationDays -ne $null) { + Add-CIPPBPAField -FieldName 'SPCoreFileRequestsExpirationDays' -FieldValue $CurrentState.CoreRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SPOneDriveFileRequestsExpirationDays' -FieldValue $CurrentState.OneDriveRequestFilesLinkExpirationInDays -StoreAs string -Tenant $Tenant + } + + if ($AllSettingsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + Set-CIPPStandardsCompareField -FieldName 'standards.SPFileRequests' -FieldValue $FieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSPSyncButtonState.ps1 index f8a10d66b685..fec4d5f3a99f 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,14 +31,21 @@ function Invoke-CIPPStandardSPSyncButtonState { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SPSyncButtonState' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'SPSyncButtonState' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, HideSyncButtonOnDocLib + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 index 0909e492eae6..c2633efe5104 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeAttachmentPolicy.ps1 @@ -13,10 +13,11 @@ 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":"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"}]} @@ -37,7 +38,7 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SafeAttachmentPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -49,24 +50,39 @@ function Invoke-CIPPStandardSafeAttachmentPolicy { $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' 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 + # 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 = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | 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 + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeAttachmentPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object Name, Enable, Action, QuarantineTag, Redirect, RedirectAddress + } + 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 + } $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and ($CurrentState.Enable -eq $true) -and diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 index 28fab38d23fe..ed5925224aa6 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksPolicy.ps1 @@ -13,9 +13,10 @@ 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":"switch","label":"AllowClickThrough","name":"standards.SafeLinksPolicy.AllowClickThrough"} {"type":"switch","label":"DisableUrlRewrite","name":"standards.SafeLinksPolicy.DisableUrlRewrite"} @@ -36,7 +37,7 @@ function Invoke-CIPPStandardSafeLinksPolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -48,24 +49,39 @@ function Invoke-CIPPStandardSafeLinksPolicy { $MDOLicensed = $ServicePlans -contains 'ATP_ENTERPRISE' if ($MDOLicensed) { - $PolicyList = @('CIPP Default SafeLinks Policy', 'Default SafeLinks Policy') - $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | 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 SafeLinks Policy' } + $PolicyList = @($PolicyName, 'CIPP Default SafeLinks Policy', 'Default SafeLinks Policy') + $ExistingPolicy = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | 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 = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksRule' | 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' | + try { + $CurrentState = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-SafeLinksPolicy' | Where-Object -Property Name -EQ $PolicyName | Select-Object Name, EnableSafeLinksForEmail, EnableSafeLinksForTeams, EnableSafeLinksForOffice, TrackClicks, AllowClickThrough, ScanUrls, EnableForInternalSenders, DeliverMessageAfterScan, DisableUrlRewrite, EnableOrganizationBranding, DoNotRewriteUrls + } + 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 + } $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and ($CurrentState.EnableSafeLinksForEmail -eq $true) -and diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeLinksTemplatePolicy.ps1 index db323964664e..a7d12eafa791 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,7 +31,7 @@ function Invoke-CIPPStandardSafeLinksTemplatePolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SafeLinksTemplatePolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSafeSendersDisable.ps1 index d246ed95746d..74f06f4fa3fa 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,7 +33,7 @@ function Invoke-CIPPStandardSafeSendersDisable { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SafeSendersDisable' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSecureScoreRemediation.ps1 new file mode 100644 index 000000000000..6f3305393b22 --- /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) Enables automated or template-based updates to Microsoft Secure Score recommendations. This is particularly useful for MSPs managing multiple tenants, allowing you to mark controls as "Third-party" (e.g., when using Mimecast, IronScales, or other third-party security tools) or set them to other states in bulk. This ensures Secure Scores accurately reflect each tenant's true security posture without repetitive manual updates. + .NOTES + CAT + Global Standards + TAG + "lowimpact" + EXECUTIVETEXT + Automates the management of Secure Score control profiles by allowing bulk updates across tenants. This ensures accurate representation of security posture when using third-party security tools or when certain controls need to be marked as resolved or ignored, significantly reducing manual administrative overhead for MSPs managing multiple clients. + ADDEDCOMPONENT + {"type":"autoComplete","multiple":true,"creatable":true,"name":"standards.SecureScoreRemediation.Default","label":"Controls to set to Default"} + {"type":"autoComplete","multiple":true,"creatable":true,"name":"standards.SecureScoreRemediation.Ignored","label":"Controls to set to Ignored"} + {"type":"autoComplete","multiple":true,"creatable":true,"name":"standards.SecureScoreRemediation.ThirdParty","label":"Controls to set to Third-Party"} + {"type":"autoComplete","multiple":true,"creatable":true,"name":"standards.SecureScoreRemediation.Reviewed","label":"Controls to set to Reviewed"} + IMPACT + Low Impact + ADDEDDATE + 2025-11-19 + POWERSHELLEQUIVALENT + New-GraphPostRequest to /beta/security/secureScoreControlProfiles/{id} + 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) + + + # 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) { + Write-Host 'Processing Secure Score control updates' + + 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 + }) + } + } + if ($ReportData.count -eq 0) { + $ReportData = $true + } + + Set-CIPPStandardsCompareField -FieldName 'standards.SecureScoreRemediation' -FieldValue $ReportData -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..6cda698e6143 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,7 +32,14 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendFromAlias.ps1 index 4b8e561fb1a1..9aa1e244c5c7 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,14 +31,21 @@ function Invoke-CIPPStandardSendFromAlias { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SendFromAlias' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').SendFromAliasEnabled + 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 -ne $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSendReceiveLimitTenant.ps1 index 2ee64931533e..1ea8f1ff543f 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,7 +32,7 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SendReceiveLimitTenant' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -49,12 +51,25 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { return } + 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 + } - $AllMailBoxPlans = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxPlan' | Select-Object DisplayName, MaxSendSize, MaxReceiveSize, GUID $MaxSendSize = [int64]"$($Settings.SendLimit)MB" $MaxReceiveSize = [int64]"$($Settings.ReceiveLimit)MB" $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) { @@ -73,8 +88,8 @@ function Invoke-CIPPStandardSendReceiveLimitTenant { } 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSharePointMassDeletionAlert.ps1 index b0193ee91b5c..951c6e00b437 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} @@ -40,9 +42,16 @@ function Invoke-CIPPStandardSharePointMassDeletionAlert { $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 } | + Select-Object -Property * + } + 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardShortenMeetings.ps1 index 28d40a8e3881..c0a703565124 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,7 +33,7 @@ function Invoke-CIPPStandardShortenMeetings { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'ShortenMeetings' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -41,7 +43,16 @@ function Invoke-CIPPStandardShortenMeetings { # 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 index 485c1b7fb475..d85d0621f121 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpamFilterPolicy.ps1 @@ -8,7 +8,7 @@ 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 @@ -51,16 +51,26 @@ function Invoke-CIPPStandardSpamFilterPolicy { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SpamFilterPolicy' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $PolicyName = 'CIPP Default Spam Filter Policy' + # Use custom name if provided, otherwise use default for backward compatibility + $PolicyName = if ($Settings.name) { $Settings.name } else { 'CIPP Default Spam Filter Policy' } - $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterPolicy' | Where-Object -Property Name -EQ $PolicyName | Select-Object -Property * + try { + $CurrentState = New-ExoRequest -TenantId $Tenant -cmdlet 'Get-HostedContentFilterPolicy' | + Where-Object -Property Name -EQ $PolicyName | + Select-Object -Property * + } + 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 @@ -115,10 +125,10 @@ 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))) + ((($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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardSpoofWarn.ps1 index 9bc4b571f543..11676a8f2146 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,31 +35,45 @@ function Invoke-CIPPStandardSpoofWarn { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'SpoofWarn' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentInfo = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-ExternalInOutlook') + 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) { + Write-Host 'No AllowList entries provided, skipping AllowList check.' + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = @() } + } else { + $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." + } } + $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $AllowListAddEntries } } - $AllowListAdd = @{'@odata.type' = '#Exchange.GenericHashTable'; Add = $AllowListAddEntries } # Debug output # Write-Host ($CurrentInfo | ConvertTo-Json -Depth 10) @@ -116,7 +132,7 @@ 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) { + if ($AllowListCorrect -eq $true -and $CurrentInfo.Enabled -eq $IsEnabled) { $FieldValue = $true } else { $FieldValue = $CurrentInfo | Select-Object Enabled, AllowList diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 index 6b648dc70556..8d95d769d8f1 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 @@ -40,7 +44,16 @@ function Invoke-CIPPStandardStaleEntraDevices { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices' -tenantid $Tenant | Where-Object { $null -ne $_.approximateLastSignInDateTime } + + try { + $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices' -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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTAP.ps1 index 22343488189b..696ecfec1802 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 @@ -32,7 +34,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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 new file mode 100644 index 000000000000..08c2a813cce6 --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 @@ -0,0 +1,101 @@ +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) { + Write-Host "We're exiting as the correct license is not present for this standard." + 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 + + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsChatProtection' -FieldValue $FieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 index 9fdb94e267f6..eb182da573dc 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 @@ -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 @@ -38,11 +41,19 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { 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) { @@ -50,7 +61,7 @@ Function Invoke-CIPPStandardTeamsEmailIntegration { } else { $cmdParams = @{ Identity = 'Global' - AllowEmailIntoChannel = $Settings.AllowEmailIntoChannel + AllowEmailIntoChannel = $AllowEmailIntoChannel } try { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 index b4c5789fdd2f..1d0aa58d7626 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 @@ -39,7 +41,15 @@ function Invoke-CIPPStandardTeamsEnrollUser { } #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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 index 905d098d093e..fe93267775aa 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"} @@ -38,7 +40,15 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{Identity = 'Global' } | Select-Object * + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 new file mode 100644 index 000000000000..4f7b921b154f --- /dev/null +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 @@ -0,0 +1,93 @@ +function Invoke-CIPPStandardTeamsExternalChatWithAnyone { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsExternalChatWithAnyone + .SYNOPSIS + (Label) Control Teams "Chat with anyone" feature + .DESCRIPTION + (Helptext) Manages whether users can initiate Microsoft Teams chats with any email address, inviting non-Teams users as guests via email. + (DocsDescription) Manages the UseB2BInvitesToAddExternalUsers setting on the global Teams messaging policy. When enabled, users can start chats with any email address and external recipients receive an invitation to join as guests. Disabling the setting prevents external email-based chats from being created, keeping conversations restricted to approved collaborators. + .NOTES + CAT + Teams Standards + TAG + EXECUTIVETEXT + Controls whether employees can start Microsoft Teams chats with anyone using just their email address. Turning this off keeps chat conversations restricted to internal users and pre-approved guests, reducing the risk of data exposure through unexpected external invitations. + ADDEDCOMPONENT + {"type":"switch","name":"standards.TeamsExternalChatWithAnyone.UseB2BInvitesToAddExternalUsers","label":"Allow chatting with anyone via email","defaultValue":false} + IMPACT + Medium Impact + ADDEDDATE + 2025-11-03 + POWERSHELLEQUIVALENT + Set-CsTeamsMessagingPolicy -Identity Global -UseB2BInvitesToAddExternalUsers $false + 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) { + Write-Host "We're exiting as the correct license is not present for this standard." + 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 + + if ($StateIsCorrect) { + $FieldValue = $true + } else { + $FieldValue = $CurrentState + } + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalChatWithAnyone' -FieldValue $FieldValue -Tenant $Tenant + } +} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 index 69c7d08f55c2..9d101bb66f15 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"} @@ -41,8 +44,16 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - Write-Host "TeamsExternalFileSharing: $($Settings | ConvertTo-Json)" - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' | Select-Object AllowGoogleDrive, AllowShareFile, AllowBox, AllowDropBox, AllowEgnyte + + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 index 7fcd2d8020b3..9aba0bc770c6 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"}]} @@ -39,7 +41,15 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{Identity = 'Global' } | Select-Object * + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 index 3c1780fa0dc0..9b9f753e7e16 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 @@ -13,17 +13,26 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { CAT Teams Standards TAG - 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":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"} - {"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"} + "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":"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, People in my org remains enforced.","options":[{"label":"Everyone","value":"Everyone"},{"label":"People in my org","value":"EveryoneInCompanyExcludingGuests"},{"label":"People in or federated orgs","value":"EveryoneInSameAndFederatedCompany"},{"label":"People invited","value":"InvitedUsers"},{"label":"Only me","value":"OrganizerOnly"}]} + {"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 Low Impact ADDEDDATE 2024-11-12 - POWERSHELLEQUIVALENT - Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers EveryoneInCompanyExcludingGuests -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false + POWERSHELLEQUIVALENT + Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting $false -AllowAnonymousUsersToStartMeeting $false -AutoAdmittedUsers $AutoAdmittedUsers -AllowPSTNUsersToBypassLobby $false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode $DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl $false RECOMMENDEDBY "CIS" UPDATECOMMENTBLOCK @@ -34,20 +43,29 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsGlobalMeetingPolicy' param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1','Teams_Room_Standard') + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl + + 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 @@ -62,7 +80,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { Identity = 'Global' AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting AllowAnonymousUsersToStartMeeting = $false - AutoAdmittedUsers = 'EveryoneInCompanyExcludingGuests' + AutoAdmittedUsers = $AutoAdmittedUsers AllowPSTNUsersToBypassLobby = $false MeetingChatEnabledType = $MeetingChatEnabledType DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 index c4d50f9b9fe4..bef968173610 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 @@ -36,11 +38,19 @@ function Invoke-CIPPStandardTeamsGuestAccess { return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | Select-Object AllowGuestUser + 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 + } - if ($null -eq $Settings.AllowGuestUser) { $Settings.AllowGuestUser = $false } + $AllowGuestUser = $Settings.AllowGuestUser ?? $false - $StateIsCorrect = ($CurrentState.AllowGuestUser -eq $Settings.AllowGuestUser) + $StateIsCorrect = ($CurrentState.AllowGuestUser -eq $AllowGuestUser) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -48,7 +58,7 @@ function Invoke-CIPPStandardTeamsGuestAccess { } else { $cmdParams = @{ Identity = 'Global' - AllowGuestUser = $Settings.AllowGuestUser + AllowGuestUser = $AllowGuestUser } try { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 index 28b88c3bcff5..662046683c77 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 @@ -44,7 +46,15 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 index c051ad79e9ba..ed238109defc 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 @@ -5,30 +5,30 @@ 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' @@ -39,7 +39,17 @@ function Invoke-CIPPStandardTeamsMeetingVerification { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | Select-Object CaptchaVerificationForMeetingJoin + + 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) diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMeetingsByDefault.ps1 index 9cb67826b0a0..b595ba79dabf 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,7 +31,7 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsMeetingsByDefault' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -40,7 +42,15 @@ function Invoke-CIPPStandardTeamsMeetingsByDefault { # 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 index c2775c1542c3..8b6a11935043 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 @@ -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} @@ -44,7 +46,15 @@ Function Invoke-CIPPStandardTeamsMessagingPolicy { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{Identity = 'Global' } + + 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 } diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTenantDefaultTimezone.ps1 index 64c062713b66..e930f7ef6fa7 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,7 +31,7 @@ function Invoke-CIPPStandardTenantDefaultTimezone { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TenantDefaultTimezone' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'TenantDefaultTimezone' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TenantDefaultTimezone' if ($TestResult -eq $false) { @@ -37,7 +39,15 @@ function Invoke-CIPPStandardTenantDefaultTimezone { return $true } #we're done. - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + 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 + } + $ExpectedTimezone = $Settings.Timezone.value $StateIsCorrect = $CurrentState.tenantDefaultTimezone -eq $ExpectedTimezone diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTransportRuleTemplate.ps1 index 3f85ccbc01d5..52bf5c0dcba0 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,7 +28,7 @@ function Invoke-CIPPStandardTransportRuleTemplate { https://docs.cipp.app/user-documentation/tenant/standards/list-standards #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TransportRuleTemplate' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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 ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTwoClickEmailProtection.ps1 index b43fa7fdb673..6c5edef137fe 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,7 @@ function Invoke-CIPPStandardTwoClickEmailProtection { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'TwoClickEmailProtection' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUndoOauth.ps1 index fd43f8ced664..96d2bed4cf05 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 @@ -30,7 +32,15 @@ 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 index e2b65e9c9bba..f203d1a427d1 100644 --- a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 +++ b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserPreferredLanguage.ps1 @@ -31,7 +31,15 @@ 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 { + $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 + } + 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) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardUserSubmissions.ps1 index 3c5cf3e8a606..37dab2d39c17 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,7 @@ function Invoke-CIPPStandardUserSubmissions { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'UserSubmissions' -TenantFilter $Tenant -RequiredCapabilities @('EXCHANGE_S_STANDARD', 'EXCHANGE_S_ENTERPRISE', 'EXCHANGE_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -57,8 +59,14 @@ 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))) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 index 500c0af7ec87..748567ac2da1 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,16 @@ 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') - 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 { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 index ce374e86fd14..a8a7037a8b84 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,15 @@ 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 + } - 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 { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardcalDefault.ps1 index 2c490636c5d6..5926d094622f 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,7 +34,7 @@ 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_LITE') #No Foundation because that does not allow powershell access + $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) { Write-Host "We're exiting as the correct license is not present for this standard." @@ -73,48 +75,48 @@ function Invoke-CIPPStandardcalDefault { $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 + 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 + } } + } catch { + $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 } - } catch { - $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 + $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" } - Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force - Write-Host "Processed $processedMailboxes mailboxes" } - } - $LastRun = @{ - RowKey = 'calDefaults' - PartitionKey = $Tenant - totalMailboxes = $TotalMailboxes - processedMailboxes = $processedMailboxes - currentSuccessCount = $SuccessCounter - } - Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRun -Force + $LastRun = @{ + RowKey = 'calDefaults' + PartitionKey = $Tenant + totalMailboxes = $TotalMailboxes + processedMailboxes = $processedMailboxes + currentSuccessCount = $SuccessCounter + } + 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 - } - if ($Settings.report -eq $true) { - #This script always returns true, as it only disables the Safe Senders list - Set-CIPPStandardsCompareField -FieldName 'standards.SafeSendersDisable' -FieldValue $true -Tenant $Tenant + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully set default calendar permissions for $SuccessCounter out of $TotalMailboxes mailboxes." -sev Info + } + if ($Settings.report -eq $true) { + #This script always returns true, as it only disables the Safe Senders list + Set-CIPPStandardsCompareField -FieldName 'standards.SafeSendersDisable' -FieldValue $true -Tenant $Tenant + } } -} diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandarddisableMacSync.ps1 index 828e956e49ff..d5a024756ccc 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,7 +30,7 @@ function Invoke-CIPPStandarddisableMacSync { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'disableMacSync' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'disableMacSync' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'disableMacSync' if ($TestResult -eq $false) { @@ -36,7 +38,14 @@ function Invoke-CIPPStandarddisableMacSync { 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 DisableMacSync state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } If ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneBrandingProfile.ps1 index 4d4712823972..ff2d5495278a 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"} @@ -46,7 +48,14 @@ function Invoke-CIPPStandardintuneBrandingProfile { return $true } #we're done. - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/intuneBrandingProfiles/c3a59481-1bf2-46ce-94b3-66eec07a8d60' -tenantid $Tenant -AsApp $true + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceReg.ps1 index 5dc65b27bc64..25a4f7168828 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 @@ -37,7 +40,14 @@ function Invoke-CIPPStandardintuneDeviceReg { return $true } #we're done. - $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 intuneDeviceReg state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } $StateIsCorrect = if ($PreviousSetting.userDeviceQuota -eq $Settings.max) { $true } else { $false } If ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneDeviceRetirementDays.ps1 index 895eaf943222..41faf6faf746 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 @@ -38,7 +40,15 @@ function Invoke-CIPPStandardintuneDeviceRetirementDays { return $true } #we're done. - $CurrentInfo = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/managedDeviceCleanupRules' -tenantid $Tenant) + 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 + } + $StateIsCorrect = if ($CurrentInfo.DeviceInactivityBeforeRetirementInDays -eq $Settings.days) { $true } else { $false } if ($Settings.remediate -eq $true) { diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardintuneRequireMFA.ps1 index f70b182365bc..2ed285caec7f 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,29 +29,30 @@ function Invoke-CIPPStandardintuneRequireMFA { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'intuneRequireMFA' -TenantFilter $Tenant -RequiredCapabilities @('INTUNE_A', 'MDM_Services', 'EMS', 'SCCM', 'MICROSOFTINTUNEPLAN1') ##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'intuneRequireMFA' - if ($TestResult -eq $false) { - Write-Host "We're exiting as the correct license is not present for this standard." - return $true - } #we're done. - - $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 } } } @@ -57,16 +60,16 @@ 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 + Set-CIPPStandardsCompareField -FieldName 'standards.intuneRequireMFA' -FieldValue $RequireMFA -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..6f1886a9a3fc 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 @@ -31,7 +33,14 @@ 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 4a54c8ba0270..69e82b3fc8a9 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,14 +36,21 @@ function Invoke-CIPPStandardsharingCapability { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'sharingCapability' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingCapability' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardsharingDomainRestriction.ps1 index e1b5a62f4c62..16602aaac0a6 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,14 +35,21 @@ function Invoke-CIPPStandardsharingDomainRestriction { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'sharingDomainRestriction' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') + $TestResult = Test-CIPPStandardLicense -StandardName 'sharingDomainRestriction' -TenantFilter $Tenant -RequiredCapabilities @('SHAREPOINTWAC', 'SHAREPOINTSTANDARD', 'SHAREPOINTENTERPRISE', 'SHAREPOINTENTERPRISE_EDU','ONEDRIVE_BASIC', 'ONEDRIVE_ENTERPRISE') if ($TestResult -eq $false) { Write-Host "We're exiting as the correct license is not present for this standard." return $true } #we're done. - $CurrentState = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/admin/sharepoint/settings' -tenantid $Tenant -AsApp $true + 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 diff --git a/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 b/Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardunmanagedSync.ps1 index ed8241ce919e..d333a06c1adc 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 @@ -38,7 +43,15 @@ function Invoke-CIPPStandardunmanagedSync { return $true } #we're done. - $CurrentState = Get-CIPPSPOTenant -TenantFilter $Tenant | Select-Object _ObjectIdentity_, TenantFilter, ConditionalAccessPolicy + 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 diff --git a/Modules/CIPPCore/Public/Functions/Expand-CIPPTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 similarity index 100% rename from Modules/CIPPCore/Public/Functions/Expand-CIPPTenantGroups.ps1 rename to Modules/CIPPCore/Public/TenantGroups/Expand-CIPPTenantGroups.ps1 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/Functions/Get-TenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 similarity index 72% rename from Modules/CIPPCore/Public/Functions/Get-TenantGroups.ps1 rename to Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 index 761e1462d9cb..069a48f6aa63 100644 --- a/Modules/CIPPCore/Public/Functions/Get-TenantGroups.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Get-TenantGroups.ps1 @@ -11,13 +11,21 @@ function Get-TenantGroups { #> [CmdletBinding()] param( - $GroupId, - $TenantFilter + [string]$GroupId, + [string]$TenantFilter, + [switch]$Dynamic ) $GroupTable = Get-CippTable -tablename 'TenantGroups' $MembersTable = Get-CippTable -tablename 'TenantGroupMembers' + # Early exit if specific GroupId requested but not allowed + if ($GroupId -and $script:AllowedGroups) { + if ($script:AllowedGroups -notcontains $GroupId) { + return @() + } + } + if ($TenantFilter -and $TenantFilter -ne 'allTenants') { $TenantParams = @{ TenantFilter = $TenantFilter @@ -30,12 +38,23 @@ function Get-TenantGroups { } $Tenants = Get-Tenants @TenantParams + if ($Dynamic.IsPresent) { + $GroupTable.Filter = "PartitionKey eq 'TenantGroup' and GroupType eq 'dynamic'" + } else { + $GroupTable.Filter = "PartitionKey eq 'TenantGroup'" + } + if ($GroupId) { $Groups = Get-CIPPAzDataTableEntity @GroupTable -Filter "RowKey eq '$GroupId'" $AllMembers = Get-CIPPAzDataTableEntity @MembersTable -Filter "GroupId eq '$GroupId'" } else { $Groups = Get-CIPPAzDataTableEntity @GroupTable $AllMembers = Get-CIPPAzDataTableEntity @MembersTable + + # Filter to allowed groups if restrictions apply + if ($script:AllowedGroups) { + $Groups = $Groups | Where-Object { $script:AllowedGroups -contains $_.RowKey } + } } if (!$Groups) { @@ -77,10 +96,13 @@ function Get-TenantGroups { $SortedMembers = @() } $Results.Add([PSCustomObject]@{ - Id = $Group.RowKey - Name = $Group.Name - Description = $Group.Description - Members = @($SortedMembers) + 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) }) } return $Results | Sort-Object Name diff --git a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 new file mode 100644 index 000000000000..8ea1a508d4c6 --- /dev/null +++ b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 @@ -0,0 +1,261 @@ +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 $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 + $ReferencedGroupId = $Value.value + if ($Operator -eq 'in') { + "`$_.customerId -in `$script:TenantGroupMembersCache['$ReferencedGroupId']" + } else { + "`$_.customerId -notin `$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-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/Tools/Import-CommunityTemplate.ps1 b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 index 6b5ee473988c..627544703640 100644 --- a/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 +++ b/Modules/CIPPCore/Public/Tools/Import-CommunityTemplate.ps1 @@ -8,6 +8,7 @@ function Import-CommunityTemplate { $Template, $SHA, $MigrationTable, + $LocationData, [switch]$Force ) @@ -41,6 +42,12 @@ function Import-CommunityTemplate { $excludedTenants = $ExistingJSON.excludedTenants $NewJSON.tenantFilter = $tenantFilter $NewJSON.excludedTenants = $excludedTenants + + # Extract package tag from existing template + $PackageTag = $Existing.Package + if ($PackageTag) { + $Template | Add-Member -MemberType NoteProperty -Name Package -Value $PackageTag -Force + } } } @@ -98,6 +105,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,6 +126,8 @@ function Import-CommunityTemplate { $RawJson = $RawJson.Replace($_.ID, $($_.DisplayName)) } } + + $entity = @{ JSON = "$RawJson" PartitionKey = 'CATemplate' 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-CIPPWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 index b7361fe4b2ea..0d7f1aa20e1d 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 @@ -79,7 +79,7 @@ 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 @@ -102,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..5596a3a0acfa 100644 --- a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 @@ -7,287 +7,443 @@ 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 } - $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) + 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 + } } - 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) + 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 - $HasLocationData = $false - if (![string]::IsNullOrEmpty($Data.clientip) -and $Data.clientip -notmatch '[X]+') { - # Ignore IP addresses that have been redacted + $Results = [PSCustomObject]@{ + TotalLogs = 0 + MatchedLogs = 0 + MatchedRules = @() + DataToProcess = @() + } - $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 '[\[\]]', '' + # Get the CacheWebhooks table for removing processed rows + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' - # 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" + $ExtendedPropertiesIgnoreList = @( + 'SAS:EndAuth' + 'SAS:ProcessAuth' + 'deviceAuth:ReprocessTls' + 'Consent:Set' + ) + + $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 + } + } + + # Collect bulk data for users/groups/devices/applications + $Requests = @( + @{ + id = 'users' + url = '/users?$select=id,displayName,userPrincipalName,accountEnabled&$top=999' + method = 'GET' + } + @{ + id = 'groups' + url = '/groups?$select=id,displayName,mailEnabled,securityEnabled&$top=999' + method = 'GET' + } + @{ + 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 + + # partner users + $PartnerUsers = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$select=id,displayName,userPrincipalName,accountEnabled&`$top=999" -AsApp $true -NoAuthCheck $true + + $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 + + Write-Warning '## Audit Log Configuration ##' + Write-Information ($Configuration | ConvertTo-Json -Depth 10) + + 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 $_ + } + + $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)" + $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 { + # 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 - try { - $null = Add-CIPPAzDataTableEntity @LocationTable -Entity $LocationInfo -Force - } catch { - #write-warning "Failed to add location info for $($Data.clientip) to cache: $($_.Exception.Message)" + $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" + + 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/CippEntrypoints/CippEntrypoints.psm1 b/Modules/CippEntrypoints/CippEntrypoints.psm1 index 524a3f6fd0ad..963614aa0aad 100644 --- a/Modules/CippEntrypoints/CippEntrypoints.psm1 +++ b/Modules/CippEntrypoints/CippEntrypoints.psm1 @@ -39,46 +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 + } + + # 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-Information "Access denied for $FunctionName : $($_.Exception.Message)" + Write-Warning "Exception occurred during batch processing: $($_.Exception.Message)" Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::Forbidden - Body = $_.Exception.Message + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ + error = @{ + code = 'InternalServerError' + message = "Batch processing failed: $($_.Exception.Message)" + } + } }) - return } - - try { - Write-Information "Access: $Access" - if ($Access) { - & $FunctionName @HttpTrigger + return + } else { + $Response = New-CippCoreRequest -Request $Request -TriggerMetadata $TriggerMetadata + if ($Response.StatusCode) { + if ($Response.Body -is [PSCustomObject]) { + $Response.Body = $Response.Body | ConvertTo-Json -Depth 20 -Compress } - } catch { - Write-Warning "Exception occurred on HTTP trigger ($FunctionName): $($_.Exception.Message)" + Push-OutputBinding -Name Response -Value ([HttpResponseContext]$Response) + } else { Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError - Body = $_.Exception.Message + Body = @{ + error = @{ + code = 'InternalServerError' + message = 'An error occurred processing the request' + } + } }) } - } else { - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::NotFound - Body = 'Endpoint not found' - }) } return } @@ -179,6 +255,7 @@ function Receive-CippActivityTrigger { Write-Warning "Hey Boo, the activity function is running. Here's some info: $($Item | ConvertTo-Json -Depth 10 -Compress)" try { $Start = Get-Date + $Output = $null Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName if ($Item.QueueId) { @@ -202,7 +279,7 @@ function Receive-CippActivityTrigger { $FunctionName = 'Push-{0}' -f $Item.FunctionName try { Write-Warning "Activity starting Function: $FunctionName." - Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } + $Output = Invoke-Command -ScriptBlock { & $FunctionName -Item $Item } Write-Warning "Activity completed Function: $FunctionName." if ($TaskStatus) { $QueueTask.Status = 'Completed' @@ -244,7 +321,13 @@ function Receive-CippActivityTrigger { $null = Set-CippQueueTask @QueueTask } } - return $true + + # Return the captured output if it exists and is not null, otherwise return $true + if ($null -ne $Output -and $Output -ne '') { + return $Output + } else { + return $true + } } function Receive-CIPPTimerTrigger { @@ -291,7 +374,7 @@ function Receive-CIPPTimerTrigger { $Results = 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/ConversionTable.csv b/Modules/CippExtensions/ConversionTable.csv index 2658524b8cf2..27ee53d2fe35 100644 --- a/Modules/CippExtensions/ConversionTable.csv +++ b/Modules/CippExtensions/ConversionTable.csv @@ -65,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 @@ -240,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 @@ -2246,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 @@ -3680,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste 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 @@ -4331,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 @@ -5127,6 +5257,11 @@ Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN36 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 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 2658524b8cf2..27ee53d2fe35 100644 --- a/Modules/CippExtensions/Public/ConversionTable.csv +++ b/Modules/CippExtensions/Public/ConversionTable.csv @@ -65,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 @@ -240,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 @@ -2246,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 @@ -3680,6 +3771,7 @@ Microsoft Entra Suite Add-on for Microsoft Entra ID P2,Microsoft_Entra_Suite_Ste 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 @@ -4331,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 @@ -5127,6 +5257,11 @@ Power Apps Premium,POWERAPPS_PER_USER,b30411f5-fea1-4a59-9ad9-3db7c7ead579,DYN36 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 diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 index 856a9a4be1ef..b44dadbb2234 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 @@ -16,7 +16,7 @@ function Get-ExtensionAPIKey { 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 { diff --git a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 index 2ddacf8392f4..bbb6c22e56c1 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,6 @@ 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') $MappedTenants = [System.Collections.Generic.List[string]]::new() foreach ($Extension in $Extensions) { $ExtensionConfig = $Config.$Extension @@ -69,7 +70,7 @@ function Register-CIPPExtensionScheduledTasks { $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) { + if (!$ExistingTask) { $unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds $Task = [pscustomobject]@{ Name = "Extension Sync - $SyncType" @@ -96,7 +97,7 @@ function Register-CIPPExtensionScheduledTasks { $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 +109,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..eb4aca60cc4b 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 diff --git a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 index d08a46c09027..3ddeb244de00 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Sync-CippExtensionData.ps1 @@ -228,6 +228,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 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/HIBP/Get-HIBPAuth.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 index c759e08ded55..48c566363a67 100644 --- a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 @@ -5,7 +5,7 @@ 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 { diff --git a/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 index 971111aa4003..661e4bddb48c 100644 --- a/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 +++ b/Modules/CippExtensions/Public/HIBP/New-BreachTenantSearch.ps1 @@ -6,24 +6,30 @@ 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 } } @@ -32,7 +38,7 @@ function New-BreachTenantSearch { if ($usersResults) { try { $null = Add-CIPPAzDataTableEntity @Table -Entity $usersResults -Force - return $LatestBreach.Result + 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..867c6fd8082e 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 @@ -81,7 +83,6 @@ function Invoke-HuduExtensionSync { Write-Host "Configuration: $($Configuration | ConvertTo-Json)" - try { if (![string]::IsNullOrEmpty($DeviceLayoutId)) { $null = Add-HuduAssetLayoutField -AssetLayoutId $DeviceLayoutId @@ -168,7 +169,7 @@ function Invoke-HuduExtensionSync { # Get members from cache $Members = ($ExtensionCache."AllRoles_$($Role.id)") [PSCustomObject]@{ - ID = $Result.id + ID = $Role.id DisplayName = $Role.displayName Description = $Role.description Members = $Members @@ -253,22 +254,22 @@ function Invoke-HuduExtensionSync { $DeviceCompliancePolicies = $ExtensionCache.DeviceCompliancePolicies $DeviceComplianceDetails = foreach ($Policy in $DeviceCompliancePolicies) { - $DeviceStatuses = $ExtensionCache."DeviceCompliancePolicy_$($Policy.id)" + $DeviceStatuses = $ExtensionCache."DeviceCompliancePolicies_$($Policy.id)" [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 = $ExtensionCache."Groups_$($Group.id)" [pscustomobject]@{ ID = $Group.id DisplayName = $Group.displayName - Members = $Members + Members = @($Members) } } @@ -313,10 +314,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 +437,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 +460,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 +489,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 +573,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 +767,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 +776,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 +893,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 +1068,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-NinjaOneTenantSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 index 155a400aea6a..eb22d29f08ee 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 @@ -296,7 +308,7 @@ function Invoke-NinjaOneTenantSync { $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 @@ -780,7 +792,6 @@ function Invoke-NinjaOneTenantSync { } } - #$PermsRequest = '' $StatsRequest = '' $MailboxDetailedRequest = '' @@ -788,7 +799,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 +812,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 +820,7 @@ function Invoke-NinjaOneTenantSync { $UserMailSettings = [pscustomobject]@{ ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward ForwardingAddress = $MailboxDetailedRequest.ForwardingAddress + ' ' + $MailboxDetailedRequest.ForwardingSmtpAddress - LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled + LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled EWSEnabled = $CASRequest.EwsEnabled MailboxMAPIEnabled = $CASRequest.MAPIEnabled @@ -818,10 +829,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 } @@ -872,9 +884,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 +920,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 +937,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 +973,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)" - 'Litigation Hold' = "$($UserMailSettings.LitigationHold)" + 'Litigation Hold' = "$($UserMailSettings.LitigationHold)" 'Hidden From Address Lists' = "$($UserMailSettings.HiddenFromAddressLists)" 'EWS Enabled' = "$($UserMailSettings.EWSEnabled)" 'MAPI Enabled' = "$($UserMailSettings.MailboxMAPIEnabled)" @@ -1565,6 +1588,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' } ) @@ -1799,7 +1832,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)" @@ -1822,7 +1855,16 @@ function Invoke-NinjaOneTenantSync { $StandardTemplates = Get-CIPPAzDataTableEntity @Templates | Where-Object { $_.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 +1872,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/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.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.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/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.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.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.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.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.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.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/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/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.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/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.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/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.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.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/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.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.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.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.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.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.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/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/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/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 similarity index 60% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 index bc10001b262c..9c7bb88202e0 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 @@ -1,7 +1,7 @@ @{ GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' - ModuleVersion = '8.0228.3' + ModuleVersion = '8.0925.3' CompatiblePSEditions = 'Core', 'Desktop' Author="Microsoft Corporation" CompanyName="Microsoft Corporation" @@ -31,40 +31,40 @@ # SIG # Begin signature block # MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCASup5JvGHAt2Af -# foI4UJaxkRgQUI8k5rc9HezKii+ZfaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBktHhsDTXfF+ev +# CEOifc2ZOGc/dSGpB/zVLNO52F9TmKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 @@ -107,64 +107,64 @@ # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOMw -# YPK+2WA12f0aliV6qEAjT68O3VRgFh7ZBow8Jco2MEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPut +# cUIVxIBB0ImJ9vNQxSoMsyFmk7rGJjFLPFygEQ4fMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAHF42my9dapEYUiYdLV43yq+KyVo7DHFhoRZw -# 4Enkg/w26h2GeK+jQAo40vucCw+YMPHItAKCiO0WowvmnopoxH3JXbYKHMR1AkXL -# MJEUxCB5SAJphdT+Ah95IBM2Z2T1oh6+glDC+NuN18fPyapoIZKTwonxYdfAwOCl -# 1UXyCTQXW9gKBZF/EePyW71A/T6NXyCMf1oVvEZf4H0ATpXDKOLsqeGaOsYBIR3V -# KUdb/rslqXXOO14NN9nSJatMnMLetDaTY99VGMlkzzI1oVK2f1LCO69oXeSkji1k -# GYc5JWEEA/fRZo4HUaAFDONetwRgwRoocfPiBC55TM90KsUu56GCF60wghepBgor +# b20wDQYJKoZIhvcNAQEBBQAEggEAsxdF6ENPMlJBY2pbMZwVrEjJbJIGoUXtTffs +# m5VHACdQcbJJtDlfJ8MZ53d5semg0/AHj917b4LWkILIhdFYVsZ3RuwM1aIFEzBw +# xrAM77PTv+cFXmVrYlif65+8R3tflJk2wyayruH4+qtkjjkMcW6OHQaEDWLpcwUW +# 6tk6ltgpusJebP2I9xWL5gG4oIn4XLS+FYDsizxXOTcGdaByLhMrdJxCSA003066 +# VEMapPs6sosMDnFWi37qHCbTdXYweq52x8zvOQINOclOxOucJhxoB/1BWI8ADhZ2 +# agohjS9bFJtBG6oic2iY8l+p8akRPQwHVQTrsGgmku1OFw3nSKGCF60wghepBgor # BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCcDzNk4DJKjigTXszw+WhIGhdpcFJ5LKmx -# JlSgg0E3pgIGZ7YhYKLIGBMyMDI1MDMxMzA4NDcyMy43MTlaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCJwUibtIbzfPo/UBmxGxTeOcZrF+LqIi5L +# oeQGKL82VgIGaKOxdLnYGBMyMDI1MTAwMTA4MzMwMy4wNThaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/xI4 -# fPfBZdahAAEAAAH/MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo +# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOVoXDTI1MTAyMjE4MzExOVowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjRDMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # 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 +# 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 -# 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 +# 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 @@ -208,41 +208,41 @@ # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqROMbMS8JcUl -# cnPkwRLFRPXFspmggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ +# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOt89lMwIhgPMjAyNTAzMTMwNjE0NDNaGA8yMDI1 -# MDMxNDA2MTQ0M1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA63z2UwIBADAHAgEA -# AgITkjAHAgEAAgIS1DAKAgUA635H0wIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 +# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA +# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor # BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQBjXiBIfmb8mso3QC0jpfw1XLsgDe1J2GrBPz2l6zKhGwDlIiMTELS4L2tC -# NAr7hmJmddANUugQWbX1f5GzHi3VypC6ksc+penHzh49bE1w/FBqpNdId1FiKLRm -# QR6agt/A2B2FobCBQkrYuzArAXisQbk+wSzxolFAIX+FOrSM2clzrHsfy6c/PghN -# Fv1T8QFbi7JXOKUschlpoc5XstbdzqK7389WZoPDManxRTGXtk0seugmpcdQPh2S -# atzhbhPKKNEKOE5nXRR+XAiysXyR2n4cPmnSK3kOsTu0PwTxrOgxM6EZSqL/B5aE -# kYILIyzB31JuDSD6uOP+QWBsP2e5MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC +# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU +# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O +# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 +# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H +# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ +# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJYIZIAWUD +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD # BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgXlkMBiYOcASEns9L6eonyX+akrwNG9ZyM0/WvHdOQ2cwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCDkMu++yQJ3aaycIuMT6vA7JNuMaVOI3qDjSEV8 -# upyn/TCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# CQQxIgQgFlZ2O/GRfAXYA5v3qpRwM4QCr0GSQZI0ycmuzAREOxgwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs +# tyh0eTCBmDCBgKR+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 +# /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/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 similarity index 60% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 index 3890eca2d6f5..cf8c5fc5721f 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 @@ -49,42 +49,42 @@ # endregion # SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 -# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 @@ -124,67 +124,67 @@ # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # 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 +# b20wDQYJKoZIhvcNAQEBBQAEggEAjLRSPEgl+jV1neYu3nTNYAt12NPx9CSBS0in +# W3lTJ3li3JivLsglZyHAkpOry8UCfN85dJPmCcuA1ZaTOCb+tWpbGX391ZQki5mu +# m4278BFouVx3+kiDDClF4PoDwkUT80GSCUnkbLw4DeTuY4GdiLb+0sTv9RMcKPAn +# gdirrxrAsuUOqgJHrIxoQMQQd4xkF3Zwjdx78hYDd6aX0d1aPjlRTdEd/Op4GXN5 +# f0ogHVMc6dBNMAH1Mf7U7pDK4OfAB59j9OWRo96m9CwFfJBxVqtEr4VDq/2xQgPD +# 9eMyf6nIc/MQ9p6gQDaJbVyUbotuRcofvthfqaw+yx7cqLav+6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCA01ZNgWX+yjt4VUad3H9dmP0++hbzbiKlK -# /x157EROwgIGZ7Yy6IKrGBMyMDI1MDMxMzA4NDcyNC43MzJaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBtQ25Wdua/9MRhw3iNu1aZ/OELMsRHLdxZ +# y8rLeBbzfAIGaKOvjL6AGBMyMDI1MTAwMTA4MzMwMi4zMDNaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAACAAvX -# qn8bKhdWAAEAAAIAMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n +# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEyMVoXDTI1MTAyMjE4MzEyMVowgdMxCzAJ +# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjUyMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt +# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # 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 +# 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 -# 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 +# 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 @@ -224,45 +224,45 @@ # 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk # txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg # DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1MjFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAjJOfLZb3ivip -# L3sSLlWFbLrWjmSggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz +# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK +# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # 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 +# 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml index 88e26537fbe9..08e10ad35582 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml @@ -2,9 +2,9 @@ - OnlineVoicemailValidationConfigurationView + TeamsAppPolicyConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration @@ -16,12 +16,12 @@ Identity - - AudioFileValidationEnabled + + AppCatalogUri - - AudioFileValidationUri + + ResourceUri @@ -35,40 +35,40 @@ - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -111,64 +111,64 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -212,40 +212,40 @@ - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + 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/6.9.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 similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml index 6b4be06706e4..ef3228e9efb1 100644 --- a/Modules/MicrosoftTeams/6.9.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 @@ -29,42 +29,42 @@ - + - - + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -104,67 +104,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -204,45 +204,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml similarity index 55% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml index 68ca9c547070..600c43210093 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml @@ -2,9 +2,9 @@ - TeamsAIPolicyView + TeamsMultiTenantOrganizationConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration @@ -16,16 +16,8 @@ Identity - - Description - - - - EnrollFace - - - - EnrollVoice + + CopilotFromHomeTenant @@ -37,42 +29,42 @@ - + - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -112,67 +104,67 @@ - + - + - - + + - - - - - - - + + + + + + + - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -212,44 +204,44 @@ - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml similarity index 74% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml index 09e691089db7..0b8baea0d378 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml @@ -2,9 +2,9 @@ - OnlineDialinConferencingPolicyView + OnlineVoicemailValidationConfigurationView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.OnlineDialinConferencingPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration @@ -16,12 +16,12 @@ Identity - - AllowService + + AudioFileValidationEnabled - - Description + + AudioFileValidationUri @@ -35,40 +35,40 @@ - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -111,21 +111,21 @@ - - - - + + + + - - - - - - + + + + + + - - + + @@ -217,36 +217,36 @@ - - - + + + - - - - - - + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 similarity index 68% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 index 67275d82b924..47d429e8c11d 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 @@ -7,7 +7,7 @@ RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' # Version number of this module. -ModuleVersion = '14.1.41' +ModuleVersion = '21.4.4' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -25,7 +25,7 @@ CompanyName = 'Microsoft Corporation' Copyright = 'Microsoft Corporation. All rights reserved.' # Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets module for Policy Administration' +Description = 'Microsoft Teams OCE cmdlets module for Policy Administration' # Minimum version of the Windows PowerShell engine required by this module PowerShellVersion = '5.1' @@ -76,6 +76,7 @@ CmdletsToExport = @( 'Set-CsTeamsAppSetupPolicy', 'Grant-CsTeamsAppSetupPolicy', + 'New-CsTeamsAppPermissionPolicy', 'Get-CsTeamsAppPermissionPolicy', 'Remove-CsTeamsAppPermissionPolicy', @@ -83,9 +84,9 @@ CmdletsToExport = @( 'Grant-CsTeamsAppPermissionPolicy', 'New-CsTeamsMessagingPolicy', + 'Set-CsTeamsMessagingPolicy', 'Get-CsTeamsMessagingPolicy', 'Remove-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', 'New-CsTeamsChannelsPolicy', 'Get-CsTeamsChannelsPolicy', @@ -100,19 +101,19 @@ CmdletsToExport = @( 'Get-CsTeamsUpgradeConfiguration', 'Set-CsTeamsUpgradeConfiguration', - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - 'New-CsTeamsMeetingPolicy', 'Get-CsTeamsMeetingPolicy', 'Remove-CsTeamsMeetingPolicy', 'Set-CsTeamsMeetingPolicy', - 'New-CsOnlineVoicemailPolicy', 'Get-CsOnlineVoicemailPolicy', + 'New-CsOnlineVoicemailPolicy', 'Remove-CsOnlineVoicemailPolicy', 'Set-CsOnlineVoicemailPolicy', + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', + 'New-CsTeamsFeedbackPolicy', 'Get-CsTeamsFeedbackPolicy', 'Remove-CsTeamsFeedbackPolicy', @@ -139,6 +140,8 @@ CmdletsToExport = @( 'Remove-CsTeamsCallHoldPolicy', 'Set-CsTeamsCallHoldPolicy', + 'Get-CsOnlineVoicemailValidationConfiguration', + 'Set-CsOnlineVoicemailValidationConfiguration', 'Get-CsTeamsMessagingConfiguration', 'Set-CsTeamsMessagingConfiguration', @@ -147,10 +150,21 @@ CmdletsToExport = @( 'Remove-CsTeamsVoiceApplicationsPolicy', 'Set-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsAudioConferencingCustomPromptsConfiguration', - 'Set-CsTeamsAudioConferencingCustomPromptsConfiguration', - 'New-CsCustomPrompt', - 'New-CsCustomPromptPackage', + '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', @@ -164,6 +178,12 @@ CmdletsToExport = @( 'Set-CsTeamsCallingPolicy', 'Grant-CsTeamsCallingPolicy', + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + 'New-CsExternalAccessPolicy', 'Get-CsExternalAccessPolicy', 'Remove-CsExternalAccessPolicy', @@ -173,16 +193,19 @@ CmdletsToExport = @( 'Get-CsTeamsMultiTenantOrganizationConfiguration', 'Set-CsTeamsMultiTenantOrganizationConfiguration', - 'New-CsTeamsHiddenMeetingTemplate', + 'New-CsLocationPolicy', + 'Get-CsLocationPolicy', + 'Remove-CsLocationPolicy', + 'Set-CsLocationPolicy', - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', + 'New-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Get-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Set-CsTeamsCarrierEmergencyCallRoutingPolicy', + 'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', + 'Get-CsTenantConfiguration', + 'Set-CsTenantConfiguration', 'Get-CsTenantNetworkSite', @@ -199,6 +222,12 @@ CmdletsToExport = @( 'Remove-CsTeamsTemplatePermissionPolicy', 'Set-CsTeamsTemplatePermissionPolicy', + 'Get-CsTeamsAppPolicyConfiguration', + 'Set-CsTeamsAppPolicyConfiguration', + + 'Get-CsTeamsSipDevicesConfiguration', + 'Set-CsTeamsSipDevicesConfiguration', + 'New-CsTeamsVirtualAppointmentsPolicy', 'Get-CsTeamsVirtualAppointmentsPolicy', 'Remove-CsTeamsVirtualAppointmentsPolicy', @@ -234,8 +263,8 @@ CmdletsToExport = @( 'New-CsTeamsCustomBannerText', 'Get-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', 'Set-CsTeamsCustomBannerText', + 'Remove-CsTeamsCustomBannerText', 'Get-CsTeamsEducationConfiguration', 'Set-CsTeamsEducationConfiguration', @@ -272,11 +301,8 @@ CmdletsToExport = @( 'Get-CsConversationRole', 'Set-CsConversationRole', - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', + 'Get-CsConversationRolesSetting', + 'Set-CsConversationRolesSetting', 'Get-CsTeamsAIPolicy', 'Set-CsTeamsAIPolicy', @@ -284,6 +310,15 @@ CmdletsToExport = @( 'Remove-CsTeamsAIPolicy', 'Grant-CsTeamsAIPolicy', + 'New-CsTeamsBYODAndDesksPolicy', + 'Get-CsTeamsBYODAndDesksPolicy', + 'Remove-CsTeamsBYODAndDesksPolicy', + 'Set-CsTeamsBYODAndDesksPolicy', + 'Grant-CsTeamsBYODAndDesksPolicy', + + 'Get-CsTeamsTenantAbuseConfiguration', + 'Set-CsTeamsTenantAbuseConfiguration', + 'Get-CsTeamsEducationAssignmentsAppPolicy', 'Set-CsTeamsEducationAssignmentsAppPolicy', @@ -292,10 +327,13 @@ CmdletsToExport = @( 'Get-CsTeamsNotificationAndFeedsPolicy', 'Set-CsTeamsNotificationAndFeedsPolicy', - 'Remove-CsTeamsNotificationAndFeedsPolicy', - + 'Remove-CsTeamsNotificationAndFeedsPolicy' + 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration' + 'Set-CsTeamsClientConfiguration', + + 'Get-CsTeamsAcsFederationConfiguration', + 'Set-CsTeamsAcsFederationConfiguration' ) # Variables to export from this module @@ -323,42 +361,42 @@ PrivateData = @{} # DefaultCommandPrefix = '' } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA95QYKo+5XpBIi -# klqhZaGXjLZ7VnQ444jfujrExRBMdKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDDXuHz1JaXPYkJ +# QDhNbRvXPHHPibt4v/Y646nlvU08sqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z +# 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 @@ -398,67 +436,67 @@ PrivateData = @{} # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw +# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB +# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOZFLXcZwCPn/8aqMOuA2atc -# ULPe3DZoNq2q60yQrbQcMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A +# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBdiKccaQG4X/u061i5uhu0n +# Ywb27AT8bsv5He1eQ2r7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAj4mHu6kegl9Ml26UB1UbVlMW+GWx55u9qKEZ8zAFq9dxOxTVJl+VisJ+ -# speujgwHju7+iMz8ML+fMzQLRVnrerYzfmzXrsmoK/VCMWLtt4B3wG5q52hGRSFQ -# OkuTiBD25BmcoAZlbkZHQIPhmJTEubGeIAft3aSyyDOajWPlaAXiq7eFTnwvFJDB -# rIDkH08QLasMZzRKpfSUKTkQwJbKx4dxoX4LhnXbTsH90g8WbpsfLqlXVxcV3VaB -# 6IqBZhGgf08XjJV8lSZYzagaMWpkyq+RWinv52M3AY/2RTH2IkLacoikwVm2zaVz -# Z6DOYeaRbwtN1eFf1gbClo9i7CKG7aGCF60wghepBgorBgEEAYI3AwMBMYIXmTCC -# F5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq +# BQAEggEAKuf/iSExCIw3oJlOtgwtA37Krdnwlp+UcXjIdx1TQwZylQYJqQVVQSqX +# F9TL1JkJLzxCJCAirAkdnbi9QFM9ta3LZWDeT7lJ+6wNwiHTnLh5b/GcOfA6ELiY +# oWDdRwxGtEnzUVm6AVKrJzy2dpE6j6gh+xfZfArdBH40PwwSu4nx4mNCLaiVA9KI +# UgjvhgPlBCC73fkpD+5HyYncGISj7cjFVw4rfUcVJyGUj1HkwTZ6QJHHUdS2rjaG +# 6OJpTMS2uVr/p9IxF33VpdFE8jGpTicuXUgShEqdDy0S0cmgVu3iGfxcYddbc0Gy +# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC +# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq # hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBvvqCiSpgQjMXHCwjJQkDuZIeTG48r+SGimwfqL2IQ5wIGZ7YyFXSC -# GBMyMDI1MDMxMzA4NDcyMi43OTRaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV +# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKOvjL6J +# GBMyMDI1MTAwMTA4MzMwMi40ODZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl # bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB9oMvJmpUXSLBAAEAAAH2MA0G +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G # CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u # MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp # b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwNFoXDTI1MTAyMjE4MzEwNFowgdMxCzAJBgNVBAYTAlVTMRMwEQYD +# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjZCMDUt +# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt # 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 +# 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/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 +# 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 @@ -498,44 +536,44 @@ PrivateData = @{} # VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC # onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU # 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV +# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl # bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# Tjo2QjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAFU9eSpdxs0a06JFIuGFHIj/I+36ggYMw +# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw # 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 +# 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 similarity index 56% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 index 42b6ecf9a589..3e77a59da4b9 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 @@ -7,7 +7,7 @@ RootModule = './Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1' # Version number of this module. -ModuleVersion = '14.1.41' +ModuleVersion = '21.4.4' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -164,6 +164,12 @@ CmdletsToExport = @( 'Set-CsTeamsCallingPolicy', 'Grant-CsTeamsCallingPolicy', + 'New-CsTeamsPersonalAttendantPolicy', + 'Get-CsTeamsPersonalAttendantPolicy', + 'Remove-CsTeamsPersonalAttendantPolicy', + 'Set-CsTeamsPersonalAttendantPolicy', + 'Grant-CsTeamsPersonalAttendantPolicy', + 'New-CsExternalAccessPolicy', 'Get-CsExternalAccessPolicy', 'Remove-CsExternalAccessPolicy', @@ -311,42 +317,42 @@ PrivateData = @{} # DefaultCommandPrefix = '' } # SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDX3YXgOeQPQ+Y1 -# Wfw9ZSDmrfnZmP3fLUhgBAxoxI8e/KCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT +# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 @@ -386,144 +392,145 @@ PrivateData = @{} # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBfF -# DkLSziC/peRPp4UPEYOYC3B4RTgpKJ4qWlbBglyxMEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF51 +# 3pH+UdCT12R9jVwu74EHcpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAy # 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 +# 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 -# 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= +# 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml similarity index 55% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml index 1e293353541d..4858d2a33c16 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsAppPolicyConfigurationView + TeamsAIPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy @@ -16,12 +16,20 @@ Identity - - AppCatalogUri + + Description - - ResourceUri + + EnrollFace + + + + EnrollVoice + + + + SpeakerAttributionForBYOD @@ -33,42 +41,42 @@ - + - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -108,67 +116,67 @@ - + - - - - + + + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -208,45 +216,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml index 0af28bf337c3..b9ec3ea42369 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml @@ -33,42 +33,42 @@ - + - - + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -108,67 +108,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -208,45 +208,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml similarity index 56% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml index 1f8a3dfb9866..83440f7bcb43 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsVirtualAppointmentsPolicyView + TeamsBYODAndDesksPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy @@ -16,8 +16,8 @@ Identity - - EnableSmsNotifications + + DeviceDataCollection @@ -29,42 +29,42 @@ - + - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -104,67 +104,67 @@ - + - - - - + + + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -204,45 +204,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml similarity index 61% rename from Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml index 00c9545c5f39..c38cc9747d74 100644 --- a/Modules/MicrosoftTeams/6.9.0/GetTeamSettings.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml @@ -1,96 +1,70 @@ - - - - TeamSettings - - Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings - - - - - 36 - - - 18 - - - 11 - - - 9 - - - 18 - - - 18 - - - - - - - GroupId - - - DisplayName - - - Visibility - - - Archived - - - MailNickName - - - Description - - - - - - - - + + + + + TeamsMediaConnectivityPolicyView + + Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy + + + + + + + + + Identity + + + + DirectConnection + + + + + + + + + + - + - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -130,29 +104,29 @@ - + - + - - + + - - - - - - - + + + + + + + - - + + - + @@ -230,7 +204,7 @@ - + @@ -239,35 +213,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml index 1312614549ee..a2b5ce7c42be 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml @@ -29,42 +29,42 @@ - + - - + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -104,67 +104,67 @@ - + - - + + - - - - - - - + + + + + + + - - + + - - - + + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + @@ -204,45 +204,45 @@ - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml similarity index 63% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml index c8c8f6a75bc6..cd725d2167a6 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsRoutingConfigurationView + TeamsVirtualAppointmentsPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration + Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy @@ -16,60 +16,8 @@ Identity - - VoiceGatewayFqdn - - - - EnableMessagingGatewayProxy - - - - MessagingConversationRequestUrl - - - - MessagingConversationResponseUrl - - - - MgwRedirectUrlTemplate - - - - EnablePoollessTeamsOnlyUserFlighting - - - - EnablePoollessTeamsOnlyCallingFlighting - - - - EnablePoollessTeamsOnlyMessagingFlighting - - - - EnablePoollessTeamsOnlyConferencingFlighting - - - - EnablePoollessTeamsOnlyPresenceFlighting - - - - HybridEdgeFqdn - - - - DisableTeamsOnlyUsersConfCreateFlighting - - - - TenantDisabledForTeamsOnlyUsersConfCreate - - - - EnableTenantLevelPolicyCheck + + EnableSmsNotifications @@ -83,40 +31,40 @@ - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + @@ -159,21 +107,21 @@ - - - - + + + + - - - - - - + + + + + + - - + + @@ -264,36 +212,36 @@ - - - + + + - - - - - - + + + + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml index 1a27c3636bd3..0931a82b11e9 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml @@ -2,9 +2,9 @@ - TeamsBYODAndDesksPolicyView + TeamsWorkLocationDetectionPolicyView - Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy + Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.TeamsWorkLocationDetectionPolicy @@ -16,8 +16,8 @@ Identity - - DeviceDataCollection + + EnableWorkLocationDetection @@ -31,40 +31,40 @@ - - - + + + - + - - - - - - - + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + @@ -107,64 +107,64 @@ - + - - + + - - - - - - + + + + + + - - + + - - + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -208,40 +208,40 @@ - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + 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/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 similarity index 69% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 rename to Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 index 4cfcd08439f0..d423f0bc1702 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 +++ b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 @@ -7,42 +7,42 @@ else Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) } # SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u -# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 @@ -82,29 +82,29 @@ else # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F # viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEATznjiEztZTERI+EkRAl3T9SnKB3ulb+ASVSL -# y4CUx9aXUh9vS1ccVbaM2YKkNVHUKhqjJ70FzM4B/T6aWecabHoHoFrnrqL65By8 -# iCVwrjk/4EEJVbb14EVicLvgubSasV8Kezlhn0dnfH5xUhyRCQvvR5GzduppHP7K -# bVTPozv5VGKvNBZDc1IpiTpTZNbRa+zEaYSiZnDdOHe+7DK8FMkfkxOBKh8M7JEK -# hlCBWMh3qBw6K4G4GtCzdIAliYKdOcOoSmL8q6uXw218+N7ujq0y+no3w4cQsV3A -# iHkV+zoxGQw2Xu7fMyQO/Ji+00lLHfLnka7W2MPrP+tAD20I2qGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# b20wDQYJKoZIhvcNAQEBBQAEggEA6TuOvRDRWgSB20of7Bc0HNzscdou+QEljnZy +# iUjzm8nstTBeX8C8ZzHZAW9ZAyyUcc5btohoi/w4sYFbnzUM/4PGcfMnMwWOiO82 +# baFd1/M6EqK6cfN0svpDfF9xlz4D55LpqkHwvSQ1o4/B6qJxZNX3GT9XfXRF+R+7 +# +hEQXWAULWVXLNgr0/wPG36A65VVKzJirMhoeEujWdTe5NxTwM6nPP/s2Kx/5EFb +# wd8owyknEPWGNP6q+QCStKiPHU7yLT2S2Syvva3HkTV4xiONhJPrXrANoHyz7VRs +# ww21m0PSuEb1zk/49ub68VZ1q/sVrnujGl1XEBOPtDvmiqJ0A6GCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCwMsidz0tMlTuQSvsZWGkNHlKDz55HTk/w -# CDf2ipoWmAIGZ7YcZkIxGBMyMDI1MDMxMzA4NDcyMy41OTdaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD8tLi1+mhEnfJS/P2mXfQHMUEkPsE6F1S5 +# QTI4uAsUjgIGaKR4CbFTGBMyMDI1MTAwMTA4MzMwNy41MDdaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT # Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 # RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w @@ -182,7 +182,7 @@ else # 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk # txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg # DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT @@ -191,36 +191,36 @@ else # 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 +# 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/6.9.0/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 similarity index 63% rename from Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psd1 rename to Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 index 9e2f0e4b5460..64c48ed59315 100644 --- a/Modules/MicrosoftTeams/6.9.0/MicrosoftTeams.psd1 +++ b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 @@ -11,7 +11,7 @@ RootModule = './MicrosoftTeams.psm1' # Version number of this module. -ModuleVersion = '6.9.0' +ModuleVersion = '7.4.0' # Supported PSEditions CompatiblePSEditions = 'Core', 'Desktop' @@ -95,13 +95,15 @@ FunctionsToExport = @( ,'Get-CsCallingLineIdentity' ,'Get-CsCallQueue' ,'Get-CsCloudCallDataConnection' - ,'Get-CsDialPlan' ,'Get-CsEffectiveTenantDialPlan' ,'Get-CsExportAcquiredPhoneNumberStatus' ,'Get-CsGroupPolicyAssignment' ,'Get-CsHybridTelephoneNumber' ,'Get-CsInboundBlockedNumberPattern' ,'Get-CsInboundExemptNumberPattern' + ,'Get-CsMainlineAttendantAppointmentBookingFlow' + ,'Get-CsMainlineAttendantFlow' + ,'Get-CsMainlineAttendantQuestionAnswerFlow' ,'Get-CsMeetingMigrationStatus' ,'Get-CsOnlineApplicationInstance' ,'Get-CsOnlineApplicationInstanceAssociation' @@ -124,7 +126,6 @@ FunctionsToExport = @( ,'Get-CsOnlineLisSubnet' ,'Get-CsOnlineLisSwitch' ,'Get-CsOnlineLisWirelessAccessPoint' - ,'Get-CsOnlinePowerShellEndpoint' ,'Get-CsOnlinePSTNGateway' ,'Get-CsOnlinePstnUsage' ,'Get-CsOnlineSchedule' @@ -139,10 +140,11 @@ FunctionsToExport = @( ,'Get-CsOnlineVoiceRoutingPolicy' ,'Get-CsOnlineVoiceUser' ,'Get-CsPhoneNumberAssignment' + ,'Get-CsPhoneNumberPolicyAssignment' + ,'Get-CsPhoneNumberTag' ,'Get-CsPolicyPackage' ,'Get-CsSdgBulkSignInRequestStatus' ,'Get-CsSDGBulkSignInRequestsSummary' - ,'Get-CsTeamsAcsFederationConfiguration' ,'Get-CsTeamsAudioConferencingPolicy' ,'Get-CsTeamsCallParkPolicy' ,'Get-CsTeamsCortanaPolicy' @@ -197,6 +199,9 @@ FunctionsToExport = @( ,'Get-CsUserPolicyPackageRecommendation' ,'Get-CsVideoInteropServiceProvider' ,'Grant-CsApplicationAccessPolicy' + ,'Get-CsComplianceRecordingForCallQueueTemplate' + ,'Get-CsSharedCallQueueHistoryTemplate' + ,'Get-CsTagsTemplate' ,'Grant-CsCallingLineIdentity' ,'Grant-CsDialoutPolicy' ,'Grant-CsGroupPolicyPackageAssignment' @@ -254,6 +259,8 @@ FunctionsToExport = @( ,'New-CsHybridTelephoneNumber' ,'New-CsInboundBlockedNumberPattern' ,'New-CsInboundExemptNumberPattern' + ,'New-CsMainlineAttendantAppointmentBookingFlow' + ,'New-CsMainlineAttendantQuestionAnswerFlow' ,'New-CsOnlineApplicationInstance' ,'New-CsOnlineApplicationInstanceAssociation' ,'New-CsOnlineAudioConferencingRoutingPolicy' @@ -298,6 +305,10 @@ FunctionsToExport = @( ,'New-CsVoiceNormalizationRule' ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' ,'New-CsOnlineTelephoneNumberReleaseOrder' + ,'New-CsComplianceRecordingForCallQueueTemplate' + ,'New-CsTagsTemplate' + ,'New-CsTag' + ,'New-CsSharedCallQueueHistoryTemplate' ,'Register-CsOnlineDialInConferencingServiceNumber' ,'Remove-CsApplicationAccessPolicy' ,'Remove-CsAutoAttendant' @@ -308,6 +319,8 @@ FunctionsToExport = @( ,'Remove-CsHybridTelephoneNumber' ,'Remove-CsInboundBlockedNumberPattern' ,'Remove-CsInboundExemptNumberPattern' + ,'Remove-CsMainlineAttendantAppointmentBookingFlow' + ,'Remove-CsMainlineAttendantQuestionAnswerFlow' ,'Remove-CsOnlineApplicationInstanceAssociation' ,'Remove-CsOnlineAudioConferencingRoutingPolicy' ,'Remove-CsOnlineAudioFile' @@ -324,6 +337,7 @@ FunctionsToExport = @( ,'Remove-CsOnlineVoiceRoute' ,'Remove-CsOnlineVoiceRoutingPolicy' ,'Remove-CsPhoneNumberAssignment' + ,'Remove-CsPhoneNumberTag' ,'Remove-CsTeamsAudioConferencingPolicy' ,'Remove-CsTeamsCallParkPolicy' ,'Remove-CsTeamsCortanaPolicy' @@ -354,6 +368,9 @@ FunctionsToExport = @( ,'Remove-CsUserCallingDelegate' ,'Remove-CsUserLicenseGracePeriod' ,'Remove-CsVideoInteropServiceProvider' + ,'Remove-CsComplianceRecordingForCallQueueTemplate' + ,'Remove-CsTagsTemplate' + ,'Remove-CsSharedCallQueueHistoryTemplate' ,'Set-CsApplicationAccessPolicy' ,'Set-CsApplicationMeetingConfiguration' ,'Set-CsAutoAttendant' @@ -361,7 +378,8 @@ FunctionsToExport = @( ,'Set-CsCallQueue' ,'Set-CsInboundBlockedNumberPattern' ,'Set-CsInboundExemptNumberPattern' - ,'Set-CsInternalOnlinePowerShellEndpoint' + ,'Set-CsMainlineAttendantAppointmentBookingFlow' + ,'Set-CsMainlineAttendantQuestionAnswerFlow' ,'Set-CsOnlineApplicationInstance' ,'Set-CsOnlineAudioConferencingRoutingPolicy' ,'Set-CsOnlineDialInConferencingBridge' @@ -385,7 +403,8 @@ FunctionsToExport = @( ,'Set-CsOnlineVoiceRoutingPolicy' ,'Set-CsOnlineVoiceUser' ,'Set-CsPhoneNumberAssignment' - ,'Set-CsTeamsAcsFederationConfiguration' + ,'Set-CsPhoneNumberPolicyAssignment' + ,'Set-CsPhoneNumberTag' ,'Set-CsTeamsAudioConferencingPolicy' ,'Set-CsTeamsCallParkPolicy' ,'Set-CsTeamsCortanaPolicy' @@ -424,6 +443,9 @@ FunctionsToExport = @( ,'Set-CsUserCallingDelegate' ,'Set-CsUserCallingSettings' ,'Set-CsVideoInteropServiceProvider' + ,'Set-CsComplianceRecordingForCallQueueTemplate' + ,'Set-CsTagsTemplate' + ,'Set-CsSharedCallQueueHistoryTemplate' ,'Start-CsExMeetingMigration' ,'Sync-CsOnlineApplicationInstance' ,'Test-CsEffectiveTenantDialPlan' @@ -435,11 +457,14 @@ FunctionsToExport = @( ,'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' @@ -469,9 +494,8 @@ FunctionsToExport = @( ,'Invoke-CsMsodsSync' ,'Get-CsUssUserSettings' ,'Set-CsUssUserSettings' - ,'Get-CsPhoneNumberPolicyAssignment' - ,'Set-CsPhoneNumberPolicyAssignment' ,'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. @@ -493,11 +517,13 @@ CmdletsToExport = @( ,'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' @@ -542,10 +568,13 @@ CmdletsToExport = @( ,'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' @@ -565,6 +594,7 @@ CmdletsToExport = @( ,'Grant-CsTeamsVdiPolicy' ,'Grant-CsTeamsWorkLocationDetectionPolicy' ,'Grant-CsTeamsBYODAndDesksPolicy' + ,'Grant-CsTeamsPersonalAttendantPolicy' ,'New-Team' ,'New-TeamChannel' ,'New-TeamsApp' @@ -603,12 +633,14 @@ CmdletsToExport = @( ,'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' @@ -646,13 +678,16 @@ CmdletsToExport = @( ,'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' @@ -694,10 +729,12 @@ CmdletsToExport = @( ,'Set-CsTeamsMeetingConfiguration' ,'Set-CsTeamsVdiPolicy' ,'Set-CsTeamsWorkLocationDetectionPolicy' + ,'Set-CsTeamsRemoteLogCollectionDevice' ,'Set-CsTeamsRecordingRollOutPolicy' ,'Set-CsTeamsCustomBannerText' ,'Set-CsTeamsBYODAndDesksPolicy' ,'Set-CsTeamsNotificationAndFeedsPolicy' + ,'Set-CsTeamsPersonalAttendantPolicy' ,'Set-CsPrivacyConfiguration' ,'Update-M365TeamsApp' ,'Update-M365UnifiedTenantSettings' @@ -735,6 +772,7 @@ CmdletsToExport = @( ,'Set-TeamTargetingHierarchy' #preview ,'Update-TeamsAppInstallation' #preview ,'Get-LicenseReportForChangeNotificationSubscription' +#preview ,'Get-TenantPrivateChannelMigrationStatus' ) # Variables to export from this module @@ -772,15 +810,14 @@ PrivateData = @{ # 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. + **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 '@ @@ -795,219 +832,220 @@ https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes } # SIG # Begin signature block -# MIIoQwYJKoZIhvcNAQcCoIIoNDCCKDACAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAykhuuMvPDobmq -# uteCv9gejGok2aTqrqAWbMH9jtNiBKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 -# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNq+ogYcufhkVf +# wL/SIsi1+eZ0W6XKQrhMITXDH9ZwfKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 -# 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 +# 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 -# 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 +# 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/6.9.0/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml similarity index 68% rename from Modules/MicrosoftTeams/6.9.0/PSGetModuleInfo.xml rename to Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml index d59e59258172..536164676025 100644 --- a/Modules/MicrosoftTeams/6.9.0/PSGetModuleInfo.xml +++ b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml @@ -7,13 +7,13 @@ MicrosoftTeams - 6.9.0 + 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-03-13T10:57:33-04:00
+
2025-10-06T13:29:35+02:00
https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt @@ -41,376 +41,114 @@ - Cmdlet + Function - 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 + 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 @@ -432,6 +170,9 @@ Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment @@ -489,6 +230,8 @@ New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy @@ -533,6 +276,10 @@ New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant @@ -543,6 +290,8 @@ Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile @@ -559,6 +308,7 @@ Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy @@ -589,6 +339,9 @@ Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant @@ -596,7 +349,8 @@ Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern - Set-CsInternalOnlinePowerShellEndpoint + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge @@ -620,7 +374,8 @@ Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment - Set-CsTeamsAcsFederationConfiguration + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy @@ -659,6 +414,9 @@ Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan @@ -670,11 +428,14 @@ 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 @@ -703,19 +464,25 @@ Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment Invoke-CsRehomeuser + Set-CsNotifyCache + + RoleCapability + + + + + DscResource Command - + Add-TeamChannelUser @@ -735,11 +502,13 @@ 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 @@ -783,10 +552,13 @@ 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 @@ -806,6 +578,7 @@ Grant-CsTeamsVdiPolicy Grant-CsTeamsWorkLocationDetectionPolicy Grant-CsTeamsBYODAndDesksPolicy + Grant-CsTeamsPersonalAttendantPolicy New-Team New-TeamChannel New-TeamsApp @@ -844,12 +617,14 @@ 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 @@ -887,13 +662,16 @@ 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 @@ -935,10 +713,12 @@ Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy + Set-CsTeamsRemoteLogCollectionDevice Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy Set-CsTeamsNotificationAndFeedsPolicy + Set-CsTeamsPersonalAttendantPolicy Set-CsPrivacyConfiguration Update-M365TeamsApp Update-M365UnifiedTenantSettings @@ -988,13 +768,15 @@ Get-CsCallingLineIdentity Get-CsCallQueue Get-CsCloudCallDataConnection - Get-CsDialPlan Get-CsEffectiveTenantDialPlan Get-CsExportAcquiredPhoneNumberStatus Get-CsGroupPolicyAssignment Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern + Get-CsMainlineAttendantAppointmentBookingFlow + Get-CsMainlineAttendantFlow + Get-CsMainlineAttendantQuestionAnswerFlow Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation @@ -1017,7 +799,6 @@ Get-CsOnlineLisSubnet Get-CsOnlineLisSwitch Get-CsOnlineLisWirelessAccessPoint - Get-CsOnlinePowerShellEndpoint Get-CsOnlinePSTNGateway Get-CsOnlinePstnUsage Get-CsOnlineSchedule @@ -1032,10 +813,11 @@ Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment + Get-CsPhoneNumberPolicyAssignment + Get-CsPhoneNumberTag Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus Get-CsSDGBulkSignInRequestsSummary - Get-CsTeamsAcsFederationConfiguration Get-CsTeamsAudioConferencingPolicy Get-CsTeamsCallParkPolicy Get-CsTeamsCortanaPolicy @@ -1090,6 +872,9 @@ Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy + Get-CsComplianceRecordingForCallQueueTemplate + Get-CsSharedCallQueueHistoryTemplate + Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment @@ -1147,6 +932,8 @@ New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern + New-CsMainlineAttendantAppointmentBookingFlow + New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy @@ -1191,6 +978,10 @@ New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder + New-CsComplianceRecordingForCallQueueTemplate + New-CsTagsTemplate + New-CsTag + New-CsSharedCallQueueHistoryTemplate Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant @@ -1201,6 +992,8 @@ Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern + Remove-CsMainlineAttendantAppointmentBookingFlow + Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile @@ -1217,6 +1010,7 @@ Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment + Remove-CsPhoneNumberTag Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy @@ -1247,6 +1041,9 @@ Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider + Remove-CsComplianceRecordingForCallQueueTemplate + Remove-CsTagsTemplate + Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant @@ -1254,7 +1051,8 @@ Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern - Set-CsInternalOnlinePowerShellEndpoint + Set-CsMainlineAttendantAppointmentBookingFlow + Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge @@ -1278,7 +1076,8 @@ Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment - Set-CsTeamsAcsFederationConfiguration + Set-CsPhoneNumberPolicyAssignment + Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy @@ -1317,6 +1116,9 @@ Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider + Set-CsComplianceRecordingForCallQueueTemplate + Set-CsTagsTemplate + Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan @@ -1328,11 +1130,14 @@ 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 @@ -1361,9 +1166,278 @@ Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings - Get-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberPolicyAssignment 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 @@ -1374,7 +1448,7 @@ - **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 + **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 @@ -1391,25 +1465,25 @@ 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 + **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 - 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 + 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-03-27T16:20:00Z - 6.9.0 + 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.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 + 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 @@ -1417,7 +1491,7 @@ Microsoft Corporation
- C:\GitHub\CIPP Workspace\CIPP-API\Modules\MicrosoftTeams\6.9.0 + C:\Users\kris6\Documents\Programming\CIPP-Project\CIPP-API\Modules\MicrosoftTeams\MicrosoftTeams\7.4.0 diff --git a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 similarity index 63% rename from Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 rename to Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 index d0cea3e4d756..933a7990f95a 100644 --- a/Modules/MicrosoftTeams/6.9.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 +++ b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 @@ -1,60 +1,59 @@ -$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' +#This file is setting HostingEnvironment environment variable using which we can decide in nested modules, that which cmdlets it has to export. -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') +# 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 } } -gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } +$env:MSTeamsReleaseEnvironment = 'TeamsGA' + +#The below line will be uncommented by build process if its preview module + +#preview $env:MSTeamsReleaseEnvironment = 'TeamsPreview' # SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAkAcLpsaJGFDbZ -# eSS41J6zw7DVHNDwNlPCWsROSiOFqaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V -# lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX +# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji +# 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 @@ -94,29 +93,29 @@ gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x +# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA -# BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPfa -# nlNFBOVfSygxXiGchjDoSjX9DIEVGb2vyXmTS6s/MEIGCisGAQQBgjcCAQwxNDAy +# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA +# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw +# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwh +# nAu5OLUmTWVzGDxzwu87ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAiT7XBa4WCXESAneGSyjV86KJfF5HB89pe0hl -# 44jlezli0Rum6fyMOtVvvHECwPgCftG4tKTygrKFAtskDdBur7lYmeQBSJyZc4lA -# 3TVRJSW1depu3gu0lISZ7lJUvPq1J0N89lr+ZoMmBT89jlNvoPjY4tK6VQbLSdaU -# Uf+TJDX9XCrpx3Th7mxue6d4WhmdgODlV6mjSUXwQ229ljQeFpHzcLrcHv1FqWSf -# vEg9nqQm32jBkwWYAGcq1NDVjKNleDShKilOqDmpNqNDn9V6P2+fGmT9Qm9tILD6 -# gX4YqIyj3gDoCBOpEEKorSyX2aTei7qpxXs2tfPqUmwCqUQ+J6GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI +# b20wDQYJKoZIhvcNAQEBBQAEggEAGAFmuGT0xYp48V7BoXX6c89KcPLcocoWe9yk +# OsZ2mM0SV8SDsDRat3chIFt6CQlTBXdfH/0kHRTKmp5a9zPdfiqOEfpcSIfM1spN +# EfChvGCHMmj6tm9rVOiTm/ACgZ/a36TYoO/Xk2qLB5LR8RceaGaJktbddSv2HmVw +# t2T0Y3p2Wb/NdaaxfibTrbis1pf4UFkndDUrsBN9xntUYr+2s9Lb46uB8CMItikt +# 5+eKPnrWrjU/sTq2Z8FyRt5t24eGJJJhBkXBFMuqgCHzezt+iayOKjPlHBVQgQlu +# 1pLfVECoeblhROX5wExp4DSg2/bNqGMPgq7Q8RPTECU992WI2aGCF7AwghesBgor +# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCAjglzI47s9Ib3HLxBB2joHMGqjmTiyds78 -# Aj24I2b+bgIGZ7YcZkIyGBMyMDI1MDMxMzA4NDcyMy42MjFaMASAAgH0oIHZpIHW +# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCybXx942s9ucM9RAj+edkEKhgA/IQAl6IT +# JKKbMorgnwIGaKR4CbEBGBMyMDI1MTAwMTA4MzMwNi4wODJaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT # Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB+vs7 +# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 # RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w @@ -194,7 +193,7 @@ gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core # 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk # txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg # DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW +# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT @@ -203,36 +202,36 @@ gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core # 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 +# 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/6.9.0/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.cat rename to Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat index 0a09776d262e..5a0b504e91d0 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/_manifest/spdx_2.2/manifest.cat 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/6.9.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll similarity index 99% rename from Modules/MicrosoftTeams/6.9.0/bin/BrotliSharpLib.dll rename to Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll index 3dbceeaf9c26..9c516c3749ae 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/BrotliSharpLib.dll and b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll similarity index 91% rename from Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll index 128620fa8001..00838f3421bd 100644 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll similarity index 82% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll index 42908de12abf..00f9303f6572 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll similarity index 99% rename from Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll index 0920a371c26d..47da8dcd8f31 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Tokens.dll 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/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll similarity index 52% rename from Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll rename to Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll index 95dd5f6af9bd..4497151fb53e 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll and b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll similarity index 93% rename from Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll rename to Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll index bd41c5efa0dc..55d1996f9666 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/System.IdentityModel.Tokens.Jwt.dll 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/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll similarity index 98% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll index 5401bdf804b5..fdca7bac6a8b 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll similarity index 98% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll index fea3e4adec19..ad34a9aef84c 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll similarity index 80% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll index d66cfaee29b9..78b1b1c89c60 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll similarity index 66% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll index ac71544977cc..ec2db7967083 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll similarity index 91% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll index 5672833e192c..9b7c5d8faa25 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll similarity index 85% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll index dd026d2ceed0..e8a18a4ec99e 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll similarity index 91% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll index c1d60c9d0ed8..fc5d616f68d9 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll similarity index 80% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll index d64b849c814a..d621de85f24f 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll similarity index 88% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll index fb9b9660e6cf..897b044501b1 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll similarity index 84% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll index 0e1c3efc8553..e29ee64f615e 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll similarity index 88% rename from Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll index 03dcf88c91f5..47529d6aa416 100644 Binary files a/Modules/MicrosoftTeams/6.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll similarity index 75% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll index 2fe26340fe07..393cbf1dee97 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll similarity index 89% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll index da8569032421..d787a8775b5c 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll index 398daa83bac9..0a0209905e26 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll 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/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll similarity index 92% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll index 7db2c1268106..5169c48c914f 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll similarity index 71% rename from Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll index 6a2202a8626c..bf89be4980de 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Identity.Client.Extensions.Msal.dll 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/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll similarity index 73% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll index c1d0bcb11c18..4a29bc7db7f8 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll similarity index 92% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll index 4dcc08b73a6b..3324ed45ef53 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll similarity index 80% rename from Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll index 1c39858f0a61..8decf370fcac 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/bin/Microsoft.IdentityModel.Logging.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll similarity index 99% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll index 06fa1e26f742..45ae17b27e42 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll similarity index 94% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll index 28a066d44b3e..2c6c10570125 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll similarity index 94% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll index 818eb66d544d..d3056a460fce 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll 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/6.9.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 similarity index 95% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll index 0002715872b3..2b5b8520c438 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll 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/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll similarity index 59% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll index 020a3cb1d39d..3e4b300b873f 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb similarity index 79% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb index 9731637d4128..b3d0ebe75e8a 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb 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/6.9.0/net472/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll similarity index 97% rename from Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Core.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll index 2d6380f7d8de..3fa1efe54e41 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/Microsoft.Web.WebView2.Core.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll similarity index 84% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll index 04b1827d01e3..f0a377a3a2cc 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll similarity index 86% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll index 6f9d2c330502..7e60694860ee 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll similarity index 99% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll index 0ed2a14f40bf..a2d241560b29 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Newtonsoft.Json.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll similarity index 80% rename from Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll index fa5d596efd06..c031ac96e3c0 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/net472/OneCollectorChannel.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll similarity index 79% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll index 7f3566d6ca8d..c082759015cd 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll similarity index 98% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll index b23214b20b8e..afe6d97775d5 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/Polly.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll similarity index 97% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll index 67b43defa44f..6fcf940c4e30 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll index f103d72594c8..19871f5fcf21 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll similarity index 96% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll index 452f93eb0f7a..cd465d3aa208 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll similarity index 98% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll index 6ea22f2134a0..1eda9c7fa707 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Management.Automation.dll 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/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll similarity index 72% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll index 1d2cbad4285a..8ac2cc7dbc63 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll similarity index 90% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll index 5adf78b454ae..fd0725aa4906 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.AccessControl.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll similarity index 78% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll index e3a0c1219224..c3e174c06b18 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll and b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll differ diff --git a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll similarity index 86% rename from Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll rename to Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll index d72308a4669c..9d4508448f18 100644 Binary files a/Modules/MicrosoftTeams/6.9.0/netcoreapp3.1/System.Security.Principal.Windows.dll 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/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/tenant-openapispec.json b/Tools/tenant-openapispec.json index 80ba16246e40..36d372109e94 100644 --- a/Tools/tenant-openapispec.json +++ b/Tools/tenant-openapispec.json @@ -1617,6 +1617,237 @@ } } } + }, + "/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/cspell.json b/cspell.json index 56a59eca16f4..976a619a4a33 100644 --- a/cspell.json +++ b/cspell.json @@ -12,6 +12,8 @@ "cipp", "CIPP", "CIPP-API", + "CIPPCPV", + "CIPPGDAP", "Connectwise", "CPIM", "Datto", @@ -20,6 +22,7 @@ "endswith", "entra", "Entra", + "eula", "exploitability", "gdap", "GDAP", 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..2cf91f7b1f33 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 + "maxConcurrentOrchestratorFunctions": 2, + "tracing": { + "distributedTracingEnabled": false, + "version": "None" + }, + "defaultVersion": "8.7.1", + "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..97c133727559 100644 --- a/profile.ps1 +++ b/profile.ps1 @@ -1,16 +1,4 @@ -# 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 - -# Authenticate with Azure PowerShell using MSI. -# Remove this if you are not planning on using MSI or Azure PowerShell. +Write-Information '#### CIPP-API Start ####' # Import modules @('CIPPCore', 'CippExtensions', 'Az.KeyVault', 'Az.Accounts', 'AzBobbyTables') | ForEach-Object { @@ -49,17 +37,19 @@ try { Set-Location -Path $PSScriptRoot $CurrentVersion = (Get-Content .\version_latest.txt).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)" $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 + $LastStartup | Add-Member -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,6 +58,10 @@ 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-Host '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 diff --git a/version_latest.txt b/version_latest.txt index 6c9616431ff5..d139a75408e9 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -8.2.2 \ No newline at end of file +8.7.1