diff --git a/.build/Add-OpenApiResponseSchemas.ps1 b/.build/Add-OpenApiResponseSchemas.ps1 new file mode 100644 index 0000000000000..3e90a214a1b13 --- /dev/null +++ b/.build/Add-OpenApiResponseSchemas.ps1 @@ -0,0 +1,349 @@ +#Requires -Version 7.0 +<# +.SYNOPSIS + Enriches a CIPP openapi.json with typed 200 response schemas derived by static + analysis of the API and frontend repositories. + +.DESCRIPTION + The generated CIPP spec types every request body but leaves every 200 response + as the generic StandardResults envelope. This stage fills typed per-endpoint + response schemas for the read surface, using two deterministic sources that are + already checked into the repositories (no live API calls): + + 1. Captured response shape baselines (CIPP/Tests/Shapes/*.json) - carry real + field types and nesting. Preferred when present. + 2. Frontend table column declarations (simpleColumns in CIPP/src pages) - + carry field names only. Used when no baseline exists; fields are typed as + string and marked x-cipp-field-source: frontend so consumers know the type + is a name-only inference, not a verified type. + + Endpoints with neither source keep the StandardResults envelope, which is the + correct shape for write/exec operations. Output is deterministic: the same input + repositories always produce a byte-identical spec. + +.PARAMETER InputSpec + Path to the source openapi.json. Defaults to the repo-root spec relative to this + script (.build/.. ). + +.PARAMETER OutputSpec + Path to write the enriched spec. Defaults to InputSpec (in-place rewrite). + +.PARAMETER FrontendRepoPath + Path to a checkout of the CIPP frontend repository. Provides both the shape + baselines (Tests/Shapes) and the page column declarations (src). + +.PARAMETER PassThru + Return the enriched spec object instead of only writing it. Used by tests. + +.EXAMPLE + ./Add-OpenApiResponseSchemas.ps1 -FrontendRepoPath ../CIPP + + Rewrites the repo-root openapi.json in place with typed response schemas. +#> +[CmdletBinding()] +param( + [string]$InputSpec = (Join-Path $PSScriptRoot '..' 'openapi.json'), + [string]$OutputSpec, + [string]$FrontendRepoPath, + [switch]$PassThru +) + +$ErrorActionPreference = 'Stop' + +$script:CippHttpMethods = @('get', 'post', 'put', 'patch', 'delete') + +function ConvertFrom-ShapeNode { + <# + .SYNOPSIS + Converts one node of a captured shape tree into an OpenAPI schema fragment. + #> + param($Node) + + if ($Node -is [string]) { + switch ($Node) { + 'string' { return @{ type = 'string' } } + 'number' { return @{ type = 'number' } } + 'bool' { return @{ type = 'boolean' } } + 'datetime' { return [ordered]@{ type = 'string'; format = 'date-time' } } + # 'null' (captured as null at sample time) and 'truncated' (below the + # capture depth limit) carry no reliable type, so stay permissive. + default { return @{} } + } + } + + if ($Node -is [System.Collections.IDictionary]) { + if ($Node['_type'] -eq 'array') { + return [ordered]@{ type = 'array'; items = (ConvertFrom-ShapeNode -Node $Node['_element']) } + } + $properties = [ordered]@{} + foreach ($key in ($Node.Keys | Sort-Object)) { + $properties[[string]$key] = ConvertFrom-ShapeNode -Node $Node[$key] + } + return [ordered]@{ type = 'object'; properties = $properties } + } + + return @{} +} + +function Get-ShapeBaselineMap { + <# + .SYNOPSIS + Maps endpoint name -> per-record OpenAPI schema, from captured shape baselines. + .DESCRIPTION + Reads only files carrying both _metadata and shape; the sibling + test-results.json and any non-baseline file is skipped. The per-record schema + is the baseline shape itself (the CIPP envelope's Results[] element). + #> + param([string]$ShapesDir) + + $map = @{} + if (-not (Test-Path $ShapesDir)) { + Write-Warning "Shapes directory not found: $ShapesDir" + return $map + } + + foreach ($file in (Get-ChildItem -Path $ShapesDir -Filter '*.json' | Sort-Object -Property FullName)) { + $doc = Get-Content -LiteralPath $file.FullName -Raw | ConvertFrom-Json -AsHashtable -Depth 100 + if (-not ($doc -is [System.Collections.IDictionary] -and $doc.ContainsKey('_metadata') -and $doc.ContainsKey('shape'))) { + continue + } + $endpoint = $doc['_metadata']['endpoint'] + if (-not $endpoint) { continue } + $map[$endpoint] = ConvertFrom-ShapeNode -Node $doc['shape'] + } + return $map +} + +function Get-FrontendColumnMap { + <# + .SYNOPSIS + Maps endpoint name -> sorted unique field names, from page simpleColumns. + .DESCRIPTION + Intent: skips conditional simpleColumns arrays to avoid non-column branch strings; false negatives beat junk fields. + Scans frontend page sources for files that pair an /api/ reference + with a simpleColumns array, and unions the declared column names per endpoint. + Field names are deterministic; their types are not, so callers type them as + string with a provenance marker. + #> + param([string]$SrcDir) + + $map = @{} + if (-not (Test-Path $SrcDir)) { + Write-Warning "Frontend src directory not found: $SrcDir" + return $map + } + + $endpointPattern = [regex]'/api/([A-Za-z0-9_]+)' + $columnsPattern = [regex]'(?s)\bsimpleColumns\s*(?:=|:)\s*(?:\{\s*)?\[(?[^\]]*)\]' + $stringPattern = [regex]'"([^"]+)"|''([^'']+)''' + + $files = Get-ChildItem -Path $SrcDir -Recurse -File -Include '*.js', '*.jsx' + foreach ($file in $files) { + $text = Get-Content -LiteralPath $file.FullName -Raw + if ([string]::IsNullOrEmpty($text) -or $text -notmatch 'simpleColumns') { continue } + + $endpoints = $endpointPattern.Matches($text) | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique + if (-not $endpoints) { continue } + + $columns = foreach ($colMatch in $columnsPattern.Matches($text)) { + foreach ($strMatch in $stringPattern.Matches($colMatch.Groups['columns'].Value)) { + $value = if ($strMatch.Groups[1].Success) { $strMatch.Groups[1].Value } else { $strMatch.Groups[2].Value } + if ($value) { $value } + } + } + if (-not $columns) { continue } + + foreach ($endpoint in $endpoints) { + if (-not $map.ContainsKey($endpoint)) { $map[$endpoint] = [System.Collections.Generic.HashSet[string]]::new() } + foreach ($column in $columns) { [void]$map[$endpoint].Add($column) } + } + } + return $map +} + +function ConvertTo-ColumnRecordSchema { + <# + .SYNOPSIS + Builds a per-record object schema from a set of frontend column names. + #> + param([System.Collections.Generic.HashSet[string]]$Columns) + + $properties = [ordered]@{} + foreach ($column in ($Columns | Sort-Object)) { + $properties[$column] = [ordered]@{ type = 'string'; 'x-cipp-field-source' = 'frontend' } + } + return [ordered]@{ type = 'object'; properties = $properties } +} + +function ConvertTo-ResponseEnvelopeSchema { + <# + .SYNOPSIS + Wraps a per-record schema in the CIPP { Results: [...], Metadata: {...} } envelope. + #> + param($RecordSchema) + + return [ordered]@{ + type = 'object' + properties = [ordered]@{ + Results = [ordered]@{ type = 'array'; items = $RecordSchema } + Metadata = [ordered]@{ type = 'object' } + } + } +} + + +function Get-CippOperationId { + <# + .SYNOPSIS + Builds the deterministic operationId for one CIPP path and method. + .DESCRIPTION + Riftwing imports OpenAPI operations by operationId. CIPP upstream does not + currently emit operationIds, so this keeps importer keys stable without + depending on display labels or external data. + #> + param( + [Parameter(Mandatory)][string]$Path, + [Parameter(Mandatory)][string]$Method, + [Parameter(Mandatory)][string[]]$PathMethods + ) + + $endpointName = $Path -replace '^/api/', '' + if ($PathMethods.Count -eq 1) { + return $endpointName + } + + $methodName = [System.Globalization.CultureInfo]::InvariantCulture.TextInfo.ToTitleCase($Method.ToLowerInvariant()) + return "$methodName$endpointName" +} + +function Add-CippOperationId { + <# + .SYNOPSIS + Injects missing operationIds and fails on duplicate operationIds. + .DESCRIPTION + Existing non-empty operationIds are preserved so this pass can retire itself + when upstream starts emitting operationIds. Duplicate operationIds are fatal + because importers commonly key operations by operationId. + #> + param([Parameter(Mandatory)][System.Collections.IDictionary]$Spec) + + if (-not $Spec['paths']) { throw 'Spec has no paths.' } + + $operationCount = 0 + $injectedCount = 0 + $operationIds = @{} + + foreach ($pathEntry in $Spec['paths'].GetEnumerator()) { + $pathMethods = @($pathEntry.Value.Keys | Where-Object { $_ -in $script:CippHttpMethods }) + foreach ($methodEntry in $pathEntry.Value.GetEnumerator()) { + if ($methodEntry.Key -notin $script:CippHttpMethods) { continue } + + $operationCount++ + $operation = $methodEntry.Value + $operationId = $operation['operationId'] + if ([string]::IsNullOrWhiteSpace([string]$operationId)) { + $operationId = Get-CippOperationId -Path $pathEntry.Key -Method $methodEntry.Key -PathMethods $pathMethods + $operation['operationId'] = $operationId + $injectedCount++ + } + + if ($operationIds.ContainsKey($operationId)) { + throw "Duplicate operationId found: $operationId" + } + $operationIds[$operationId] = $true + } + } + + return [pscustomobject]@{ Operations = $operationCount; Injected = $injectedCount; Unique = $operationIds.Count } +} + +function Resolve-SpecResponse { + <# + .SYNOPSIS + Adds typed 200 response schemas to a parsed spec, in place, and returns counts. + .DESCRIPTION + The pure core of this stage: operates on an already-parsed spec hashtable and + the two endpoint maps, with no file or repository access, so it is unit + testable. Only existing 200 responses on get/post/put/patch/delete operations + are touched; everything else (including operations with no matching source) is + left exactly as found. + #> + param( + [Parameter(Mandatory)][System.Collections.IDictionary]$Spec, + [Parameter(Mandatory)][hashtable]$BaselineMap, + [Parameter(Mandatory)][hashtable]$ColumnMap + ) + + if (-not $Spec['paths']) { throw 'Spec has no paths.' } + + $operationCount = 0 + $typedCount = 0 + + foreach ($pathEntry in $Spec['paths'].GetEnumerator()) { + $endpoint = $pathEntry.Key -replace '^/api/', '' + + $recordSchema = $null + if ($BaselineMap.ContainsKey($endpoint)) { + $recordSchema = $BaselineMap[$endpoint] + } elseif ($ColumnMap.ContainsKey($endpoint)) { + $recordSchema = ConvertTo-ColumnRecordSchema -Columns $ColumnMap[$endpoint] + } + + foreach ($methodEntry in $pathEntry.Value.GetEnumerator()) { + if ($methodEntry.Key -notin $script:CippHttpMethods) { continue } + $operationCount++ + if ($null -eq $recordSchema) { continue } + + $responses = $methodEntry.Value['responses'] + if ($null -eq $responses) { continue } + + $okResponse = $responses['200'] + if (-not $okResponse) { continue } + + $okResponse['content'] = [ordered]@{ + 'application/json' = [ordered]@{ schema = (ConvertTo-ResponseEnvelopeSchema -RecordSchema $recordSchema) } + } + $typedCount++ + } + } + + return [pscustomobject]@{ + Operations = $operationCount + Typed = $typedCount + } +} + +function Add-CippResponseSchema { + <# + .SYNOPSIS + File-level orchestration: read spec + repo sources, enrich, write output. + #> + param( + [Parameter(Mandatory)][string]$InputSpec, + [Parameter(Mandatory)][string]$OutputSpec, + [Parameter(Mandatory)][string]$FrontendRepoPath, + [switch]$PassThru + ) + + if (-not (Test-Path $InputSpec)) { throw "Input spec not found: $InputSpec" } + + $spec = Get-Content -LiteralPath $InputSpec -Raw | ConvertFrom-Json -AsHashtable -Depth 100 + $baselineMap = Get-ShapeBaselineMap -ShapesDir (Join-Path $FrontendRepoPath 'Tests' 'Shapes') + $columnMap = Get-FrontendColumnMap -SrcDir (Join-Path $FrontendRepoPath 'src') + + $operationIdResult = Add-CippOperationId -Spec $spec + $result = Resolve-SpecResponse -Spec $spec -BaselineMap $baselineMap -ColumnMap $columnMap + Write-Information "Operations: $($result.Operations) | typed responses added: $($result.Typed) | operationIds injected: $($operationIdResult.Injected) | unique operationIds: $($operationIdResult.Unique)" -InformationAction Continue + + # Serialization is deterministic for the object this stage builds, but it does not globally canonicalize pre-existing spec keys. + [System.IO.File]::WriteAllText($OutputSpec, ($spec | ConvertTo-Json -Depth 100)) + + if ($PassThru) { return $spec } +} + +# Run orchestration only when invoked as a script, not when dot-sourced for testing. +if ($MyInvocation.InvocationName -ne '.') { + if (-not $FrontendRepoPath) { throw 'FrontendRepoPath is required when running the script.' } + if (-not $OutputSpec) { $OutputSpec = $InputSpec } + Add-CippResponseSchema -InputSpec $InputSpec -OutputSpec $OutputSpec -FrontendRepoPath $FrontendRepoPath -PassThru:$PassThru +} diff --git a/.build/README.md b/.build/README.md new file mode 100644 index 0000000000000..81d8ce08a6dd6 --- /dev/null +++ b/.build/README.md @@ -0,0 +1,38 @@ +# OpenAPI enrichment + +`Add-OpenApiResponseSchemas.ps1` post-processes the generated CIPP `openapi.json`. It adds deterministic operationIds and typed `200` response schemas where response shape data can be derived from the CIPP frontend repository. It does not replace the upstream OpenAPI generator. + +The enriched spec is published on each GitHub Release as the `openapi.enriched.json` release asset. + +The PR check and release workflow strictly lint the CI-generated `openapi.enriched.json` with Redocly. The committed `.redocly.lint-ignore.yaml` baseline pins findings that already exist in the generated enriched spec because of upstream `openapi.json` issues. Any new Redocly error or warning that is not in the baseline fails CI. + +To regenerate locally, check out the CIPP frontend repository and run: + +```powershell +pwsh -NoProfile -File .build/Add-OpenApiResponseSchemas.ps1 ` + -FrontendRepoPath ` + -InputSpec ./openapi.json -OutputSpec ./openapi.enriched.json +``` + +If upstream `openapi.json` legitimately changes and the pinned Redocly findings must be refreshed, regenerate the enriched spec first, then regenerate the ignore baseline from that enriched output: + +```powershell +pwsh -NoProfile -File .build/Add-OpenApiResponseSchemas.ps1 ` + -FrontendRepoPath ` + -InputSpec ./openapi.json -OutputSpec ./openapi.enriched.json +npx --yes @redocly/cli@2.35.1 lint ./openapi.enriched.json --generate-ignore-file +``` + +Do not generate the baseline from the base `openapi.json`. The lint subject is always the generated `openapi.enriched.json`. + +## Known limitations + +- Only `get`, `post`, `put`, `patch`, and `delete` operations are processed. `head`, `options`, and `trace` are not present in the current spec. +- Paths are assumed to start with `/api/`. All 580 current paths do. +- When a typed `200` response is added, it replaces the existing `200.content`. Today that content is only the generic `StandardResults` envelope. +- Conditional/ternary `simpleColumns` expressions are intentionally not parsed. + +## Release workflow notes + +- `openapi-enriched-release.yml` builds and uploads from the same tag. On `workflow_dispatch`, the `tag` input is checked out and used as the upload target. On `release: published`, the release tag is checked out and used as the upload target. +- `.github/workflows/` is gitignored in this repository, so the OpenAPI workflow files require `git add -f` when they are intentionally added or updated. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index b4fad38b5fd26..467dab7a3d371 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -162,3 +162,44 @@ Detailed PowerShell coding conventions are in `.github/instructions/powershell-c - Do not create new Azure Function trigger folders — use the existing five triggers - Do not call `Write-Output` in HTTP functions — return an `[HttpResponseContext]` (the outer trigger handles `Push-OutputBinding`) - Do not hardcode tenant IDs or secrets — use environment variables and `Get-GraphToken` + +## Commit messages + +Generate all commit messages in **Conventional Commits** format: + +``` +(): + +[optional body] + +[optional footer(s)] +``` + +**Rules:** + +- **Type** is required and must be one of: + - `feat` — a new feature + - `fix` — a bug fix + - `docs` — documentation only + - `style` — formatting, whitespace, no code-behavior change + - `refactor` — code change that neither fixes a bug nor adds a feature + - `perf` — a performance improvement + - `test` — adding or correcting tests + - `build` — build system or dependency changes + - `ci` — CI/CD configuration changes + - `chore` — routine maintenance, no production code change + - `revert` — reverts a previous commit +- **Scope** is optional and given in parentheses after the type (e.g. `feat(identity):`). Use a short, lowercase area name when it adds clarity. +- **Description** is a short, imperative-mood summary ("add", not "added"/"adds"), lowercase, no trailing period, ideally ≤ 72 characters. +- **Body** (optional) explains the *what* and *why*, not the *how*. Separate it from the description with one blank line. +- **Breaking changes** are indicated with a `!` before the colon (e.g. `feat!:`) and/or a `BREAKING CHANGE:` footer describing the change. +- Reference issues/PRs in the footer where relevant (e.g. `Closes #123`). + +**Examples:** + +``` +feat(identity): add bulk user offboarding endpoint +fix(graph): handle expired token on retry +docs: update authentication model overview +refactor(standards)!: rename remediation parameter +``` diff --git a/.github/scripts/validate-json.mjs b/.github/scripts/validate-json.mjs new file mode 100644 index 0000000000000..1031fa780aeb3 --- /dev/null +++ b/.github/scripts/validate-json.mjs @@ -0,0 +1,73 @@ +import { readFile, readdir, writeFile, appendFile } from "node:fs/promises"; +import path from "node:path"; + +// Usage: node validate-json.mjs [--strip ] [dir...] +// --strip removes a leading path prefix from reported filenames, so a PR checked +// out into a subdirectory still reports repo-relative paths. +const argv = process.argv.slice(2); +let strip = ""; +const roots = []; +for (let i = 0; i < argv.length; i++) { + if (argv[i] === "--strip") { + strip = argv[++i] ?? ""; + } else { + roots.push(argv[i]); + } +} + +async function collect(dir) { + let entries; + try { + entries = await readdir(dir, { withFileTypes: true }); + } catch (error) { + if (error.code === "ENOENT") return []; + throw error; + } + const files = []; + for (const entry of entries) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + if (entry.name === "node_modules") continue; + files.push(...(await collect(full))); + } else if (entry.name.endsWith(".json")) { + files.push(full); + } + } + return files; +} + +const report = (file) => { + const normalised = file.split(path.sep).join("/"); + return strip && normalised.startsWith(strip) ? normalised.slice(strip.length) : normalised; +}; + +const failures = []; +let checked = 0; + +for (const root of roots) { + for (const file of await collect(root)) { + checked++; + // Strip a leading UTF-8 BOM: it's tolerated by PowerShell's ConvertFrom-Json + // (how the API loads these files) but rejected by Node's JSON.parse. + const contents = (await readFile(file, "utf8")).replace(/^\uFEFF/, ""); + try { + JSON.parse(contents); + } catch (error) { + failures.push({ file: report(file), message: error.message.replace(/\r?\n/g, " ") }); + } + } +} + +for (const { file, message } of failures) { + // Annotate the PR diff via a GitHub Actions error command. + console.log(`::error file=${file}::${message}`); +} +console.log(`Checked ${checked} JSON file(s), ${failures.length} invalid.`); + +// Hand the results to the workflow so it can comment on the PR. +if (process.env.GITHUB_OUTPUT) { + await appendFile(process.env.GITHUB_OUTPUT, `invalid_count=${failures.length}\n`); +} +await writeFile("json-validation-results.json", JSON.stringify(failures, null, 2)); + +process.exit(failures.length > 0 ? 1 : 0); diff --git a/.github/workflows/Conventional_Commits.yml b/.github/workflows/Conventional_Commits.yml new file mode 100644 index 0000000000000..7f2d86e10d49e --- /dev/null +++ b/.github/workflows/Conventional_Commits.yml @@ -0,0 +1,65 @@ +name: Conventional Commits Check + +on: + # Using pull_request_target instead of pull_request for secure handling of fork PRs + pull_request_target: + # Re-run on title edits so a corrected title clears the check + types: [opened, synchronize, reopened, edited] + # Only check PRs targeting the dev branch + branches: + - dev + +permissions: + pull-requests: write + issues: write + +jobs: + conventional-commits: + name: Validate Conventional Commits + runs-on: ubuntu-slim + steps: + - name: Validate PR title + uses: actions/github-script@v9 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const title = context.payload.pull_request.title || ''; + const pattern = /^(feat|fix|docs|style|refactor|perf|test|chore|ci|build|revert)(\(.+\))?!?: .+/i; + + if (pattern.test(title)) { + console.log(`✓ PR title follows Conventional Commits format: "${title}"`); + return; + } + + console.log(`❌ PR title does not follow Conventional Commits format: "${title}"`); + + const message = [ + '❌ **This PR title does not follow the [Conventional Commits](https://www.conventionalcommits.org/) format.**', + '', + 'Expected format: `type(scope)?: description`', + '', + 'Allowed types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `ci`, `build`, `revert`', + '', + 'Examples:', + '- `feat: add SharePoint external user management`', + '- `fix(auth): handle expired refresh tokens`', + '- `docs: update self-hosting guide`', + '', + `Received: \`${title}\``, + '', + '🔒 This PR has been automatically closed. Please update the title to match the format above and reopen the PR.' + ].join('\n'); + + await github.rest.issues.createComment({ + ...context.repo, + issue_number: context.issue.number, + body: message + }); + + await github.rest.pulls.update({ + ...context.repo, + pull_number: context.issue.number, + state: 'closed' + }); + + core.setFailed(`PR title does not follow Conventional Commits format: "${title}"`); diff --git a/.github/workflows/Validate_JSON.yml b/.github/workflows/Validate_JSON.yml new file mode 100644 index 0000000000000..4d941dbe2207b --- /dev/null +++ b/.github/workflows/Validate_JSON.yml @@ -0,0 +1,121 @@ +--- +name: Validate JSON +on: + # pull_request_target (not pull_request) so the token can comment on fork PRs. + # The PR's own code is never executed: it is checked out into ./pr as data only, + # and parsed by the validator script from the trusted base checkout. + pull_request_target: + types: [opened, synchronize, reopened] + branches: + - main + - dev + paths: + - "Config/**/*.json" + - "Tools/**/*.json" + - "AddMSPApp/**/*.json" + - ".github/workflows/Validate_JSON.yml" + - ".github/scripts/validate-json.mjs" + push: + branches: + - dev + paths: + - "Config/**/*.json" + - "Tools/**/*.json" + - "AddMSPApp/**/*.json" + - ".github/workflows/Validate_JSON.yml" + - ".github/scripts/validate-json.mjs" +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request_target' && github.event.pull_request.number || github.ref }} + cancel-in-progress: true +permissions: + contents: read + pull-requests: write +jobs: + validate: + name: Parse JSON in Config, Tools and AddMSPApp + runs-on: ubuntu-latest + steps: + - name: Checkout base (trusted validator script) + uses: actions/checkout@v6 + + - name: Checkout PR head (untrusted, data only) + if: github.event_name == 'pull_request_target' + uses: actions/checkout@v6 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.sha }} + path: pr + persist-credentials: false + + - name: Validate JSON files + id: validate + continue-on-error: true + env: + ROOT: ${{ github.event_name == 'pull_request_target' && 'pr/' || '' }} + run: >- + node .github/scripts/validate-json.mjs --strip "$ROOT" + "${ROOT}Config" "${ROOT}Tools" "${ROOT}AddMSPApp" + + - name: Comment on PR + if: github.event_name == 'pull_request_target' + uses: actions/github-script@v9 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const fs = require('fs'); + const marker = ''; + const resultsFile = 'json-validation-results.json'; + if (!fs.existsSync(resultsFile)) { + // The validator crashed before reporting; let its own error stand. + core.warning('No validation results found — skipping PR comment.'); + return; + } + const failures = JSON.parse(fs.readFileSync(resultsFile, 'utf8')); + + // Find a previous comment from this workflow so we update instead of piling up. + const { data: comments } = await github.rest.issues.listComments({ + ...context.repo, + issue_number: context.issue.number, + per_page: 100, + }); + const existing = comments.find( + (c) => c.user.type === 'Bot' && c.body.includes(marker) + ); + + let body; + if (failures.length > 0) { + const list = failures + .map(({ file, message }) => `- \`${file}\`\n > ${message}`) + .join('\n'); + body = + `${marker}\n### ⚠️ Invalid JSON detected\n\n` + + `${failures.length} JSON file(s) in this PR could not be parsed. ` + + `These files are loaded directly by CIPP, so a syntax error here breaks the app at runtime.\n\n` + + `${list}\n\n` + + `Please fix the syntax and push again — this comment will update automatically.`; + } else if (existing) { + body = `${marker}\n### ✅ JSON is valid\n\nAll JSON files in \`Config\`, \`Tools\` and \`AddMSPApp\` parse correctly. Thanks for fixing it!`; + } else { + // Nothing was ever broken — stay quiet. + return; + } + + if (existing) { + await github.rest.issues.updateComment({ + ...context.repo, + comment_id: existing.id, + body, + }); + } else { + await github.rest.issues.createComment({ + ...context.repo, + issue_number: context.issue.number, + body, + }); + } + + - name: Fail if any JSON is invalid + if: steps.validate.outputs.invalid_count != '0' + run: | + echo "::error::${{ steps.validate.outputs.invalid_count }} invalid JSON file(s). See annotations above." + exit 1 diff --git a/.github/workflows/dev_cippahmcc.yml b/.github/workflows/dev_cippahmcc.yml new file mode 100644 index 0000000000000..11f85d798405d --- /dev/null +++ b/.github/workflows/dev_cippahmcc.yml @@ -0,0 +1,32 @@ +# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: Build and deploy Powershell project to Azure Function App - cippahmcc + +on: + push: + branches: + - dev + workflow_dispatch: + +env: + AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: 'Checkout GitHub Action' + uses: actions/checkout@v4 + + - name: 'Run Azure Functions Action' + uses: Azure/functions-action@v1 + id: fa + with: + app-name: 'cippahmcc' + slot-name: 'Production' + package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }} + publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_D3F28C6FE40549659A230F7C9B4F2B98 }} + sku: 'flexconsumption' + \ No newline at end of file diff --git a/.github/workflows/openapi-enriched-check.yml b/.github/workflows/openapi-enriched-check.yml new file mode 100644 index 0000000000000..cb93afbf9aba2 --- /dev/null +++ b/.github/workflows/openapi-enriched-check.yml @@ -0,0 +1,83 @@ +name: OpenAPI Enriched Spec Check + +on: + pull_request: + paths: + - '.build/**' + - '.github/workflows/openapi-enriched-check.yml' + - '.github/workflows/openapi-enriched-release.yml' + - '.redocly.lint-ignore.yaml' + - 'redocly.yaml' + - 'Tests/Build/**' + workflow_dispatch: + +permissions: + contents: read + +jobs: + openapi-enriched-check: + if: github.repository_owner == 'KelvinTegelaar' + runs-on: ubuntu-latest + + steps: + - name: Checkout CIPP-API + uses: actions/checkout@v4 + + - name: Checkout CIPP frontend + uses: actions/checkout@v4 + with: + repository: KelvinTegelaar/CIPP + path: _frontend + + - name: Install PowerShell test modules + shell: pwsh + run: | + Install-Module Pester -RequiredVersion 5.7.1 -Scope CurrentUser -Force + Install-Module PSScriptAnalyzer -RequiredVersion 1.25.0 -Scope CurrentUser -Force + + - name: Run build tests + shell: pwsh + run: ./Tests/Build/Invoke-BuildTests.ps1 + + - name: Generate enriched OpenAPI spec + shell: pwsh + run: | + pwsh -NoProfile -File .build/Add-OpenApiResponseSchemas.ps1 ` + -FrontendRepoPath ./_frontend ` + -InputSpec ./openapi.json ` + -OutputSpec ./openapi.enriched.json + + - name: Strict lint enriched OpenAPI spec + run: | + set +e + npx --yes @redocly/cli@2.35.1 lint ./openapi.enriched.json --format=json > redocly-results.json + REDOCLY_STATUS=$? + set -e + + node - redocly-results.json "$REDOCLY_STATUS" <<'NODE' + const fs = require('fs'); + + const resultsPath = process.argv[2]; + const redoclyStatus = Number(process.argv[3]); + const raw = fs.readFileSync(resultsPath, 'utf8').trim(); + if (!raw) { + throw new Error(`${resultsPath} did not contain Redocly JSON output.`); + } + + const doc = JSON.parse(raw); + const totals = doc.totals || {}; + const errors = totals.errors || 0; + const warnings = totals.warnings || 0; + const ignored = totals.ignored || 0; + console.log(`Redocly new findings: errors=${errors}, warnings=${warnings}, ignored=${ignored}`); + + if (errors + warnings > 0) { + console.error('Enriched spec introduced new Redocly finding(s). Update the enrichment or regenerate the baseline only for legitimate upstream changes.'); + process.exit(1); + } + + if (redoclyStatus !== 0) { + console.error(`Redocly exited with status ${redoclyStatus}.`); + process.exit(redoclyStatus); + } + NODE diff --git a/.github/workflows/openapi-enriched-release.yml b/.github/workflows/openapi-enriched-release.yml new file mode 100644 index 0000000000000..853e5542bc1a9 --- /dev/null +++ b/.github/workflows/openapi-enriched-release.yml @@ -0,0 +1,86 @@ +name: Publish Enriched OpenAPI Spec + +on: + release: + types: [published] + workflow_dispatch: + inputs: + tag: + description: Release tag to upload the enriched spec to + required: true + type: string + +permissions: + contents: write + +jobs: + openapi-enriched-release: + if: github.repository_owner == 'KelvinTegelaar' + runs-on: ubuntu-latest + + steps: + - name: Select release tag + id: release_tag + env: + RESOLVED_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.event.release.tag_name }} + run: printf 'tag=%s\n' "$RESOLVED_TAG" >> "$GITHUB_OUTPUT" + + - name: Checkout CIPP-API + uses: actions/checkout@v4 + with: + ref: ${{ steps.release_tag.outputs.tag }} + + - name: Checkout CIPP frontend + uses: actions/checkout@v4 + with: + repository: KelvinTegelaar/CIPP + path: _frontend + + - name: Generate enriched OpenAPI spec + shell: pwsh + run: | + pwsh -NoProfile -File .build/Add-OpenApiResponseSchemas.ps1 ` + -FrontendRepoPath ./_frontend ` + -InputSpec ./openapi.json ` + -OutputSpec ./openapi.enriched.json + + - name: Strict lint enriched OpenAPI spec + run: | + set +e + npx --yes @redocly/cli@2.35.1 lint ./openapi.enriched.json --format=json > redocly-results.json + REDOCLY_STATUS=$? + set -e + + node - redocly-results.json "$REDOCLY_STATUS" <<'NODE' + const fs = require('fs'); + + const resultsPath = process.argv[2]; + const redoclyStatus = Number(process.argv[3]); + const raw = fs.readFileSync(resultsPath, 'utf8').trim(); + if (!raw) { + throw new Error(`${resultsPath} did not contain Redocly JSON output.`); + } + + const doc = JSON.parse(raw); + const totals = doc.totals || {}; + const errors = totals.errors || 0; + const warnings = totals.warnings || 0; + const ignored = totals.ignored || 0; + console.log(`Redocly new findings: errors=${errors}, warnings=${warnings}, ignored=${ignored}`); + + if (errors + warnings > 0) { + console.error('Enriched spec introduced new Redocly finding(s). Update the enrichment or regenerate the baseline only for legitimate upstream changes.'); + process.exit(1); + } + + if (redoclyStatus !== 0) { + console.error(`Redocly exited with status ${redoclyStatus}.`); + process.exit(redoclyStatus); + } + NODE + + - name: Upload enriched OpenAPI spec to release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.release_tag.outputs.tag }} + run: gh release upload "$RELEASE_TAG" openapi.enriched.json --clobber diff --git a/.github/workflows/psscriptanalyzer.yml b/.github/workflows/psscriptanalyzer.yml new file mode 100644 index 0000000000000..da71991767877 --- /dev/null +++ b/.github/workflows/psscriptanalyzer.yml @@ -0,0 +1,47 @@ +# SAST for PowerShell: PSScriptAnalyzer with SARIF upload to the GitHub Security tab +# ISO 27001:2022 A.8.28/8.29 evidence — CodeQL does not support PowerShell, so +# PSScriptAnalyzer is the SAST tool for CIPP-API. +name: SAST - PSScriptAnalyzer +on: + push: + branches: [main, dev] + pull_request: + branches: [main, dev] + schedule: + - cron: "30 5 * * 1" # Weekly, catches newly added rules against unchanged code + +permissions: + contents: read + security-events: write + actions: read + +jobs: + psscriptanalyzer: + if: github.repository_owner == 'KelvinTegelaar' + name: Run PSScriptAnalyzer + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Run PSScriptAnalyzer + uses: microsoft/psscriptanalyzer-action@v1.1 + with: + path: .\ + recurse: true + # Security-focused rules; extend with full default ruleset if desired + includeRule: + '"PSAvoidUsingPlainTextForPassword", + "PSAvoidUsingConvertToSecureStringWithPlainText", + "PSAvoidUsingUsernameAndPasswordParams", + "PSUsePSCredentialType", + "PSAvoidUsingInvokeExpression", + "PSAvoidGlobalVars", + "PSAvoidUsingComputerNameHardcoded", + "PSUseDeclaredVarsMoreThanAssignments"' + output: results.sarif + + - name: Upload SARIF to Security tab + uses: github/codeql-action/upload-sarif@v4 + with: + sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index 4f4c7911d7505..326a9b52c6735 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,7 @@ Shared/CIPPSharp/obj/ !/profile.ps1 .DS_Store proxyman.pem + +# Pester test runner artifacts (Invoke-CippTests.ps1 -CI / -Coverage) +Tests/TestResults.xml +Tests/coverage.xml diff --git a/.redocly.lint-ignore.yaml b/.redocly.lint-ignore.yaml new file mode 100644 index 0000000000000..2aaa3434d8bf2 --- /dev/null +++ b/.redocly.lint-ignore.yaml @@ -0,0 +1,12 @@ +# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API. +# See https://redocly.com/docs/cli/ for more information. +openapi.enriched.json: + info-license: + - '#/info' + no-schema-type-mismatch: + - >- + #/paths/~1api~1DeployContactTemplates/post/requestBody/content/application~1json/schema/properties/TemplateList/items + no-unused-components: + - '#/components/parameters/selectedTenants' + - '#/components/schemas/LabelValueNumber' + - '#/components/schemas/DynamicExtensionFields' diff --git a/AddMSPApp/datto.app.xml b/AddMSPApp/datto.app.xml index ca6f1636c64c4..4c3c5d09842ca 100644 --- a/AddMSPApp/datto.app.xml +++ b/AddMSPApp/datto.app.xml @@ -1,15 +1,15 @@ - - install.ps1 - 693 - datto.intunewin - install.ps1 - - jobB9Ga7J3CbO6acWJyvBRE56nFXwqGfcnGfZRMsJC4= - 53SOzs0l6Po2btsGFSMZgkV8vwhH+PxTN8BZDUcfWfg= - VjM/osrvPElbu79J+mdXuw== - UZZXO53Np/tG6Ms+qvwLcNOeD1GRH6NRPFg/TuMz39M= - ProfileVersion1 - KtAWAl29064LG0eyDinbDs0JUbK+EK7GsJovu8obBM4= - 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/Config/CIPPDBCacheTypes.json b/Config/CIPPDBCacheTypes.json index 003fb3457dd1c..559042104aeac 100644 --- a/Config/CIPPDBCacheTypes.json +++ b/Config/CIPPDBCacheTypes.json @@ -294,6 +294,21 @@ "friendlyName": "SharePoint Site Usage", "description": "SharePoint site usage statistics" }, + { + "type": "SiteActivity", + "friendlyName": "Site Activity", + "description": "Per-site activity with siteType classification (SharePoint, SharePointAndTeams, OneDrive) and separate workload activity columns" + }, + { + "type": "SharePointSharingLinks", + "friendlyName": "SharePoint & OneDrive Sharing Links", + "description": "Sharing links and external grants on SharePoint and OneDrive files and folders" + }, + { + "type": "SharePointPermissions", + "friendlyName": "SharePoint Permissions", + "description": "Site and document library permission assignments, including libraries that no longer inherit and grants to tenant-wide claims such as Everyone except external users" + }, { "type": "OfficeActivations", "friendlyName": "Office Activations", @@ -383,5 +398,10 @@ "type": "ExoTransportConfig", "friendlyName": "Exchange Transport Config", "description": "Exchange Online transport configuration including SMTP authentication settings" + }, + { + "type": "DefenderCVEs", + "friendlyName": "Defender CVEs", + "description": "All Defender CVEs for Devices" } ] diff --git a/Config/CIPPTimers.json b/Config/CIPPTimers.json index 63203c303ab83..ac1ce7ba5b1b6 100644 --- a/Config/CIPPTimers.json +++ b/Config/CIPPTimers.json @@ -19,34 +19,14 @@ }, { "Id": "44a40668-ed71-403c-8c26-b32e320086ad", - "Command": "Start-AuditLogOrchestrator", - "Description": "Orchestrator to download audit logs", + "Command": "Start-AuditLogPlannerV2", + "Description": "Audit log V2 planner: create searches, download and process", "Cron": "0 */15 * * * *", "Priority": 2, "RunOnProcessor": true, "PreferredProcessor": "auditlog", "IsSystem": true }, - { - "Id": "01cd512a-15c4-44a9-b8cb-1e5d879cfd2d", - "Command": "Start-AuditLogProcessingOrchestrator", - "Description": "Orchestrator to process audit logs", - "Cron": "0 */15 * * * *", - "Priority": 3, - "RunOnProcessor": true, - "PreferredProcessor": "auditlog", - "IsSystem": true - }, - { - "Id": "03475c86-4314-4d7b-90f2-5a0639e3899b", - "Command": "Start-AuditLogSearchCreation", - "Description": "Timer to create audit log searches", - "Cron": "0 */30 * * * *", - "Priority": 4, - "RunOnProcessor": true, - "PreferredProcessor": "auditlog", - "IsSystem": true - }, { "Id": "5ff6c500-e420-4a3b-8532-ace2e4da4f7d", "Command": "Start-ApplicationOrchestrator", diff --git a/Config/FeatureFlags.json b/Config/FeatureFlags.json index e90b238e94beb..7000dadc754e9 100644 --- a/Config/FeatureFlags.json +++ b/Config/FeatureFlags.json @@ -25,7 +25,7 @@ { "Id": "SuperAdminNG", "Name": "Super Admin", - "Description": "Additional super admin pages for CIPP instances (CIPP Users, SSO, Container management).", + "Description": "Additional super admin pages for CIPP instances (CIPP Users, SSO, Container management, Custom Domains).", "Enabled": false, "AllowUserToggle": false, "Timers": [], @@ -33,42 +33,19 @@ "ExecCIPPUsers", "ListCIPPUsers", "ExecContainerManagement", + "ExecAppServiceDomains", "ListContainerLogs", "ListWorkerHealth" ], "Pages": [ "/cipp/advanced/super-admin/cipp-users", "/cipp/advanced/super-admin/container", + "/cipp/advanced/super-admin/custom-domains", "/cipp/advanced/container-logs", "/cipp/advanced/worker-health" ], "Hidden": true }, - { - "Id": "CopilotAI", - "Name": "Copilot & AI", - "Description": "Under Development: Microsoft 365 Copilot and AI management pages including settings, usage reports, Agent365 packages, and Shadow AI analysis.", - "Enabled": false, - "AllowUserToggle": false, - "Timers": [], - "Endpoints": [ - "ListCopilotSettings", - "ExecCopilotSettings", - "ListCopilotUsage", - "ListAgent365Packages", - "ListAgent365PackageDetail", - "ListShadowAI" - ], - "Pages": [ - "/copilot/settings", - "/copilot/shadow-ai", - "/copilot/agent365/packages", - "/copilot/reports/copilot-adoption", - "/copilot/reports/copilot-usage", - "/copilot/reports/copilot-trend" - ], - "Hidden": true - }, { "Id": "MCPServer", "Name": "MCP Server", @@ -96,5 +73,35 @@ "/cipp/advanced/diagnostics" ], "Hidden": true + }, + { + "Id": "BackendSettings", + "Name": "Backend Settings", + "Description": "Backend settings page showing Azure resource URLs. Hidden on hosted instances.", + "Enabled": true, + "AllowUserToggle": false, + "Timers": [], + "Endpoints": [ + "ExecBackendURLs" + ], + "Pages": [ + "/cipp/settings/backend" + ], + "Hidden": true + }, + { + "Id": "FunctionOffloading", + "Name": "Function Offloading", + "Description": "Function offloading configuration page. Hidden in CIPP-NG.", + "Enabled": true, + "AllowUserToggle": false, + "Timers": [], + "Endpoints": [ + "ExecOffloadFunctions" + ], + "Pages": [ + "/cipp/advanced/super-admin/function-offloading" + ], + "Hidden": true } ] diff --git a/Config/MaliciousApps.json b/Config/MaliciousApps.json new file mode 100644 index 0000000000000..b212e1153a8ea --- /dev/null +++ b/Config/MaliciousApps.json @@ -0,0 +1,1074 @@ +{ + "metadata": { + "name": "CIPP Malicious Applications", + "description": "Curated list of OAuth / Entra ID enterprise applications that have been observed being abused by threat actors against Microsoft 365 tenants. Entries are matched on appId (the Application/Client ID of the service principal that appears in a tenant after consent).", + "permissionTypes": [ + "Delegated", + "Application" + ], + "resources": [ + "Microsoft Graph", + "Office 365 Exchange Online", + "SharePoint" + ], + "categoryDefinitions": { + "Mailbox exfiltration": "Application synchronizes or exports the contents of a user's mailbox, enabling bulk theft of email.", + "Address book exfiltration": "Application harvests contacts or directory information for reconnaissance and follow-on phishing.", + "Sharepoint/OneDrive exfiltration": "Application reads or downloads files from SharePoint Online or OneDrive for Business.", + "Data exfiltration": "Application is used to move data out of the tenant to an attacker-controlled location.", + "Reconnaissance": "Application is used to enumerate users, contacts, or organizational data to identify targets.", + "Phishing": "Application is used to send phishing email or otherwise facilitate phishing campaigns.", + "Persistence": "Application grants the attacker durable, consent-based access that survives a password reset.", + "Business Email Compromise": "Application observed as part of a BEC intrusion (mailbox access, fraudulent email, financial redirection)." + }, + "applicationFields": { + "name": "Display name of the application as it appears on the consent screen / enterprise application.", + "appId": "Application (client) ID of the service principal. Primary key used for detection.", + "description": "What the application is / does.", + "categories": "Controlled-vocabulary classifications (see categoryDefinitions).", + "tags": "Free-form labels.", + "permissions": "Array of { scope, type, resource } granted to or requested by the app.", + "mitreAttackIds": "Relevant MITRE ATT&CK technique IDs.", + "publisher": "Publisher identity { name, id, verified } where known.", + "appOwnerOrganizationId": "Tenant ID that owns the multi-tenant application, where known.", + "references": "Write-ups, threat-intel articles, or official documentation.", + "detection": "Hunting / detection guidance specific to this application.", + "relatedAppIds": "appIds of related entries (e.g. renamed versions of the same app).", + "notes": "Caveats, data-quality flags, or additional context." + } + }, + "applications": [ + { + "name": "CloudSponge", + "appId": "a43e5392-f48b-46a4-a0f1-098b5eeb4757", + "description": "CloudSponge is a software-as-a-service product that imports contacts from all the major address books. It is embedded by websites so that users do not have to type email addresses into referral / invite forms.", + "categories": [ + "Address book exfiltration" + ], + "tags": [], + "permissions": [], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "CubeBackup", + "appId": "412445a2-0794-487e-9dd6-d57d9593b249", + "description": "CubeBackup is a self-hosted cloud backup solution that integrates with Microsoft 365, including Exchange Online, SharePoint and OneDrive. With sufficient privileges it can be leveraged by threat actors to conduct automated, mass exfiltration from a victim's environment.", + "categories": [ + "Data exfiltration", + "Mailbox exfiltration", + "Sharepoint/OneDrive exfiltration", + "Business Email Compromise" + ], + "tags": [ + "BEC", + "Exfiltration" + ], + "permissions": [ + { + "scope": "Calendars.ReadWrite", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Channel.Create", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Channel.ReadBasic.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "ChannelMember.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "ChannelMessage.Read.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "ChannelSettings.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Contacts.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Directory.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Files.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Group.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.ReadWrite", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Sites.FullControl.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Team.Create", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "Team.ReadBasic.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "TeamMember.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "TeamSettings.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "TeamsTab.Create", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "TeamsTab.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "TeamsAppInstallation.ReadWriteForTeam.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "User.ReadWrite.All", + "type": "Application", + "resource": "Microsoft Graph" + }, + { + "scope": "full_access_as_app", + "type": "Application", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "Sites.FullControl.All", + "type": "Application", + "resource": "SharePoint" + } + ], + "mitreAttackIds": [ + "T1537", + "T1567", + "T1020" + ], + "publisher": { + "name": "CubeBackup, Inc.", + "id": "cubebackupinc1662619479161", + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://www.cubebackup.com/" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Edison Mail", + "appId": "62db40a4-2c7e-4373-a609-eda138798962", + "description": "Email client with full Microsoft 365 synchronization capabilities.", + "categories": [ + "Mailbox exfiltration" + ], + "tags": [], + "permissions": [], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [], + "detection": "Unified Audit Log typically records synced items as MailItemsAccessed events. Hunt by App ID.", + "relatedAppIds": [], + "notes": null + }, + { + "name": "eM Client", + "appId": "e9a7fea1-1cc0-4cd9-a31b-9137ca5deedd", + "description": "eM Client is a desktop email client with full Microsoft Office 365 synchronization. Abused to bulk-synchronize and exfiltrate a compromised mailbox and to maintain access.", + "categories": [ + "Mailbox exfiltration", + "Persistence" + ], + "tags": [], + "permissions": [ + { + "scope": "EWS.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "email", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://www.huntress.com/blog/legitimate-apps-as-traitorware-for-persistent-microsoft-365-compromise", + "https://cybercorner.tech/malicious-usage-of-em-client-in-business-email-compromise/" + ], + "detection": "Unified Audit Log typically records synced items as MailItemsAccessed events. Hunt by App ID.", + "relatedAppIds": [], + "notes": null + }, + { + "name": "Fastmail", + "appId": "77468577-4f6e-40e7-b745-11d3d0c28095", + "description": "Fastmail is an alternative email service that allows import/export from various email providers, including Microsoft 365. If a victim consents, all email can be exfiltrated to an attacker-controlled Fastmail account, with the option to continue exfiltrating mail post-consent.", + "categories": [ + "Mailbox exfiltration", + "Persistence" + ], + "tags": [ + "Persistence", + "Exfiltration" + ], + "permissions": [ + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "email", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "IMAP.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "SMTP.Send", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + } + ], + "mitreAttackIds": [ + "T1114.002", + "T1567.002", + "T1136.003", + "T1098.001" + ], + "publisher": { + "name": null, + "id": null, + "verified": false + }, + "appOwnerOrganizationId": "9188040d-6c67-4c5b-b112-36a304b66dad", + "references": [ + "https://x.com/mwaski88/status/1775904383382802502", + "https://cybercorner.tech/common-oauth-apps-used-in-business-email-compromise/#Fastmail", + "https://www.fastmail.help/hc/en-us/articles/360060590593-Migrate-to-Fastmail-from-another-provider" + ], + "detection": null, + "relatedAppIds": [], + "notes": "appOwnerOrganizationId 9188040d-6c67-4c5b-b112-36a304b66dad is the Microsoft consumer (personal accounts) tenant. Publisher reported as not verified." + }, + { + "name": "Foxmail", + "appId": "231575bc-9f6c-4539-9241-5cfae696b630", + "description": "Foxmail is a desktop email client. Observed consented in a business email compromise with the full set of legacy Exchange protocol scopes, enabling full mailbox synchronization.", + "categories": [ + "Mailbox exfiltration", + "Business Email Compromise" + ], + "tags": [ + "BEC" + ], + "permissions": [ + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "email", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "POP.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "IMAP.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "SMTP.Send", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "EAS.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "EWS.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Horizon Tech", + "appId": "b1c4926a-5fb6-4aad-b920-709c957be148", + "description": "Pulls email and contacts and sends phishing emails from the compromised mailbox.", + "categories": [ + "Mailbox exfiltration", + "Address book exfiltration", + "Phishing", + "Persistence", + "Business Email Compromise" + ], + "tags": [ + "BEC", + "persistence", + "spam", + "phishing", + "email abuse" + ], + "permissions": [ + { + "scope": "Mail.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.ReadBasic.All", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Send", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxSettings.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [ + "T1114", + "T1566", + "T1071.001" + ], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Jotform", + "appId": "9af771d1-1288-43f0-91a6-adadcbd212b5", + "description": "Jotform is an online form and survey builder. Abused as a native phishing / spam vector after Microsoft 365 SSO consent.", + "categories": [ + "Phishing", + "Business Email Compromise" + ], + "tags": [ + "BEC", + "spam", + "phishing" + ], + "permissions": [ + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": "261450de-982f-4efb-a5fe-0fc2d9d08717", + "references": [ + "https://www.jotform.com", + "https://www.bleepingcomputer.com/news/security/the-rise-of-native-phishing-microsoft-365-apps-abused-in-attacks/" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Mail_Backup", + "appId": "2ef68ccc-8a4d-42ff-ae88-2d7bb89ad139", + "description": "Exports mailboxes for backup purposes; used by threat actors to exfiltrate email. This is the renamed successor to PerfectData Software.", + "categories": [ + "Mailbox exfiltration" + ], + "tags": [], + "permissions": [ + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxFolder.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Contacts.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Calendars.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxSettings.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxFolder.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://cybercorner.tech/malicious-azure-application-perfectdata-software-and-office365-business-email-compromise/", + "https://darktrace.com/blog/how-abuse-of-perfectdata-software-may-create-a-perfect-storm-an-emerging-trend-in-account-takeovers", + "https://www.secureworks.com/blog/qr-phishing-leads-to-microsoft-365-account-compromise" + ], + "detection": "Updated version of PerfectData Software. Unified Audit Log surfaces synced items as MailItemsAccessed events. Hunt by App ID.", + "relatedAppIds": [ + "ff8d92dc-3d82-41d6-bcbd-b9174d163620" + ], + "notes": null + }, + { + "name": "Newsletter Software Supermailer", + "appId": "a245e8c0-b53c-4b67-9b45-751d1dff8e6b", + "description": "Bulk email sending software. Abused to send phishing / spam from a compromised mailbox.", + "categories": [ + "Phishing" + ], + "tags": [], + "permissions": [ + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Send", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Contacts.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://www.huntress.com/blog/legitimate-apps-as-traitorware-for-persistent-microsoft-365-compromise" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "PerfectData Software", + "appId": "ff8d92dc-3d82-41d6-bcbd-b9174d163620", + "description": "Exports mailboxes for backup purposes. Widely abused for Office 365 business email compromise to bulk-export a victim mailbox.", + "categories": [ + "Mailbox exfiltration" + ], + "tags": [], + "permissions": [ + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "EWS.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://cybercorner.tech/malicious-azure-application-perfectdata-software-and-office365-business-email-compromise/", + "https://darktrace.com/blog/how-abuse-of-perfectdata-software-may-create-a-perfect-storm-an-emerging-trend-in-account-takeovers", + "https://www.secureworks.com/blog/qr-phishing-leads-to-microsoft-365-account-compromise" + ], + "detection": "The Unified Audit Log initially did not record items synced by this app; it now surfaces them as MailItemsAccessed events. Hunt by App ID.", + "relatedAppIds": [ + "2ef68ccc-8a4d-42ff-ae88-2d7bb89ad139" + ], + "notes": "Renamed/superseded by 'Mail_Backup' (2ef68ccc-8a4d-42ff-ae88-2d7bb89ad139)." + }, + { + "name": "PostBox", + "appId": "179d5108-412b-4c95-8e34-06786784ab39", + "description": "Desktop email client with full Microsoft 365 synchronization capabilities. Abused for mailbox exfiltration and persistence.", + "categories": [ + "Mailbox exfiltration", + "Persistence" + ], + "tags": [], + "permissions": [ + { + "scope": "IMAP.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "POP.AccessAsUser.All", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "SMTP.Send", + "type": "Delegated", + "resource": "Office 365 Exchange Online" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "rclone", + "appId": "4761b959-9780-4c2d-87a3-512b4638f767", + "description": "rclone is a command-line program for managing files across cloud storage providers. Abused to bulk-download SharePoint Online / OneDrive content from a compromised tenant.", + "categories": [ + "Data exfiltration", + "Sharepoint/OneDrive exfiltration" + ], + "tags": [], + "permissions": [ + { + "scope": "Files.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Files.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Files.Read.All", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Files.ReadWrite.All", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Sites.Read.All", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://www.kroll.com/en/insights/publications/cyber/new-m365-business-email-compromise-attacks-with-rclone" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "SigParser", + "appId": "caffae8c-0882-4c81-9a27-d1803af53a40", + "description": "SigParser scans emails, calendars, address books, spreadsheets and more to automatically generate profiles on the people and companies who have interacted with a business. Abused for address-book / contact harvesting.", + "categories": [ + "Address book exfiltration" + ], + "tags": [], + "permissions": [], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://sigparser.com/" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Spike", + "appId": "946c777c-bc85-489e-b034-392389ae23d6", + "description": "Spike is a conversational email client and team-collaboration app. Abused for mailbox exfiltration, persistence and phishing.", + "categories": [ + "Mailbox exfiltration", + "Persistence", + "Phishing" + ], + "tags": [], + "permissions": [ + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Send", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "People.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxSettings.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Calendars.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": null, + "references": [ + "https://darktrace.com/blog/breakdown-of-a-multi-account-compromise-within-office-365" + ], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "Teleforge Directory", + "appId": "1a9b8d93-0d60-4835-896f-83016de95ff5", + "description": "Used for business email compromise. Installed shortly after a breach and after an additional MFA authentication device was added; data was collected for roughly a week, after which fraudulent emails were sent.", + "categories": [ + "Business Email Compromise", + "Mailbox exfiltration" + ], + "tags": [ + "BEC" + ], + "permissions": [ + { + "scope": "Mail.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.ReadBasic.All", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Send", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxSettings.ReadWrite", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [ + "T1119" + ], + "publisher": { + "name": "Unknown (deleted before recorded)", + "id": null, + "verified": null + }, + "appOwnerOrganizationId": "aa68a5d2-2ee2-4ff7-8193-3d037ab704b1", + "references": [], + "detection": null, + "relatedAppIds": [], + "notes": null + }, + { + "name": "ZoomInfo Communitiez Login", + "appId": "497ac034-5120-4c1a-929a-0351f5c09918", + "description": "Service principal consented to when the 'My Connections' feature within ZoomInfo is used. This feature extracts address-book and other contact information from the victim account, enabling target discovery, exfiltration and targeted phishing.", + "categories": [ + "Address book exfiltration", + "Reconnaissance", + "Phishing", + "Persistence" + ], + "tags": [ + "Discovery", + "Exfiltration", + "Persistence", + "Phishing" + ], + "permissions": [ + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Contacts.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "Mail.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "User.ReadBasic.All", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "email", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "offline_access", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "MailboxSettings.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [ + "T1530", + "T1567", + "T1087.003" + ], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": "945a9641-35c7-435c-a5a0-c8753e6dff88", + "references": [ + "https://cybercorner.tech/common-oauth-apps-used-in-business-email-compromise/#ZoomInfo" + ], + "detection": null, + "relatedAppIds": [ + "858d7e42-35f0-44b7-9033-df309239a47f" + ], + "notes": null + }, + { + "name": "Zoominfo Login", + "appId": "858d7e42-35f0-44b7-9033-df309239a47f", + "description": "ZoomInfo is a B2B business-intelligence platform with a large database of company and contact information. It can be used via SSO with a Microsoft 365 account, which creates this service principal in the tenant and can be abused for persistence and contact harvesting.", + "categories": [ + "Address book exfiltration", + "Persistence" + ], + "tags": [ + "persistence" + ], + "permissions": [ + { + "scope": "User.Read", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "email", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "openid", + "type": "Delegated", + "resource": "Microsoft Graph" + }, + { + "scope": "profile", + "type": "Delegated", + "resource": "Microsoft Graph" + } + ], + "mitreAttackIds": [ + "T1136.003" + ], + "publisher": { + "name": null, + "id": null, + "verified": null + }, + "appOwnerOrganizationId": "945a9641-35c7-435c-a5a0-c8753e6dff88", + "references": [ + "https://cybercorner.tech/common-oauth-apps-used-in-business-email-compromise/#ZoomInfo", + "https://abnormalsecurity.com/blog/cybercriminals-exploit-b2b-lead-generation-tools" + ], + "detection": null, + "relatedAppIds": [ + "497ac034-5120-4c1a-929a-0351f5c09918" + ], + "notes": null + } + ] +} diff --git a/Config/PermissionsTranslator.json b/Config/PermissionsTranslator.json index 52f29c1194335..c8a297b6e546d 100644 --- a/Config/PermissionsTranslator.json +++ b/Config/PermissionsTranslator.json @@ -5363,6 +5363,15 @@ "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 Teams user configurations", + "displayName": "Read Teams user configurations", + "id": "5c469ce4-dab5-4afd-b9de-14f1ba4004a7", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's user configurations on behalf of the signed-in admin user. User configuration may include attributes related to user, such as telephone number, assigned policies, etc.", + "userConsentDisplayName": "Read Teams user configurations", + "value": "TeamsUserConfiguration.Read.All" + }, { "description": "Read and Modify Tenant-Acquired Telephone Number Details", "displayName": "Read and Modify Tenant-Acquired Telephone Number Details", @@ -5371,5 +5380,32 @@ "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" + }, + { + "description": "Read Teams user configurations", + "displayName": "Read Teams user configurations", + "id": "a91eadaf-2c3c-4362-908b-fb172d208fc6", + "Origin": "Application", + "userConsentDescription": "Allows the app to read your tenant's user configurations, without a signed-in user. User configuration may include attributes related to user, such as telephone number, assigned policies, etc.", + "userConsentDisplayName": "Read Teams user configurations", + "value": "TeamsUserConfiguration.Read.All" + }, + { + "description": "Allows the app to read and write Copilot policy settings for the organization, on behalf of the signed-in user.", + "displayName": "Read and write Copilot policy settings", + "id": "e2edbde8-4448-4e49-8ebb-d53ba72df0f3", + "Origin": "Delegated", + "userConsentDescription": "Allows the app to read and write Copilot policy settings for the organization, on your behalf.", + "userConsentDisplayName": "Read and write Copilot policy settings", + "value": "CopilotPolicySettings.ReadWrite" + }, + { + "description": "Allows the app to read and write Copilot policy settings for the organization, without a signed-in user.", + "displayName": "Read and write Copilot policy settings", + "id": "cc147c17-b8e8-4d3f-9f94-aa9e279a079a", + "Origin": "Application", + "userConsentDescription": "Allows the app to read and write Copilot policy settings for the organization, without a signed-in user.", + "userConsentDisplayName": "Read and write Copilot policy settings", + "value": "CopilotPolicySettings.ReadWrite" } ] diff --git a/Config/SAMManifest.json b/Config/SAMManifest.json index 8868687473b2f..b3e135310de40 100644 --- a/Config/SAMManifest.json +++ b/Config/SAMManifest.json @@ -235,6 +235,10 @@ "id": "0a42382f-155c-4eb1-9bdc-21548ccaa387", "type": "Role" }, + { + "id": "a91eadaf-2c3c-4362-908b-fb172d208fc6", + "type": "Role" + }, { "id": "a94a502d-0281-4d15-8cd2-682ac9362c4c", "type": "Role" @@ -559,6 +563,10 @@ "id": "424b07a8-1209-4d17-9fe4-9018a93a1024", "type": "Scope" }, + { + "id": "5c469ce4-dab5-4afd-b9de-14f1ba4004a7", + "type": "Scope" + }, { "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", "type": "Scope" @@ -582,6 +590,42 @@ { "id": "b7887744-6746-4312-813d-72daeaee7e2d", "type": "Scope" + }, + { + "id": "dd199f4a-f148-40a4-a2ec-f0069cc799ec", + "type": "Role" + }, + { + "id": "8c026be3-8e26-4774-9372-8d5d6f21daff", + "type": "Scope" + }, + { + "id": "fee28b28-e1f3-4841-818e-2704dc62245f", + "type": "Role" + }, + { + "id": "62ade113-f8e0-4bf9-a6ba-5acb31db32fd", + "type": "Scope" + }, + { + "id": "9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8", + "type": "Role" + }, + { + "id": "31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad", + "type": "Role" + }, + { + "id": "1ff1be21-34eb-448c-9ac9-ce1f506b2a68", + "type": "Scope" + }, + { + "id": "cc147c17-b8e8-4d3f-9f94-aa9e279a079a", + "type": "Role" + }, + { + "id": "e2edbde8-4448-4e49-8ebb-d53ba72df0f3", + "type": "Scope" } ] }, @@ -655,6 +699,10 @@ { "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0", "type": "Scope" + }, + { + "id": "678536fe-1083-478a-9c59-b99265e6b0d3", + "type": "Role" } ] }, @@ -685,4 +733,4 @@ "isEnabled": true, "allProperties": true } -} \ No newline at end of file +} diff --git a/Config/ShadowAI.json b/Config/ShadowAI.json index 081ecc500456c..05481845dce75 100644 --- a/Config/ShadowAI.json +++ b/Config/ShadowAI.json @@ -1,176 +1,176 @@ [ - { "name": "Azure OpenAI", "vendor": "Microsoft", "category": "AI Platform & API", "risk": "Low", "matchNames": ["azure openai"], "appIds": [] }, - { "name": "GitHub Copilot", "vendor": "GitHub", "category": "AI Coding", "risk": "Medium", "matchNames": ["github copilot"], "appIds": [] }, - { "name": "OpenAI Codex", "vendor": "OpenAI", "category": "AI Coding", "risk": "High", "matchNames": ["codex"], "appIds": [] }, - { "name": "OpenAI Sora", "vendor": "OpenAI", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["sora"], "appIds": [] }, - { "name": "ChatGPT", "vendor": "OpenAI", "category": "AI Assistant", "risk": "High", "matchNames": ["chatgpt", "openai"], "appIds": [] }, - { "name": "Claude", "vendor": "Anthropic", "category": "AI Assistant", "risk": "Medium", "matchNames": ["claude", "anthropic"], "appIds": [] }, - { "name": "NotebookLM", "vendor": "Google", "category": "AI Search & Research", "risk": "Low", "matchNames": ["notebooklm"], "appIds": [] }, - { "name": "Google Gemini", "vendor": "Google", "category": "AI Assistant", "risk": "Medium", "matchNames": ["gemini"], "appIds": [] }, - { "name": "Google Antigravity", "vendor": "Google", "category": "AI Coding", "risk": "Medium", "matchNames": ["antigravity"], "appIds": [] }, - { "name": "Vertex AI", "vendor": "Google", "category": "AI Platform & API", "risk": "Low", "matchNames": ["vertex ai"], "appIds": [] }, - { "name": "Microsoft Copilot", "vendor": "Microsoft", "category": "AI Assistant", "risk": "Low", "matchNames": ["copilot"], "appIds": [] }, - { "name": "Perplexity", "vendor": "Perplexity AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["perplexity"], "appIds": [] }, - { "name": "DeepSeek", "vendor": "DeepSeek", "category": "AI Assistant", "risk": "High", "matchNames": ["deepseek"], "appIds": [] }, - { "name": "Grok", "vendor": "xAI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["grok", "x.ai"], "appIds": [] }, - { "name": "Mistral Le Chat", "vendor": "Mistral AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["mistral"], "appIds": [] }, - { "name": "Meta AI", "vendor": "Meta", "category": "AI Assistant", "risk": "Medium", "matchNames": ["meta ai", "llama.cpp"], "appIds": [] }, - { "name": "Qwen", "vendor": "Alibaba", "category": "AI Assistant", "risk": "High", "matchNames": ["qwen"], "appIds": [] }, - { "name": "Kimi", "vendor": "Moonshot AI", "category": "AI Assistant", "risk": "High", "matchNames": ["kimi", "moonshot ai"], "appIds": [] }, - { "name": "Poe", "vendor": "Quora", "category": "AI Assistant", "risk": "Medium", "matchNames": ["poe by quora", "quora"], "appIds": [] }, - { "name": "You.com", "vendor": "You.com", "category": "AI Assistant", "risk": "Medium", "matchNames": ["you.com"], "appIds": [] }, - { "name": "Pi", "vendor": "Inflection AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["inflection"], "appIds": [] }, - { "name": "Character.AI", "vendor": "Character Technologies", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["character.ai", "character ai"], "appIds": [] }, - { "name": "Candy.AI", "vendor": "Candy.AI", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["candy.ai"], "appIds": [] }, - { "name": "Janitor AI", "vendor": "JanitorAI", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["janitor ai", "janitorai"], "appIds": [] }, - { "name": "Crushon AI", "vendor": "Crushon", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["crushon"], "appIds": [] }, - { "name": "FlowGPT", "vendor": "FlowGPT", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["flowgpt"], "appIds": [] }, - { "name": "Cursor", "vendor": "Anysphere", "category": "AI Coding", "risk": "Medium", "matchNames": ["cursor"], "appIds": [] }, - { "name": "Codeium / Windsurf", "vendor": "Codeium", "category": "AI Coding", "risk": "Medium", "matchNames": ["codeium", "windsurf"], "appIds": [] }, - { "name": "Tabnine", "vendor": "Tabnine", "category": "AI Coding", "risk": "Medium", "matchNames": ["tabnine"], "appIds": [] }, - { "name": "Sourcegraph Cody", "vendor": "Sourcegraph", "category": "AI Coding", "risk": "Medium", "matchNames": ["sourcegraph", "cody"], "appIds": [] }, - { "name": "Aider", "vendor": "Aider", "category": "AI Coding", "risk": "Medium", "matchNames": ["aider"], "appIds": [] }, - { "name": "Amazon Q / CodeWhisperer", "vendor": "Amazon", "category": "AI Coding", "risk": "Medium", "matchNames": ["codewhisperer", "amazon q"], "appIds": [] }, - { "name": "Amazon Bedrock", "vendor": "Amazon", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["bedrock"], "appIds": [] }, - { "name": "Amazon Kiro", "vendor": "Amazon", "category": "AI Coding", "risk": "Medium", "matchNames": ["kiro"], "appIds": [] }, - { "name": "Replit", "vendor": "Replit", "category": "AI Coding", "risk": "High", "matchNames": ["replit"], "appIds": [] }, - { "name": "Lovable", "vendor": "Lovable", "category": "AI Coding", "risk": "High", "matchNames": ["lovable"], "appIds": [] }, - { "name": "Bolt.new", "vendor": "StackBlitz", "category": "AI Coding", "risk": "High", "matchNames": ["bolt.new", "stackblitz"], "appIds": [] }, - { "name": "v0", "vendor": "Vercel", "category": "AI Coding", "risk": "High", "matchNames": ["v0.dev"], "appIds": [] }, - { "name": "Devin", "vendor": "Cognition", "category": "AI Coding", "risk": "High", "matchNames": ["devin ai", "cognition labs"], "appIds": [] }, - { "name": "Continue", "vendor": "Continue", "category": "AI Coding", "risk": "Medium", "matchNames": ["continue.dev"], "appIds": [] }, - { "name": "Cline", "vendor": "Cline", "category": "AI Coding", "risk": "Medium", "matchNames": ["cline"], "appIds": [] }, - { "name": "Roo Code", "vendor": "Roo Code", "category": "AI Coding", "risk": "Medium", "matchNames": ["roo code"], "appIds": [] }, - { "name": "Qodo", "vendor": "Qodo", "category": "AI Coding", "risk": "Medium", "matchNames": ["qodo"], "appIds": [] }, - { "name": "Warp", "vendor": "Warp", "category": "AI Coding", "risk": "Medium", "matchNames": ["warp.dev"], "appIds": [] }, - { "name": "Visual Studio Code", "vendor": "Microsoft", "category": "AI-Capable Editor", "risk": "Informational", "matchNames": ["visual studio code", "vscode"], "appIds": [] }, - { "name": "JetBrains AI", "vendor": "JetBrains", "category": "AI-Capable Editor", "risk": "Low", "matchNames": ["jetbrains ai"], "appIds": [] }, - { "name": "Ollama", "vendor": "Ollama", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["ollama"], "appIds": [] }, - { "name": "LM Studio", "vendor": "LM Studio", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["lm studio", "lmstudio"], "appIds": [] }, - { "name": "GPT4All", "vendor": "Nomic AI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["gpt4all"], "appIds": [] }, - { "name": "Jan", "vendor": "Jan", "category": "Local AI Runtime", "risk": "Low", "matchNames": ["jan.ai"], "appIds": [] }, - { "name": "Open WebUI", "vendor": "Open WebUI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["open webui"], "appIds": [] }, - { "name": "AnythingLLM", "vendor": "Mintplex Labs", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["anythingllm"], "appIds": [] }, - { "name": "Oobabooga", "vendor": "Community", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["oobabooga"], "appIds": [] }, - { "name": "KoboldCpp", "vendor": "Community", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["koboldcpp"], "appIds": [] }, - { "name": "LocalAI", "vendor": "LocalAI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["localai"], "appIds": [] }, - { "name": "Msty", "vendor": "Msty", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["msty"], "appIds": [] }, - { "name": "OpenClaw / Claw", "vendor": "Community", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["claw"], "appIds": [] }, - { "name": "AutoGPT", "vendor": "Significant Gravitas", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["autogpt"], "appIds": [] }, - { "name": "AgentGPT", "vendor": "Reworkd", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["agentgpt"], "appIds": [] }, - { "name": "BabyAGI", "vendor": "Community", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["babyagi"], "appIds": [] }, - { "name": "Manus", "vendor": "Monica", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["manus ai", "manus.im"], "appIds": [] }, - { "name": "LangChain", "vendor": "LangChain", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["langchain"], "appIds": [] }, - { "name": "LlamaIndex", "vendor": "LlamaIndex", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["llamaindex"], "appIds": [] }, - { "name": "CrewAI", "vendor": "CrewAI", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["crewai"], "appIds": [] }, - { "name": "n8n", "vendor": "n8n", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["n8n"], "appIds": [] }, - { "name": "Zapier", "vendor": "Zapier", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["zapier"], "appIds": [] }, - { "name": "Make", "vendor": "Make", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["make.com"], "appIds": [] }, - { "name": "Lindy", "vendor": "Lindy", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["lindy"], "appIds": [] }, - { "name": "Relevance AI", "vendor": "Relevance AI", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["relevance ai"], "appIds": [] }, - { "name": "Dust", "vendor": "Dust", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["dust.tt"], "appIds": [] }, - { "name": "Bardeen", "vendor": "Bardeen", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["bardeen"], "appIds": [] }, - { "name": "Gumloop", "vendor": "Gumloop", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["gumloop"], "appIds": [] }, - { "name": "Browse AI", "vendor": "Browse AI", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["browse ai"], "appIds": [] }, - { "name": "Midjourney", "vendor": "Midjourney", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["midjourney"], "appIds": [] }, - { "name": "Stable Diffusion", "vendor": "Stability AI", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["stable diffusion", "stability ai"], "appIds": [] }, - { "name": "DALL-E", "vendor": "OpenAI", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["dall-e", "dalle"], "appIds": [] }, - { "name": "Adobe Firefly", "vendor": "Adobe", "category": "AI Image & Design", "risk": "Low", "matchNames": ["firefly"], "appIds": [] }, - { "name": "Canva", "vendor": "Canva", "category": "AI Image & Design", "risk": "Informational", "matchNames": ["canva"], "appIds": [] }, - { "name": "Leonardo AI", "vendor": "Leonardo.Ai", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["leonardo.ai", "leonardo ai"], "appIds": [] }, - { "name": "Ideogram", "vendor": "Ideogram", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["ideogram"], "appIds": [] }, - { "name": "Krea", "vendor": "Krea", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["krea.ai"], "appIds": [] }, - { "name": "ComfyUI", "vendor": "Comfy Org", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["comfyui"], "appIds": [] }, - { "name": "Automatic1111", "vendor": "Community", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["automatic1111"], "appIds": [] }, - { "name": "InvokeAI", "vendor": "Invoke", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["invokeai"], "appIds": [] }, - { "name": "Remove.bg", "vendor": "Kaleido", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["remove.bg"], "appIds": [] }, - { "name": "Photoroom", "vendor": "Photoroom", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["photoroom"], "appIds": [] }, - { "name": "Synthesia", "vendor": "Synthesia", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["synthesia"], "appIds": [] }, - { "name": "HeyGen", "vendor": "HeyGen", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["heygen"], "appIds": [] }, - { "name": "RunwayML", "vendor": "Runway", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["runwayml", "runway ml"], "appIds": [] }, - { "name": "Descript", "vendor": "Descript", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["descript"], "appIds": [] }, - { "name": "OpusClip", "vendor": "OpusClip", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["opusclip", "opus clip"], "appIds": [] }, - { "name": "Veed", "vendor": "Veed", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["veed.io"], "appIds": [] }, - { "name": "Pika", "vendor": "Pika Labs", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["pika labs"], "appIds": [] }, - { "name": "Luma", "vendor": "Luma AI", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["luma ai", "lumalabs"], "appIds": [] }, - { "name": "Pictory", "vendor": "Pictory", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["pictory"], "appIds": [] }, - { "name": "InVideo", "vendor": "InVideo", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["invideo"], "appIds": [] }, - { "name": "CapCut", "vendor": "ByteDance", "category": "AI Video & Audio", "risk": "High", "matchNames": ["capcut"], "appIds": [] }, - { "name": "ElevenLabs", "vendor": "ElevenLabs", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["elevenlabs"], "appIds": [] }, - { "name": "Murf", "vendor": "Murf", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["murf"], "appIds": [] }, - { "name": "Play.ht", "vendor": "PlayHT", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["play.ht"], "appIds": [] }, - { "name": "Speechify", "vendor": "Speechify", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["speechify"], "appIds": [] }, - { "name": "Suno", "vendor": "Suno", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["suno"], "appIds": [] }, - { "name": "Otter.ai", "vendor": "Otter", "category": "AI Meeting Notetaker", "risk": "High", "matchNames": ["otter.ai"], "appIds": [] }, - { "name": "Fireflies.ai", "vendor": "Fireflies", "category": "AI Meeting Notetaker", "risk": "High", "matchNames": ["fireflies"], "appIds": [] }, - { "name": "Fathom", "vendor": "Fathom", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["fathom"], "appIds": [] }, - { "name": "tl;dv", "vendor": "tldv", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["tldv", "tl;dv"], "appIds": [] }, - { "name": "Read AI", "vendor": "Read", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["read.ai"], "appIds": [] }, - { "name": "Krisp", "vendor": "Krisp", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["krisp"], "appIds": [] }, - { "name": "Sembly", "vendor": "Sembly AI", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["sembly"], "appIds": [] }, - { "name": "Avoma", "vendor": "Avoma", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["avoma"], "appIds": [] }, - { "name": "MeetGeek", "vendor": "MeetGeek", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["meetgeek"], "appIds": [] }, - { "name": "Supernormal", "vendor": "Supernormal", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["supernormal"], "appIds": [] }, - { "name": "Granola", "vendor": "Granola", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["granola"], "appIds": [] }, - { "name": "Grammarly", "vendor": "Grammarly", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["grammarly"], "appIds": [] }, - { "name": "Jasper", "vendor": "Jasper", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["jasper.ai"], "appIds": [] }, - { "name": "QuillBot", "vendor": "QuillBot", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["quillbot"], "appIds": [] }, - { "name": "Wordtune", "vendor": "AI21 Labs", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["wordtune"], "appIds": [] }, - { "name": "Copy.ai", "vendor": "Copy.ai", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["copy.ai"], "appIds": [] }, - { "name": "Writesonic", "vendor": "Writesonic", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["writesonic"], "appIds": [] }, - { "name": "Rytr", "vendor": "Rytr", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["rytr"], "appIds": [] }, - { "name": "Sudowrite", "vendor": "Sudowrite", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["sudowrite"], "appIds": [] }, - { "name": "HyperWrite", "vendor": "HyperWrite", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["hyperwrite"], "appIds": [] }, - { "name": "Writer", "vendor": "Writer", "category": "AI Writing & Translation", "risk": "Low", "matchNames": ["writer.com"], "appIds": [] }, - { "name": "DeepL", "vendor": "DeepL", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["deepl"], "appIds": [] }, - { "name": "Fyxer", "vendor": "Fyxer AI", "category": "AI Email", "risk": "High", "matchNames": ["fyxer"], "appIds": [] }, - { "name": "Superhuman", "vendor": "Superhuman", "category": "AI Email", "risk": "Medium", "matchNames": ["superhuman"], "appIds": [] }, - { "name": "Shortwave", "vendor": "Shortwave", "category": "AI Email", "risk": "Medium", "matchNames": ["shortwave"], "appIds": [] }, - { "name": "Lavender", "vendor": "Lavender", "category": "AI Email", "risk": "Medium", "matchNames": ["lavender"], "appIds": [] }, - { "name": "Glean", "vendor": "Glean", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["glean"], "appIds": [] }, - { "name": "Phind", "vendor": "Phind", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["phind"], "appIds": [] }, - { "name": "ChatPDF", "vendor": "ChatPDF", "category": "AI Search & Research", "risk": "High", "matchNames": ["chatpdf"], "appIds": [] }, - { "name": "AskYourPDF", "vendor": "AskYourPDF", "category": "AI Search & Research", "risk": "High", "matchNames": ["askyourpdf"], "appIds": [] }, - { "name": "SciSpace", "vendor": "SciSpace", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["scispace"], "appIds": [] }, - { "name": "Gamma", "vendor": "Gamma", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["gamma"], "appIds": [] }, - { "name": "Tome", "vendor": "Tome", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["tome.app", "tome ai"], "appIds": [] }, - { "name": "Beautiful.ai", "vendor": "Beautiful.ai", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["beautiful.ai"], "appIds": [] }, - { "name": "Notion", "vendor": "Notion", "category": "AI Presentation & Productivity", "risk": "Informational", "matchNames": ["notion"], "appIds": [] }, - { "name": "Coda", "vendor": "Coda", "category": "AI Presentation & Productivity", "risk": "Informational", "matchNames": ["coda"], "appIds": [] }, - { "name": "Mem", "vendor": "Mem", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["mem.ai"], "appIds": [] }, - { "name": "Monica", "vendor": "Monica", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["monica"], "appIds": [] }, - { "name": "Sider", "vendor": "Sider", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["sider.ai"], "appIds": [] }, - { "name": "Merlin", "vendor": "Merlin", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["merlin"], "appIds": [] }, - { "name": "MaxAI", "vendor": "MaxAI", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["maxai"], "appIds": [] }, - { "name": "Hugging Face", "vendor": "Hugging Face", "category": "AI Platform & API", "risk": "Low", "matchNames": ["hugging face", "huggingface"], "appIds": [] }, - { "name": "Replicate", "vendor": "Replicate", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["replicate"], "appIds": [] }, - { "name": "OpenRouter", "vendor": "OpenRouter", "category": "AI Platform & API", "risk": "High", "matchNames": ["openrouter"], "appIds": [] }, - { "name": "Together AI", "vendor": "Together AI", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["together ai", "together.ai"], "appIds": [] }, - { "name": "Groq", "vendor": "Groq", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["groq"], "appIds": [] }, - { "name": "Fireworks AI", "vendor": "Fireworks AI", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["fireworks ai"], "appIds": [] }, - { "name": "Cohere", "vendor": "Cohere", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["cohere"], "appIds": [] }, - { "name": "AI21 Labs", "vendor": "AI21 Labs", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["ai21"], "appIds": [] }, - { "name": "Databricks", "vendor": "Databricks", "category": "AI Platform & API", "risk": "Informational", "matchNames": ["databricks"], "appIds": [] }, - { "name": "Weights & Biases", "vendor": "Weights & Biases", "category": "AI Platform & API", "risk": "Low", "matchNames": ["weights & biases", "wandb"], "appIds": [] }, - { "name": "Gong", "vendor": "Gong", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["gong"], "appIds": [] }, - { "name": "Apollo.io", "vendor": "Apollo", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["apollo.io"], "appIds": [] }, - { "name": "Regie.ai", "vendor": "Regie.ai", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["regie"], "appIds": [] }, - { "name": "Intercom Fin", "vendor": "Intercom", "category": "AI Business Apps", "risk": "Low", "matchNames": ["intercom"], "appIds": [] }, - { "name": "Salesforce Einstein", "vendor": "Salesforce", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["einstein"], "appIds": [] }, - { "name": "ServiceNow Now Assist", "vendor": "ServiceNow", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["now assist"], "appIds": [] }, - { "name": "Atlassian Rovo", "vendor": "Atlassian", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["rovo"], "appIds": [] }, - { "name": "Moveworks", "vendor": "Moveworks", "category": "AI Business Apps", "risk": "Low", "matchNames": ["moveworks"], "appIds": [] }, - { "name": "HireVue", "vendor": "HireVue", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["hirevue"], "appIds": [] }, - { "name": "Eightfold", "vendor": "Eightfold AI", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["eightfold"], "appIds": [] }, - { "name": "Harvey", "vendor": "Harvey", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["harvey.ai", "harvey ai"], "appIds": [] }, - { "name": "Spellbook", "vendor": "Spellbook", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["spellbook"], "appIds": [] }, - { "name": "DataRobot", "vendor": "DataRobot", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["datarobot"], "appIds": [] }, - { "name": "H2O.ai", "vendor": "H2O.ai", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["h2o.ai", "h2o ai"], "appIds": [] }, - { "name": "Julius AI", "vendor": "Julius", "category": "AI Business Apps", "risk": "High", "matchNames": ["julius ai"], "appIds": [] }, - { "name": "Vapi", "vendor": "Vapi", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["vapi"], "appIds": [] }, - { "name": "Retell AI", "vendor": "Retell", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["retell ai"], "appIds": [] }, - { "name": "Voiceflow", "vendor": "Voiceflow", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["voiceflow"], "appIds": [] }, - { "name": "Botpress", "vendor": "Botpress", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["botpress"], "appIds": [] }, - { "name": "Chatbase", "vendor": "Chatbase", "category": "AI Business Apps", "risk": "High", "matchNames": ["chatbase"], "appIds": [] }, - { "name": "StackAI", "vendor": "StackAI", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["stackai", "stack ai"], "appIds": [] } + { "name": "Azure OpenAI", "vendor": "Microsoft", "category": "AI Platform & API", "risk": "Low", "matchNames": ["azure openai"], "appIds": [], "description": "Microsoft-hosted OpenAI models (GPT, DALL-E, Whisper) delivered as an Azure service inside your own subscription.", "riskReason": "Runs inside the organization's Azure tenant under Microsoft's enterprise terms: prompts and completions are not used to train models, data stays in the selected region, and access is controlled through Entra ID." }, + { "name": "GitHub Copilot", "vendor": "GitHub", "category": "AI Coding", "risk": "Medium", "matchNames": ["github copilot"], "appIds": [], "description": "AI pair programmer from GitHub that suggests code and answers questions inside the editor.", "riskReason": "Business and Enterprise plans exclude code from model training, but the free and individual tiers are common on unmanaged accounts and send proprietary source code under consumer terms." }, + { "name": "OpenAI Codex", "vendor": "OpenAI", "category": "AI Coding", "risk": "High", "matchNames": ["codex"], "appIds": [], "description": "OpenAI's autonomous coding agent that clones repositories and performs multi-step programming tasks.", "riskReason": "Requires deep repository access and executes code autonomously; when used through personal OpenAI accounts, proprietary source and secrets leave the organization with no contractual protection." }, + { "name": "OpenAI Sora", "vendor": "OpenAI", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["sora"], "appIds": [], "description": "OpenAI's text-to-video generator for producing short video clips from prompts.", "riskReason": "Consumer-account driven with limited business controls; uploaded reference footage and prompts are processed under consumer terms, and generated media carries brand-misuse and deepfake potential." }, + { "name": "ChatGPT", "vendor": "OpenAI", "category": "AI Assistant", "risk": "High", "matchNames": ["chatgpt","openai"], "appIds": [], "description": "OpenAI's chat assistant, the most widely used general-purpose AI tool for drafting, analysis and coding.", "riskReason": "Free and Plus accounts train on conversations by default and are almost always personal accounts, so any customer data, credentials or source pasted in leaves the organization's control permanently. Enterprise and Team plans address this but are rarely what is detected." }, + { "name": "Claude", "vendor": "Anthropic", "category": "AI Assistant", "risk": "Medium", "matchNames": ["claude","anthropic"], "appIds": [], "description": "Anthropic's AI assistant for writing, analysis and coding, available via web, desktop and API.", "riskReason": "Anthropic does not train on business API data and offers enterprise controls, but the consumer app is typically used with personal accounts where uploaded files and chats sit outside organizational governance." }, + { "name": "NotebookLM", "vendor": "Google", "category": "AI Search & Research", "risk": "Low", "matchNames": ["notebooklm"], "appIds": [], "description": "Google's research assistant that answers questions grounded in documents you upload.", "riskReason": "Covered by Google Workspace terms when used with a work account: uploaded sources are not used to train models and stay within the Workspace data boundary." }, + { "name": "Google Gemini", "vendor": "Google", "category": "AI Assistant", "risk": "Medium", "matchNames": ["gemini"], "appIds": [], "description": "Google's AI assistant integrated with search and Workspace, with standalone web and mobile apps.", "riskReason": "Workspace-integrated use is contractually covered, but consumer Gemini accounts may use conversations for model improvement and human review, and personal-account use is what typically shows up in discovery." }, + { "name": "Google Antigravity", "vendor": "Google", "category": "AI Coding", "risk": "Medium", "matchNames": ["antigravity"], "appIds": [], "description": "Google's agent-first AI development environment where coding agents plan and execute tasks across editor, terminal and browser.", "riskReason": "Agents get broad workstation access including terminal and browser control; source code and task context are processed by Google models, typically under individual accounts rather than enterprise agreements." }, + { "name": "Vertex AI", "vendor": "Google", "category": "AI Platform & API", "risk": "Low", "matchNames": ["vertex ai"], "appIds": [], "description": "Google Cloud's managed machine-learning platform for building and deploying models, including Gemini APIs.", "riskReason": "An enterprise cloud service governed by Google Cloud terms: customer data is not used to train foundation models and access runs through the organization's GCP project and IAM." }, + { "name": "Microsoft Copilot", "vendor": "Microsoft", "category": "AI Assistant", "risk": "Low", "matchNames": ["copilot"], "appIds": [], "description": "Microsoft's AI assistant across Windows, Edge and Microsoft 365 applications.", "riskReason": "With commercial data protection under a work account, prompts and responses are not retained for training and inherit Microsoft 365 compliance boundaries, making it the default sanctioned option in most tenants." }, + { "name": "Perplexity", "vendor": "Perplexity AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["perplexity"], "appIds": [], "description": "AI answer engine that combines live web search with model-generated summaries and citations.", "riskReason": "Business-grade privacy exists on Enterprise Pro, but typical usage is free personal accounts where queries - which often contain client and project context - are retained and may improve the service." }, + { "name": "DeepSeek", "vendor": "DeepSeek", "category": "AI Assistant", "risk": "High", "matchNames": ["deepseek"], "appIds": [], "description": "Chinese AI assistant and model family known for strong reasoning at low cost.", "riskReason": "Data is processed and stored in China under Chinese jurisdiction, with documented weak safeguards and prompt data used for training; most Western regulators and enterprises treat any submitted content as disclosed." }, + { "name": "Grok", "vendor": "xAI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["grok","x.ai"], "appIds": [], "description": "xAI's chatbot integrated with X (Twitter), with real-time access to platform content.", "riskReason": "Consumer-first tool tied to personal X accounts; conversations may be used for training and the platform's data handling and moderation posture remain immature compared to enterprise vendors." }, + { "name": "Mistral Le Chat", "vendor": "Mistral AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["mistral"], "appIds": [], "description": "Chat assistant from French AI vendor Mistral, backed by their open and commercial models.", "riskReason": "EU-based vendor with reasonable privacy posture and paid tiers that exclude training, but detected usage is usually free personal accounts outside any organizational agreement." }, + { "name": "Meta AI", "vendor": "Meta", "category": "AI Assistant", "risk": "Medium", "matchNames": ["meta ai","llama.cpp"], "appIds": [], "description": "Meta's assistant built on Llama models, embedded in WhatsApp, Instagram and standalone apps.", "riskReason": "Consumer product with no business tier: prompts flow into Meta's advertising-driven ecosystem and may be used for model training, with no enterprise controls or contractual protections." }, + { "name": "Qwen", "vendor": "Alibaba", "category": "AI Assistant", "risk": "High", "matchNames": ["qwen"], "appIds": [], "description": "Alibaba's AI assistant and open-model family (Tongyi Qianwen).", "riskReason": "Hosted services process data in China under Chinese data-access laws; submitted business content should be treated as disclosed to an uncontrolled third party." }, + { "name": "Kimi", "vendor": "Moonshot AI", "category": "AI Assistant", "risk": "High", "matchNames": ["kimi","moonshot ai"], "appIds": [], "description": "Moonshot AI's Chinese chat assistant known for very long document context windows.", "riskReason": "Its headline feature is uploading long documents - contracts, reports, specifications - to servers in China under Chinese jurisdiction, combining maximum data exposure with minimal legal recourse." }, + { "name": "Poe", "vendor": "Quora", "category": "AI Assistant", "risk": "Medium", "matchNames": ["poe by quora","quora"], "appIds": [], "description": "Quora's multi-model chat hub giving one subscription access to many AI models and community bots.", "riskReason": "Conversations pass through Quora and on to multiple third-party model providers with varying data policies, and community-created bots can capture inputs; there is no enterprise governance layer." }, + { "name": "You.com", "vendor": "You.com", "category": "AI Assistant", "risk": "Medium", "matchNames": ["you.com"], "appIds": [], "description": "AI search and chat platform offering multiple models with web-connected answers.", "riskReason": "Personal-subscription tool routing queries through multiple model backends; business data in prompts is handled under consumer terms without organizational visibility." }, + { "name": "Pi", "vendor": "Inflection AI", "category": "AI Assistant", "risk": "Medium", "matchNames": ["inflection"], "appIds": [], "description": "Inflection AI's conversational assistant focused on personal, empathetic dialogue.", "riskReason": "A consumer companion-style assistant with no business controls; conversations are retained by the vendor and any work content shared sits outside organizational governance." }, + { "name": "Character.AI", "vendor": "Character Technologies", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["character.ai","character ai"], "appIds": [], "description": "Platform for chatting with user-created AI personas and characters.", "riskReason": "Entertainment platform with no legitimate business use: conversations are retained and used for training, personas encourage oversharing, and its presence on work devices is a policy violation in most organizations." }, + { "name": "Candy.AI", "vendor": "Candy.AI", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["candy.ai"], "appIds": [], "description": "AI companion service for romantic and adult-oriented persona chat.", "riskReason": "Adult content service with aggressive data collection and no business justification; presence on managed devices is an HR and security concern rather than a productivity question." }, + { "name": "Janitor AI", "vendor": "JanitorAI", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["janitor ai","janitorai"], "appIds": [], "description": "Community platform for roleplay chat with user-created AI characters, largely adult-oriented.", "riskReason": "Unvetted community platform with adult content, opaque data handling and user-supplied API key patterns that leak credentials; no business use case exists." }, + { "name": "Crushon AI", "vendor": "Crushon", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["crushon"], "appIds": [], "description": "AI companion chat service focused on unfiltered romantic and adult conversations.", "riskReason": "Adult companion service with no enterprise controls or business purpose; conversations are retained by an anonymous operator and its presence signals acceptable-use policy violations." }, + { "name": "FlowGPT", "vendor": "FlowGPT", "category": "AI Companion Chatbot", "risk": "High", "matchNames": ["flowgpt"], "appIds": [], "description": "Community marketplace for sharing AI prompts and character bots across models.", "riskReason": "Community-run bots and prompt-sharing mean inputs may be visible to bot creators and the platform; content moderation is weak and there is no business tier or data protection agreement." }, + { "name": "Cursor", "vendor": "Anysphere", "category": "AI Coding", "risk": "Medium", "matchNames": ["cursor"], "appIds": [], "description": "AI-first code editor (VS Code fork) with deep codebase-aware chat and autonomous edit modes.", "riskReason": "Indexes and uploads codebase context to cloud models; Business plans offer privacy mode with no training, but individual subscriptions on personal accounts are the norm and put proprietary source outside company control." }, + { "name": "Codeium / Windsurf", "vendor": "Codeium", "category": "AI Coding", "risk": "Medium", "matchNames": ["codeium","windsurf"], "appIds": [], "description": "AI coding assistant and the Windsurf agentic editor from Codeium.", "riskReason": "Sends code context to cloud completion services; enterprise self-hosted options exist, but free individual tiers dominate detection and carry code exfiltration risk under consumer terms." }, + { "name": "Tabnine", "vendor": "Tabnine", "category": "AI Coding", "risk": "Medium", "matchNames": ["tabnine"], "appIds": [], "description": "Privacy-focused AI code completion tool supporting local and private deployments.", "riskReason": "Positions on privacy with zero-retention and private deployment options, but free personal use still sends code snippets to cloud services outside organizational agreements." }, + { "name": "Sourcegraph Cody", "vendor": "Sourcegraph", "category": "AI Coding", "risk": "Medium", "matchNames": ["sourcegraph","cody"], "appIds": [], "description": "Codebase-aware AI assistant from Sourcegraph that answers questions across large repositories.", "riskReason": "Enterprise deployments are well-governed, but free individual use grants a third party read access to whole repositories under personal accounts." }, + { "name": "Aider", "vendor": "Aider", "category": "AI Coding", "risk": "Medium", "matchNames": ["aider"], "appIds": [], "description": "Open-source terminal-based AI pair programmer that edits local git repositories.", "riskReason": "The tool itself is local, but it ships code to whichever model API key the user supplies - typically personal OpenAI or Anthropic keys with no organizational data terms." }, + { "name": "Amazon Q / CodeWhisperer", "vendor": "Amazon", "category": "AI Coding", "risk": "Medium", "matchNames": ["codewhisperer","amazon q"], "appIds": [], "description": "AWS's AI coding assistant and enterprise Q&A assistant for developers.", "riskReason": "Professional tiers under an AWS organization inherit enterprise terms, but Builder ID (personal) usage sends code to AWS outside the organization's agreements." }, + { "name": "Amazon Bedrock", "vendor": "Amazon", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["bedrock"], "appIds": [], "description": "AWS managed service for accessing foundation models (Anthropic, Meta, Amazon) via API.", "riskReason": "An enterprise cloud service with no training on customer data, but usage detected outside a governed AWS account may indicate shadow API projects moving company data through personal accounts." }, + { "name": "Amazon Kiro", "vendor": "Amazon", "category": "AI Coding", "risk": "Medium", "matchNames": ["kiro"], "appIds": [], "description": "AWS's agentic AI development environment built around spec-driven coding.", "riskReason": "Agentic access to source and specs routed through AWS accounts; safe under organizational AWS agreements but frequently adopted via personal Builder IDs first." }, + { "name": "Replit", "vendor": "Replit", "category": "AI Coding", "risk": "High", "matchNames": ["replit"], "appIds": [], "description": "Browser-based development platform with AI agent that builds and deploys applications.", "riskReason": "Code lives on Replit's cloud by default and free-tier workspaces are public, so proprietary code pasted in becomes literally public; the AI agent also deploys with broad permissions." }, + { "name": "Lovable", "vendor": "Lovable", "category": "AI Coding", "risk": "High", "matchNames": ["lovable"], "appIds": [], "description": "AI app builder that generates full-stack applications from natural-language prompts.", "riskReason": "Prompt-to-app platforms receive business logic, data models and often production credentials during building; generated apps default to public hosting and personal accounts, bypassing all development governance." }, + { "name": "Bolt.new", "vendor": "StackBlitz", "category": "AI Coding", "risk": "High", "matchNames": ["bolt.new","stackblitz"], "appIds": [], "description": "StackBlitz's AI web-app builder that generates and runs full-stack projects in the browser.", "riskReason": "Project code and any secrets pasted during development are processed in the vendor's cloud under personal accounts; output ships to public hosting with no organizational review." }, + { "name": "v0", "vendor": "Vercel", "category": "AI Coding", "risk": "High", "matchNames": ["v0.dev"], "appIds": [], "description": "Vercel's AI UI generator that produces React components and full pages from prompts.", "riskReason": "Designs, internal UI patterns and business context flow to Vercel under personal accounts, and generated projects deploy publicly with one click, outside change control." }, + { "name": "Devin", "vendor": "Cognition", "category": "AI Coding", "risk": "High", "matchNames": ["devin ai","cognition labs"], "appIds": [], "description": "Cognition's autonomous AI software engineer that plans and completes entire development tasks.", "riskReason": "Requires standing access to repositories, credentials and infrastructure to work autonomously - an extremely broad grant to an external service, usually procured by individual developers rather than through security review." }, + { "name": "Continue", "vendor": "Continue", "category": "AI Coding", "risk": "Medium", "matchNames": ["continue.dev"], "appIds": [], "description": "Open-source AI coding assistant extension that connects editors to any model provider.", "riskReason": "The extension is local and configurable for private models, but in practice routes code to cloud APIs on personal keys, inheriting whatever data terms the chosen provider applies." }, + { "name": "Cline", "vendor": "Cline", "category": "AI Coding", "risk": "Medium", "matchNames": ["cline"], "appIds": [], "description": "Open-source autonomous coding agent for VS Code with terminal and file access.", "riskReason": "Executes commands and edits files autonomously while shipping repository context to user-supplied model APIs on personal keys; power and data exposure depend entirely on the individual's configuration." }, + { "name": "Roo Code", "vendor": "Roo Code", "category": "AI Coding", "risk": "Medium", "matchNames": ["roo code"], "appIds": [], "description": "Fork of Cline offering multi-mode autonomous coding agents in VS Code.", "riskReason": "Same profile as other agentic coding extensions: broad workspace access with code context sent to personal model API keys outside organizational terms." }, + { "name": "Qodo", "vendor": "Qodo", "category": "AI Coding", "risk": "Medium", "matchNames": ["qodo"], "appIds": [], "description": "AI code-review and test-generation platform (formerly CodiumAI).", "riskReason": "Enterprise tiers provide zero-retention guarantees, but individual free usage sends diffs and tests to the vendor cloud under personal accounts." }, + { "name": "Warp", "vendor": "Warp", "category": "AI Coding", "risk": "Medium", "matchNames": ["warp.dev"], "appIds": [], "description": "AI-enhanced terminal with command generation and agentic workflows.", "riskReason": "Terminal history and command context - which routinely contain hostnames, paths and secrets - are processed by cloud AI under individual accounts unless the enterprise tier with zero-retention is used." }, + { "name": "Visual Studio Code", "vendor": "Microsoft", "category": "AI-Capable Editor", "risk": "Informational", "matchNames": ["visual studio code","vscode"], "appIds": [], "description": "Microsoft's code editor; not an AI tool itself but the primary host for AI coding extensions.", "riskReason": "Listed for visibility only: the editor is standard software, but its presence indicates where AI coding extensions like Copilot, Cline or Continue may be running." }, + { "name": "JetBrains AI", "vendor": "JetBrains", "category": "AI-Capable Editor", "risk": "Low", "matchNames": ["jetbrains ai"], "appIds": [], "description": "AI assistant integrated into JetBrains IDEs with organizational controls.", "riskReason": "Offered through JetBrains accounts with enterprise licensing, no training on customer code and admin-controllable data sharing, making governed deployment straightforward." }, + { "name": "Ollama", "vendor": "Ollama", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["ollama"], "appIds": [], "description": "Local model runtime for running open-weight LLMs on the user's own machine.", "riskReason": "Data stays on-device which removes exfiltration risk, but it bypasses all monitoring, model outputs are ungoverned, and pulled models plus exposed local APIs create an unmanaged attack surface." }, + { "name": "LM Studio", "vendor": "LM Studio", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["lm studio","lmstudio"], "appIds": [], "description": "Desktop application for downloading and running local LLMs with a chat interface.", "riskReason": "Fully local processing avoids data leakage, but unvetted community models, an optional local server that other apps can call, and zero organizational visibility keep it in the review category." }, + { "name": "GPT4All", "vendor": "Nomic AI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["gpt4all"], "appIds": [], "description": "Nomic's desktop app for running local open-source models, including local document Q&A.", "riskReason": "Local-first with optional telemetry; the data risk is low but local document indexing and unvetted models operate entirely outside IT visibility." }, + { "name": "Jan", "vendor": "Jan", "category": "Local AI Runtime", "risk": "Low", "matchNames": ["jan.ai"], "appIds": [], "description": "Open-source, offline-first desktop assistant running local models.", "riskReason": "Designed to run fully offline with local storage and no cloud dependency, giving it one of the smallest data-exposure footprints of any AI tool - the remaining concern is only ungoverned output." }, + { "name": "Open WebUI", "vendor": "Open WebUI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["open webui"], "appIds": [], "description": "Self-hosted web interface for local and remote LLMs, often paired with Ollama.", "riskReason": "Self-hosted and private by design, but frequently configured with remote API keys and exposed as a network service without authentication hardening, quietly becoming unmanaged AI infrastructure." }, + { "name": "AnythingLLM", "vendor": "Mintplex Labs", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["anythingllm"], "appIds": [], "description": "Desktop and server app for chatting with documents using local or cloud models.", "riskReason": "Document ingestion is the core feature: with local models exposure is minimal, but many setups connect personal cloud API keys, sending indexed company documents to third parties." }, + { "name": "Oobabooga", "vendor": "Community", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["oobabooga"], "appIds": [], "description": "Community web UI for running and experimenting with local text-generation models.", "riskReason": "Hobbyist tooling on work devices: local processing limits data risk, but unvetted models and extensions and the experimentation culture around it fall outside any governance." }, + { "name": "KoboldCpp", "vendor": "Community", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["koboldcpp"], "appIds": [], "description": "Lightweight community runtime for local models, popular for storytelling and roleplay.", "riskReason": "Local execution keeps data on-device; primarily an indicator of personal/entertainment model use on managed hardware rather than a data-loss vector." }, + { "name": "LocalAI", "vendor": "LocalAI", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["localai"], "appIds": [], "description": "Self-hosted, OpenAI-compatible API server for running models locally.", "riskReason": "Keeps inference on-premises, but stands up an unmanaged OpenAI-compatible endpoint other tools and scripts can silently target, creating shadow AI infrastructure." }, + { "name": "Msty", "vendor": "Msty", "category": "Local AI Runtime", "risk": "Medium", "matchNames": ["msty"], "appIds": [], "description": "Desktop app that unifies local and cloud models in a single chat interface.", "riskReason": "Mixes local models with cloud providers behind one UI, so users may believe they are working locally while prompts actually flow to cloud APIs on personal keys." }, + { "name": "OpenClaw / Claw", "vendor": "Community", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["claw"], "appIds": [], "description": "Community autonomous agent framework that chains model calls to complete tasks.", "riskReason": "Autonomous agents with tool access run unattended actions on the user's machine and accounts, with prompts and captured data sent to whatever model API is configured - unvetted code with broad permissions." }, + { "name": "AutoGPT", "vendor": "Significant Gravitas", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["autogpt"], "appIds": [], "description": "Early autonomous GPT agent framework that self-directs multi-step tasks.", "riskReason": "Executes self-generated actions with file, browser and API access on personal OpenAI keys; unpredictable behavior plus broad local permissions make it high risk on any managed device." }, + { "name": "AgentGPT", "vendor": "Reworkd", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["agentgpt"], "appIds": [], "description": "Browser-based autonomous agent platform from Reworkd.", "riskReason": "Goals and intermediate results are processed in the vendor's cloud on consumer accounts, and autonomous web actions run without organizational oversight." }, + { "name": "BabyAGI", "vendor": "Community", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["babyagi"], "appIds": [], "description": "Minimal open-source task-driven autonomous agent experiment.", "riskReason": "Experimental agent code run from personal API keys with no controls; its presence indicates ungoverned agent experimentation on work devices." }, + { "name": "Manus", "vendor": "Monica", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["manus ai","manus.im"], "appIds": [], "description": "Autonomous general-purpose AI agent from Monica (Butterfly Effect) that completes complex tasks in cloud VMs.", "riskReason": "Tasks, files and credentials are handed to autonomous cloud VMs operated by a Chinese-founded vendor with limited transparency; data jurisdiction and agent autonomy combine into high exposure." }, + { "name": "LangChain", "vendor": "LangChain", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["langchain"], "appIds": [], "description": "Developer framework for building LLM applications and agent pipelines.", "riskReason": "The framework itself is neutral, but its presence means employees are building AI integrations that move company data to model APIs - typically on personal keys and without security review." }, + { "name": "LlamaIndex", "vendor": "LlamaIndex", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["llamaindex"], "appIds": [], "description": "Framework for connecting private data sources to LLMs for retrieval-augmented generation.", "riskReason": "Purpose-built to index internal documents and feed them to models; unofficial projects using it move company data into embeddings and third-party APIs without governance." }, + { "name": "CrewAI", "vendor": "CrewAI", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["crewai"], "appIds": [], "description": "Framework for orchestrating teams of autonomous AI agents.", "riskReason": "Multi-agent orchestration amplifies single-agent risk: several autonomous agents share data and take actions across tools on personal API keys, with no audit trail." }, + { "name": "n8n", "vendor": "n8n", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["n8n"], "appIds": [], "description": "Workflow automation platform with extensive AI and LLM integration nodes.", "riskReason": "Self-hosted deployments can be well-governed, but cloud accounts wired to mailboxes, CRMs and LLM APIs move production data through personal automations that IT cannot see." }, + { "name": "Zapier", "vendor": "Zapier", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["zapier"], "appIds": [], "description": "Cloud automation service connecting thousands of apps, now with AI steps and agents.", "riskReason": "Every zap is a standing data pipe between company systems and third parties under a personal account; adding AI steps sends that data onward to model providers." }, + { "name": "Make", "vendor": "Make", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["make.com"], "appIds": [], "description": "Visual cloud automation platform (formerly Integromat) with AI modules.", "riskReason": "Same profile as other cloud automation: personal accounts holding OAuth grants into company mailboxes and files, now feeding content to AI modules outside governance." }, + { "name": "Lindy", "vendor": "Lindy", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["lindy"], "appIds": [], "description": "No-code platform for building personal AI agents that handle email, scheduling and workflows.", "riskReason": "Agents are granted standing OAuth access to mailboxes and calendars and act autonomously on their content; a personal Lindy account is effectively an unmanaged delegate with inbox access." }, + { "name": "Relevance AI", "vendor": "Relevance AI", "category": "AI Agent & Automation", "risk": "High", "matchNames": ["relevance ai"], "appIds": [], "description": "Platform for building AI agent workforces for sales, support and operations tasks.", "riskReason": "Business processes and customer data are delegated to cloud agents configured by individuals; broad integrations plus autonomous outbound actions carry high exposure without contract review." }, + { "name": "Dust", "vendor": "Dust", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["dust.tt"], "appIds": [], "description": "Platform for building internal AI assistants connected to company knowledge sources.", "riskReason": "Connecting Slack, Drive and Notion to a third-party assistant platform is exactly the kind of grant that needs vendor review; adopted properly it is governable, adopted personally it is a data pipeline." }, + { "name": "Bardeen", "vendor": "Bardeen", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["bardeen"], "appIds": [], "description": "Browser extension that automates web tasks with AI, including scraping and form filling.", "riskReason": "A browser extension with page access on work sites: it can read whatever the user sees, including CRM and admin consoles, and sends context to cloud AI under personal accounts." }, + { "name": "Gumloop", "vendor": "Gumloop", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["gumloop"], "appIds": [], "description": "No-code AI workflow builder for automating data processing and web tasks.", "riskReason": "Workflows routinely ingest spreadsheets and scraped business data into cloud AI processing under individual accounts, outside data-handling agreements." }, + { "name": "Browse AI", "vendor": "Browse AI", "category": "AI Agent & Automation", "risk": "Medium", "matchNames": ["browse ai"], "appIds": [], "description": "No-code web scraping and monitoring service with AI extraction.", "riskReason": "Primarily a scraping tool on personal accounts; risk centers on ungoverned collection of competitor or customer data and credentials saved for authenticated scraping." }, + { "name": "Midjourney", "vendor": "Midjourney", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["midjourney"], "appIds": [], "description": "Leading AI image generator operated through Discord and web.", "riskReason": "Generations are public by default on standard plans and prompts may include product or campaign details; operation through personal Discord accounts leaves no organizational control." }, + { "name": "Stable Diffusion", "vendor": "Stability AI", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["stable diffusion","stability ai"], "appIds": [], "description": "Open-source image generation model family from Stability AI, run locally or via services.", "riskReason": "Local use keeps data private but unmanaged; hosted services vary widely in data handling. Main concerns are ungoverned content generation and licensing of outputs." }, + { "name": "DALL-E", "vendor": "OpenAI", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["dall-e","dalle"], "appIds": [], "description": "OpenAI's image generation model, accessed through ChatGPT and the API.", "riskReason": "Image prompts on personal OpenAI accounts fall under consumer terms; risk is moderate and mostly about prompt content and brand-safe usage of outputs." }, + { "name": "Adobe Firefly", "vendor": "Adobe", "category": "AI Image & Design", "risk": "Low", "matchNames": ["firefly"], "appIds": [], "description": "Adobe's image and design generation integrated into Creative Cloud.", "riskReason": "Trained on licensed content with commercial-use indemnification and delivered through managed Creative Cloud accounts, making it one of the safer generative design options." }, + { "name": "Canva", "vendor": "Canva", "category": "AI Image & Design", "risk": "Informational", "matchNames": ["canva"], "appIds": [], "description": "Design platform with embedded AI features (Magic Studio); primarily a standard business tool.", "riskReason": "Listed for visibility because of its embedded AI features; as a mainstream design platform commonly under business accounts, it is not in itself a shadow AI concern." }, + { "name": "Leonardo AI", "vendor": "Leonardo.Ai", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["leonardo.ai","leonardo ai"], "appIds": [], "description": "AI image generation platform popular for marketing and game assets.", "riskReason": "Consumer accounts with community-visible generations by default; prompts and reference uploads sit under personal accounts outside brand and data governance." }, + { "name": "Ideogram", "vendor": "Ideogram", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["ideogram"], "appIds": [], "description": "AI image generator known for accurate text rendering in images.", "riskReason": "Free tiers make generations public and usage is personal-account based; exposure is mostly prompt content and ungoverned brand asset creation." }, + { "name": "Krea", "vendor": "Krea", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["krea.ai"], "appIds": [], "description": "Real-time AI image generation and enhancement studio.", "riskReason": "Uploaded reference images and brand assets are processed under personal consumer accounts with default sharing, outside organizational control." }, + { "name": "ComfyUI", "vendor": "Comfy Org", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["comfyui"], "appIds": [], "description": "Node-based local interface for building image and video generation pipelines.", "riskReason": "Local generation keeps data on-device; the risk profile is unvetted community workflows and custom nodes executing arbitrary code on work machines." }, + { "name": "Automatic1111", "vendor": "Community", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["automatic1111"], "appIds": [], "description": "Community web UI for running Stable Diffusion locally.", "riskReason": "Local processing with minimal data risk; concerns are community extensions running arbitrary code and ungoverned content generation on managed hardware." }, + { "name": "InvokeAI", "vendor": "Invoke", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["invokeai"], "appIds": [], "description": "Professional-oriented local Stable Diffusion interface.", "riskReason": "Local-first generation with an optional server mode; low data exposure but operates entirely outside IT visibility on work devices." }, + { "name": "Remove.bg", "vendor": "Kaleido", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["remove.bg"], "appIds": [], "description": "Web service that removes image backgrounds automatically.", "riskReason": "Every processed image is uploaded to the vendor's cloud; used casually with product shots or people photos under free accounts with retention rights." }, + { "name": "Photoroom", "vendor": "Photoroom", "category": "AI Image & Design", "risk": "Medium", "matchNames": ["photoroom"], "appIds": [], "description": "AI photo editing service for product imagery and background editing.", "riskReason": "Product and staff images are uploaded to consumer cloud processing; moderate exposure centered on image rights and retention under personal accounts." }, + { "name": "Synthesia", "vendor": "Synthesia", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["synthesia"], "appIds": [], "description": "AI video platform generating presenter-led videos from scripts with avatars.", "riskReason": "Scripts often contain internal training or product material and are processed in the vendor cloud; enterprise plans exist but individual accounts dominate casual adoption." }, + { "name": "HeyGen", "vendor": "HeyGen", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["heygen"], "appIds": [], "description": "AI video generation platform with talking avatars and video translation.", "riskReason": "Voice cloning and avatar creation from uploaded footage of real people raises consent and impersonation concerns; scripts and media are processed under personal accounts." }, + { "name": "RunwayML", "vendor": "Runway", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["runwayml","runway ml"], "appIds": [], "description": "Creative AI suite for video generation and editing (Gen-series models).", "riskReason": "Uploaded footage and creative material are processed in the vendor cloud on consumer plans; exposure is project confidentiality rather than structured data loss." }, + { "name": "Descript", "vendor": "Descript", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["descript"], "appIds": [], "description": "AI audio/video editor with transcription, overdub voice cloning and screen recording.", "riskReason": "Meeting and call recordings uploaded for editing contain conversations that were never cleared for third-party processing, and voice cloning adds impersonation risk." }, + { "name": "OpusClip", "vendor": "OpusClip", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["opusclip","opus clip"], "appIds": [], "description": "AI service that turns long videos into short social clips.", "riskReason": "Uploaded video content is processed under consumer accounts; moderate exposure limited to the confidentiality of the footage itself." }, + { "name": "Veed", "vendor": "Veed", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["veed.io"], "appIds": [], "description": "Browser-based AI video editing and subtitling service.", "riskReason": "Video and audio uploads processed in the vendor cloud on personal accounts; typical exposure is internal or client footage leaving controlled storage." }, + { "name": "Pika", "vendor": "Pika Labs", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["pika labs"], "appIds": [], "description": "Text-to-video and image-to-video generation service.", "riskReason": "Consumer generation service; prompts and reference uploads sit under personal accounts with default community visibility on lower tiers." }, + { "name": "Luma", "vendor": "Luma AI", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["luma ai","lumalabs"], "appIds": [], "description": "AI 3D capture and video generation (Dream Machine) from Luma AI.", "riskReason": "Uploaded captures and prompts processed under consumer terms; low-to-moderate business exposure unless internal environments or products are captured." }, + { "name": "Pictory", "vendor": "Pictory", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["pictory"], "appIds": [], "description": "AI service converting scripts and articles into narrated videos.", "riskReason": "Marketing scripts and internal content are uploaded to consumer cloud processing; exposure is content confidentiality under personal accounts." }, + { "name": "InVideo", "vendor": "InVideo", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["invideo"], "appIds": [], "description": "Template-driven AI video creation platform.", "riskReason": "Script and asset uploads under personal accounts; moderate confidentiality exposure typical of consumer creative tools." }, + { "name": "CapCut", "vendor": "ByteDance", "category": "AI Video & Audio", "risk": "High", "matchNames": ["capcut"], "appIds": [], "description": "ByteDance's video editor with AI features, tied to the TikTok ecosystem.", "riskReason": "Owned by ByteDance with data processed under Chinese jurisdiction and aggressive telemetry; uploaded footage and device data sit outside any acceptable enterprise boundary." }, + { "name": "ElevenLabs", "vendor": "ElevenLabs", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["elevenlabs"], "appIds": [], "description": "Leading AI voice generation and cloning platform.", "riskReason": "High-quality voice cloning from short samples creates real impersonation and fraud risk (vishing, fake executive audio); business tiers exist but personal accounts dominate." }, + { "name": "Murf", "vendor": "Murf", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["murf"], "appIds": [], "description": "AI voiceover generation service for narration and presentations.", "riskReason": "Scripts uploaded to consumer cloud processing; moderate exposure around content confidentiality, lower cloning risk than sample-based services." }, + { "name": "Play.ht", "vendor": "PlayHT", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["play.ht"], "appIds": [], "description": "AI text-to-speech and voice cloning API and studio.", "riskReason": "Voice cloning capability plus consumer-account usage carries impersonation risk and puts scripts under personal-account terms." }, + { "name": "Speechify", "vendor": "Speechify", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["speechify"], "appIds": [], "description": "Text-to-speech app that reads documents and web pages aloud.", "riskReason": "Documents are uploaded for narration - often internal reports read on commutes - placing their content under a consumer service's retention terms." }, + { "name": "Suno", "vendor": "Suno", "category": "AI Video & Audio", "risk": "Medium", "matchNames": ["suno"], "appIds": [], "description": "AI music generation service creating songs from text prompts.", "riskReason": "Low business-data exposure; concerns are personal use on work devices and unresolved copyright status of generated music used in company content." }, + { "name": "Otter.ai", "vendor": "Otter", "category": "AI Meeting Notetaker", "risk": "High", "matchNames": ["otter.ai"], "appIds": [], "description": "AI meeting transcription service with an auto-joining meeting bot.", "riskReason": "The bot joins and records entire meetings - including other parties who never consented - and stores full transcripts of confidential discussions under a personal account; recording-consent laws make this a legal exposure, not just a data one." }, + { "name": "Fireflies.ai", "vendor": "Fireflies", "category": "AI Meeting Notetaker", "risk": "High", "matchNames": ["fireflies"], "appIds": [], "description": "AI notetaker that records, transcribes and analyzes meetings across platforms.", "riskReason": "Standing calendar and meeting access with automatic recording; complete conversation archives including client calls accumulate in a third-party cloud under individual accounts." }, + { "name": "Fathom", "vendor": "Fathom", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["fathom"], "appIds": [], "description": "Free AI meeting recorder and summarizer for Zoom, Meet and Teams.", "riskReason": "Same recording-consent and transcript-retention concerns as other notetakers, moderated by a clearer free-tier privacy stance; still individual-account driven." }, + { "name": "tl;dv", "vendor": "tldv", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["tldv","tl;dv"], "appIds": [], "description": "Meeting recording and AI summary tool for Meet, Zoom and Teams.", "riskReason": "Records meetings under personal accounts with transcripts stored in the vendor cloud; consent and client-confidentiality obligations are routinely skipped." }, + { "name": "Read AI", "vendor": "Read", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["read.ai"], "appIds": [], "description": "Meeting intelligence tool measuring engagement and generating summaries, expanding into email and messaging.", "riskReason": "Beyond recording meetings it requests mail and calendar scopes to score communications, concentrating a broad slice of workplace interaction data under a personal grant." }, + { "name": "Krisp", "vendor": "Krisp", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["krisp"], "appIds": [], "description": "AI noise cancellation and meeting transcription running on the local device.", "riskReason": "Noise processing is local which is genuinely privacy-friendly; the optional cloud transcription and summaries carry standard notetaker exposure." }, + { "name": "Sembly", "vendor": "Sembly AI", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["sembly"], "appIds": [], "description": "AI meeting assistant generating notes, tasks and insights.", "riskReason": "Meeting audio and transcripts processed in vendor cloud under individual accounts; standard notetaker consent and retention concerns." }, + { "name": "Avoma", "vendor": "Avoma", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["avoma"], "appIds": [], "description": "Meeting lifecycle assistant with recording, transcription and revenue intelligence.", "riskReason": "Customer call recordings and CRM-linked conversation data in a third-party cloud; governable on business plans, risky as individual adoption." }, + { "name": "MeetGeek", "vendor": "MeetGeek", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["meetgeek"], "appIds": [], "description": "Automatic meeting recorder with AI summaries and insights.", "riskReason": "Auto-join recording under personal accounts with cloud transcript retention; standard meeting-notetaker exposure." }, + { "name": "Supernormal", "vendor": "Supernormal", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["supernormal"], "appIds": [], "description": "AI meeting notes tool integrated with calendars.", "riskReason": "Calendar access plus automatic meeting capture under individual accounts; transcripts of internal and client meetings accumulate outside governance." }, + { "name": "Granola", "vendor": "Granola", "category": "AI Meeting Notetaker", "risk": "Medium", "matchNames": ["granola"], "appIds": [], "description": "AI notepad that transcribes meetings locally from system audio without a bot.", "riskReason": "No visible bot means participants rarely know transcription is happening; notes and transcripts still sync to the vendor cloud under personal accounts, with consent risk hidden from other parties." }, + { "name": "Grammarly", "vendor": "Grammarly", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["grammarly"], "appIds": [], "description": "AI writing assistant checking and rewriting text across every application.", "riskReason": "As a system-wide extension it reads nearly everything typed - emails, contracts, HR notes - and processes it in the vendor cloud; Business plans add controls, but free personal accounts are pervasive." }, + { "name": "Jasper", "vendor": "Jasper", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["jasper.ai"], "appIds": [], "description": "AI marketing content generation platform.", "riskReason": "Campaign briefs and brand material are processed under vendor cloud terms; business-oriented vendor with acceptable terms, but individual accounts skip procurement review." }, + { "name": "QuillBot", "vendor": "QuillBot", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["quillbot"], "appIds": [], "description": "AI paraphrasing and summarization tool popular for rewriting text.", "riskReason": "Users paste whole documents for rewriting into a free consumer service; content retention under personal accounts is the primary exposure." }, + { "name": "Wordtune", "vendor": "AI21 Labs", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["wordtune"], "appIds": [], "description": "AI21's writing companion for rewriting and summarizing.", "riskReason": "Browser-extension text access plus consumer-account processing; pasted business text falls under personal-account terms." }, + { "name": "Copy.ai", "vendor": "Copy.ai", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["copy.ai"], "appIds": [], "description": "AI copywriting and go-to-market content platform.", "riskReason": "Marketing and sales content processed on free or personal plans; moderate confidentiality exposure, business tiers available." }, + { "name": "Writesonic", "vendor": "Writesonic", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["writesonic"], "appIds": [], "description": "AI content writing platform for articles and marketing copy.", "riskReason": "Standard consumer content-generation exposure: briefs and drafts under personal accounts in the vendor cloud." }, + { "name": "Rytr", "vendor": "Rytr", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["rytr"], "appIds": [], "description": "Budget AI writing assistant for short-form content.", "riskReason": "Free consumer writing tool; pasted content is retained under consumer terms with no organizational controls." }, + { "name": "Sudowrite", "vendor": "Sudowrite", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["sudowrite"], "appIds": [], "description": "AI creative writing tool aimed at fiction authors.", "riskReason": "Primarily personal creative use on work devices; business-data exposure is low but usage is entirely ungoverned." }, + { "name": "HyperWrite", "vendor": "HyperWrite", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["hyperwrite"], "appIds": [], "description": "AI writing assistant with autonomous browser agent features.", "riskReason": "Beyond text generation, its browser agent can act on pages the user is signed into, extending consumer-account AI into authenticated business webapps." }, + { "name": "Writer", "vendor": "Writer", "category": "AI Writing & Translation", "risk": "Low", "matchNames": ["writer.com"], "appIds": [], "description": "Enterprise generative AI platform with brand and compliance guardrails.", "riskReason": "Built for enterprise deployment: no training on customer data, SOC 2 controls and admin governance; risk mainly arises if adopted as individual accounts instead of a managed rollout." }, + { "name": "DeepL", "vendor": "DeepL", "category": "AI Writing & Translation", "risk": "Medium", "matchNames": ["deepl"], "appIds": [], "description": "High-quality machine translation service with document upload.", "riskReason": "Whole documents - contracts, correspondence - are uploaded for translation; Pro guarantees deletion after translation, but free usage retains text for training under consumer terms." }, + { "name": "Fyxer", "vendor": "Fyxer AI", "category": "AI Email", "risk": "High", "matchNames": ["fyxer"], "appIds": [], "description": "AI executive assistant that drafts email replies and organizes inboxes.", "riskReason": "Requires full mailbox access and reads every message to draft replies - complete correspondence history including confidential threads flows to a young vendor, usually via an individual OAuth grant." }, + { "name": "Superhuman", "vendor": "Superhuman", "category": "AI Email", "risk": "Medium", "matchNames": ["superhuman"], "appIds": [], "description": "Premium email client with AI drafting and triage.", "riskReason": "Full mailbox access through a third-party client with AI processing; a credible vendor, but individual adoption grants inbox-wide access without organizational review." }, + { "name": "Shortwave", "vendor": "Shortwave", "category": "AI Email", "risk": "Medium", "matchNames": ["shortwave"], "appIds": [], "description": "AI-native email client built on Gmail with assistant-driven search and drafting.", "riskReason": "Inbox-wide access and AI processing of mail content under personal choice of client; same standing-mailbox-grant concern as other AI email tools." }, + { "name": "Lavender", "vendor": "Lavender", "category": "AI Email", "risk": "Medium", "matchNames": ["lavender"], "appIds": [], "description": "AI sales email coach that scores and improves outreach messages.", "riskReason": "Reads and analyzes sales correspondence via extension access; prospect data and messaging flow to the vendor under individual seats." }, + { "name": "Glean", "vendor": "Glean", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["glean"], "appIds": [], "description": "Enterprise AI search across company applications and knowledge.", "riskReason": "A legitimate enterprise product whose entire function is indexing company data; properly deployed it is well-governed, but any non-IT-sanctioned connection of data sources is a serious grant." }, + { "name": "Phind", "vendor": "Phind", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["phind"], "appIds": [], "description": "AI answer engine specialized for developers and technical questions.", "riskReason": "Developers paste error output and code snippets into a consumer web service; retention under personal accounts is the main exposure." }, + { "name": "ChatPDF", "vendor": "ChatPDF", "category": "AI Search & Research", "risk": "High", "matchNames": ["chatpdf"], "appIds": [], "description": "Web service for chatting with uploaded PDF documents.", "riskReason": "Its sole function is uploading documents - contracts, reports, financials - to an inexpensive consumer service with minimal transparency about retention and reuse; document exfiltration is the product." }, + { "name": "AskYourPDF", "vendor": "AskYourPDF", "category": "AI Search & Research", "risk": "High", "matchNames": ["askyourpdf"], "appIds": [], "description": "Document Q&A service for uploaded PDFs and files.", "riskReason": "Same profile as other document-chat services: business documents are uploaded wholesale to a small vendor under consumer terms with unclear retention." }, + { "name": "SciSpace", "vendor": "SciSpace", "category": "AI Search & Research", "risk": "Medium", "matchNames": ["scispace"], "appIds": [], "description": "AI research assistant for reading and explaining academic papers.", "riskReason": "Mostly public-paper analysis with moderate exposure; uploaded internal research or drafts would sit under consumer terms." }, + { "name": "Gamma", "vendor": "Gamma", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["gamma"], "appIds": [], "description": "AI presentation and document builder generating decks from prompts.", "riskReason": "Business plans, strategy outlines and client material are pasted in to generate decks, all stored in the vendor cloud under personal accounts." }, + { "name": "Tome", "vendor": "Tome", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["tome.app","tome ai"], "appIds": [], "description": "AI storytelling and presentation tool.", "riskReason": "Same as other AI deck builders: presentation content with business context processed and stored under consumer accounts." }, + { "name": "Beautiful.ai", "vendor": "Beautiful.ai", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["beautiful.ai"], "appIds": [], "description": "AI-assisted presentation design platform.", "riskReason": "Deck content in vendor cloud under individual accounts; moderate confidentiality exposure, team plans available." }, + { "name": "Notion", "vendor": "Notion", "category": "AI Presentation & Productivity", "risk": "Informational", "matchNames": ["notion"], "appIds": [], "description": "Workspace platform with embedded Notion AI; primarily a standard business tool.", "riskReason": "Listed for visibility because of embedded AI features; as a mainstream workspace product it is a procurement question rather than shadow AI, unless personal workspaces hold company content." }, + { "name": "Coda", "vendor": "Coda", "category": "AI Presentation & Productivity", "risk": "Informational", "matchNames": ["coda"], "appIds": [], "description": "Document/database workspace with embedded AI; primarily a standard business tool.", "riskReason": "Included for visibility of its AI features; risk profile is that of a normal SaaS workspace, notable only when company data lives in personal accounts." }, + { "name": "Mem", "vendor": "Mem", "category": "AI Presentation & Productivity", "risk": "Medium", "matchNames": ["mem.ai"], "appIds": [], "description": "AI-organized note-taking app.", "riskReason": "Personal notes app that accumulates meeting notes and work context in a consumer cloud with AI processing under individual accounts." }, + { "name": "Monica", "vendor": "Monica", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["monica"], "appIds": [], "description": "All-in-one AI browser extension bundling chat, reading and writing on any page.", "riskReason": "Browser extensions with page access can read everything the user views - webmail, CRM, admin panels - and send page content to cloud AI on consumer accounts; broad access with minimal transparency." }, + { "name": "Sider", "vendor": "Sider", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["sider.ai"], "appIds": [], "description": "AI sidebar browser extension for chat, reading and writing on any page.", "riskReason": "Same profile as other AI sidebar extensions: standing read access to visited pages, content routed to multiple model backends under personal accounts." }, + { "name": "Merlin", "vendor": "Merlin", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["merlin"], "appIds": [], "description": "Browser extension providing one-click AI access across models on any website.", "riskReason": "Page-content access across all browsing plus multi-provider routing under consumer accounts; high exposure surface with weak governance." }, + { "name": "MaxAI", "vendor": "MaxAI", "category": "AI Presentation & Productivity", "risk": "High", "matchNames": ["maxai"], "appIds": [], "description": "AI browser extension for summarizing, rewriting and chatting with page content.", "riskReason": "Reads and processes page content across authenticated business webapps, sending it to cloud models under a personal subscription." }, + { "name": "Hugging Face", "vendor": "Hugging Face", "category": "AI Platform & API", "risk": "Low", "matchNames": ["hugging face","huggingface"], "appIds": [], "description": "Platform hosting open models, datasets and AI apps (Spaces).", "riskReason": "Primarily a development resource with reasonable terms; main exposures are uploading company data to public Spaces or datasets, and unvetted model downloads." }, + { "name": "Replicate", "vendor": "Replicate", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["replicate"], "appIds": [], "description": "API platform for running open-source models in the cloud.", "riskReason": "Developer usage on personal API keys sends inference data to third-party-hosted community models with variable provenance and terms." }, + { "name": "OpenRouter", "vendor": "OpenRouter", "category": "AI Platform & API", "risk": "High", "matchNames": ["openrouter"], "appIds": [], "description": "Aggregator API routing requests to many model providers through one key.", "riskReason": "One key fans prompts out to dozens of providers - including free routes that explicitly log and train on inputs - so data terms are effectively whichever backend was cheapest that day." }, + { "name": "Together AI", "vendor": "Together AI", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["together ai","together.ai"], "appIds": [], "description": "Cloud platform for running and fine-tuning open-source models.", "riskReason": "Developer platform with acceptable commercial terms; individual API keys moving company data through personal accounts is the primary concern." }, + { "name": "Groq", "vendor": "Groq", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["groq"], "appIds": [], "description": "Ultra-fast inference API for open models on custom hardware.", "riskReason": "Free-tier speed attracts personal-key experimentation; prompts flow under individual accounts outside organizational data terms." }, + { "name": "Fireworks AI", "vendor": "Fireworks AI", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["fireworks ai"], "appIds": [], "description": "Inference platform for open and fine-tuned production models.", "riskReason": "Reasonable enterprise posture; risk is standard personal-API-key usage outside procurement and data agreements." }, + { "name": "Cohere", "vendor": "Cohere", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["cohere"], "appIds": [], "description": "Enterprise-focused LLM provider for search, RAG and generation.", "riskReason": "Enterprise-oriented vendor with solid data terms; detected personal-key usage still bypasses organizational agreements." }, + { "name": "AI21 Labs", "vendor": "AI21 Labs", "category": "AI Platform & API", "risk": "Medium", "matchNames": ["ai21"], "appIds": [], "description": "LLM provider (Jamba, Jurassic) with APIs and writing products.", "riskReason": "Established vendor with business terms; individual API usage under personal accounts is the main gap." }, + { "name": "Databricks", "vendor": "Databricks", "category": "AI Platform & API", "risk": "Informational", "matchNames": ["databricks"], "appIds": [], "description": "Data and AI platform; AI features ride on the governed lakehouse deployment.", "riskReason": "An enterprise data platform procured and governed centrally; listed for visibility of its AI capabilities rather than as a shadow AI concern." }, + { "name": "Weights & Biases", "vendor": "Weights & Biases", "category": "AI Platform & API", "risk": "Low", "matchNames": ["weights & biases","wandb"], "appIds": [], "description": "ML experiment tracking and model registry platform.", "riskReason": "Developer tooling with enterprise terms; the main caution is experiment logs and datasets uploaded to personal free accounts." }, + { "name": "Gong", "vendor": "Gong", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["gong"], "appIds": [], "description": "Revenue intelligence platform recording and analyzing sales calls.", "riskReason": "Records customer calls at scale; as a sanctioned deployment it is governed, but any individual or trial usage records conversations without proper consent chains." }, + { "name": "Apollo.io", "vendor": "Apollo", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["apollo.io"], "appIds": [], "description": "Sales intelligence and engagement platform with AI outreach.", "riskReason": "Individual seats sync contacts and mailboxes for outreach; CRM-grade customer data accumulates under personal accounts, plus contributory data-sharing terms." }, + { "name": "Regie.ai", "vendor": "Regie.ai", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["regie"], "appIds": [], "description": "AI sales prospecting and sequence generation platform.", "riskReason": "Prospect data and outreach content processed in vendor cloud under sales-team or individual accounts; moderate, procurement-level exposure." }, + { "name": "Intercom Fin", "vendor": "Intercom", "category": "AI Business Apps", "risk": "Low", "matchNames": ["intercom"], "appIds": [], "description": "Intercom's AI customer support agent answering on company knowledge.", "riskReason": "Deployed as part of a governed Intercom contract with enterprise data terms; a procurement item rather than typical shadow adoption." }, + { "name": "Salesforce Einstein", "vendor": "Salesforce", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["einstein"], "appIds": [], "description": "AI layer inside Salesforce (Einstein/Agentforce); part of the governed CRM.", "riskReason": "Runs inside the organization's existing Salesforce trust boundary with contractual controls; listed for visibility, not as shadow AI." }, + { "name": "ServiceNow Now Assist", "vendor": "ServiceNow", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["now assist"], "appIds": [], "description": "AI capabilities embedded in the ServiceNow platform.", "riskReason": "Part of a governed enterprise ITSM deployment with platform-level data terms; informational visibility only." }, + { "name": "Atlassian Rovo", "vendor": "Atlassian", "category": "AI Business Apps", "risk": "Informational", "matchNames": ["rovo"], "appIds": [], "description": "Atlassian's AI search and agents across Jira and Confluence.", "riskReason": "Ships inside the existing Atlassian cloud agreement and permission model; a licensing and configuration question rather than shadow AI." }, + { "name": "Moveworks", "vendor": "Moveworks", "category": "AI Business Apps", "risk": "Low", "matchNames": ["moveworks"], "appIds": [], "description": "Enterprise AI assistant automating IT and HR support.", "riskReason": "Sold and deployed as a governed enterprise product with admin controls and contractual data terms; low residual risk when centrally managed." }, + { "name": "HireVue", "vendor": "HireVue", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["hirevue"], "appIds": [], "description": "AI-assisted video interviewing and candidate assessment platform.", "riskReason": "Processes candidate PII and interview recordings with algorithmic assessment - heavily regulated territory (GDPR, EEOC) that demands a governed deployment, not team-level adoption." }, + { "name": "Eightfold", "vendor": "Eightfold AI", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["eightfold"], "appIds": [], "description": "AI talent intelligence platform for recruiting and workforce planning.", "riskReason": "Employee and candidate career data processed with AI matching; regulated HR data means contractual deployment is essential." }, + { "name": "Harvey", "vendor": "Harvey", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["harvey.ai","harvey ai"], "appIds": [], "description": "AI legal assistant for research, review and drafting.", "riskReason": "Privileged legal documents and matters are processed in the vendor cloud; strong enterprise posture, but privilege and confidentiality demand firm-level agreements, not individual accounts." }, + { "name": "Spellbook", "vendor": "Spellbook", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["spellbook"], "appIds": [], "description": "AI contract drafting and review add-in for Word.", "riskReason": "Contracts under negotiation - among the most sensitive documents an organization holds - are processed by the vendor; needs contractual deployment rather than personal trials." }, + { "name": "DataRobot", "vendor": "DataRobot", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["datarobot"], "appIds": [], "description": "Automated machine learning platform for building predictive models.", "riskReason": "Training datasets uploaded to the platform often contain customer records; enterprise-grade vendor, but data-science teams adopting it without review move regulated data." }, + { "name": "H2O.ai", "vendor": "H2O.ai", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["h2o.ai","h2o ai"], "appIds": [], "description": "Open-source and enterprise AutoML platform.", "riskReason": "Similar to other ML platforms: dataset uploads to cloud services under team accounts need data-governance review; local open-source use is lower risk." }, + { "name": "Julius AI", "vendor": "Julius", "category": "AI Business Apps", "risk": "High", "matchNames": ["julius ai"], "appIds": [], "description": "AI data analyst that answers questions about uploaded spreadsheets and datasets.", "riskReason": "Users upload raw business data - sales figures, customer lists, financials - to a consumer service for analysis; wholesale dataset exfiltration under personal accounts." }, + { "name": "Vapi", "vendor": "Vapi", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["vapi"], "appIds": [], "description": "Developer platform for building AI voice agents for calls.", "riskReason": "Voice agents handle live customer calls and their recordings via developer accounts; consent, recording law and call-content retention need review before production use." }, + { "name": "Retell AI", "vendor": "Retell", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["retell ai"], "appIds": [], "description": "Platform for building AI phone agents.", "riskReason": "Same profile as other voice-agent platforms: live call audio and transcripts processed under developer accounts, with telephony consent obligations." }, + { "name": "Voiceflow", "vendor": "Voiceflow", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["voiceflow"], "appIds": [], "description": "Design and orchestration platform for chat and voice AI agents.", "riskReason": "Conversation flows and connected knowledge bases sit in the vendor cloud under team accounts; moderate exposure typical of agent-building SaaS." }, + { "name": "Botpress", "vendor": "Botpress", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["botpress"], "appIds": [], "description": "Platform for building and deploying chatbots with LLM integration.", "riskReason": "Bot knowledge bases and conversation logs in vendor or self-hosted deployments; risk depends on hosting choice and what data the bots are fed." }, + { "name": "Chatbase", "vendor": "Chatbase", "category": "AI Business Apps", "risk": "High", "matchNames": ["chatbase"], "appIds": [], "description": "Service for building custom AI chatbots trained on uploaded company content.", "riskReason": "The setup flow is uploading internal documents and site content to train a hosted bot - company knowledge wholesale into a small vendor's cloud, then exposed through a public chat widget." }, + { "name": "StackAI", "vendor": "StackAI", "category": "AI Business Apps", "risk": "Medium", "matchNames": ["stackai","stack ai"], "appIds": [], "description": "No-code platform for building internal AI workflows and agents.", "riskReason": "Internal documents and workflow data connected to a third-party orchestration cloud under team accounts; needs vendor review before feeding it business systems." } ] diff --git a/Config/openapi.json b/Config/openapi.json index 7fbc0152a540a..0456733b43b00 100644 --- a/Config/openapi.json +++ b/Config/openapi.json @@ -23157,6 +23157,12 @@ }, "targetUrl": { "type": "string" + }, + "appId": { + "type": "string" + }, + "appSecret": { + "type": "string" } } } @@ -42056,4 +42062,4 @@ } } } -} \ No newline at end of file +} diff --git a/Config/standards.json b/Config/standards.json index 6552e8000429a..af70959830dd3 100644 --- a/Config/standards.json +++ b/Config/standards.json @@ -51,8 +51,12 @@ "name": "standards.CopilotSettings.allowWebSearch", "options": [ { "label": "Do not configure", "value": "donotconfigure" }, - { "label": "Enabled", "value": "1" }, - { "label": "Disabled", "value": "0" } + { "label": "Enabled in Microsoft 365 Copilot and Microsoft 365 Copilot Chat", "value": "2" }, + { "label": "Disabled in Microsoft 365 Copilot and Microsoft 365 Copilot Chat", "value": "1" }, + { + "label": "Disabled in Microsoft 365 Copilot Work mode, Enabled in Microsoft 365 Copilot Chat", + "value": "0" + } ] }, { @@ -1371,21 +1375,38 @@ "cat": "Entra (AAD) Standards", "tag": ["SMB1001 (2.5)"], "appliesToTest": ["SMB1001_2_5", "ZTNA21889"], - "helpText": "Sets the state of the registration campaign for the tenant", - "docsDescription": "Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in.", + "helpText": "Sets the state of the registration campaign for the tenant, including the targeted authentication method, snooze settings and include/exclude groups. Leave include/exclude blank to keep the groups currently configured in the tenant, or use 'AllUsers' to target all users.", + "docsDescription": "Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the targeted authentication method (Microsoft Authenticator or a Passkey) during sign-in. Supports limiting the number of snoozes, and including or excluding specific groups (by display name).", "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", + "label": "Registration campaign state", "name": "standards.NudgeMFA.state", "options": [ { "label": "Enabled", "value": "enabled" }, { "label": "Disabled", "value": "disabled" } ] }, + { + "type": "autoComplete", + "multiple": false, + "creatable": false, + "required": false, + "label": "Authentication method to nudge users to register (default is Microsoft Authenticator)", + "name": "standards.NudgeMFA.targetedAuthenticationMethod", + "options": [ + { "label": "Microsoft Authenticator", "value": "microsoftAuthenticator" }, + { "label": "Passkey (FIDO2)", "value": "fido2" } + ], + "condition": { + "field": "standards.NudgeMFA.state", + "compareType": "valueEq", + "compareValue": "enabled" + } + }, { "type": "number", "name": "standards.NudgeMFA.snoozeDurationInDays", @@ -1395,6 +1416,39 @@ "min": { "value": 0, "message": "Minimum value is 0" }, "max": { "value": 14, "message": "Maximum value is 14" } } + }, + { + "type": "switch", + "name": "standards.NudgeMFA.enforceRegistrationAfterAllowedSnoozes", + "label": "Limited number of snoozes (require registration after 3 snoozes)", + "defaultValue": true, + "condition": { + "field": "standards.NudgeMFA.state", + "compareType": "valueEq", + "compareValue": "enabled" + } + }, + { + "type": "textField", + "name": "standards.NudgeMFA.includeTargets", + "label": "Include groups (comma separated group names, 'AllUsers' for everyone, blank = keep current targets)", + "required": false, + "condition": { + "field": "standards.NudgeMFA.state", + "compareType": "valueEq", + "compareValue": "enabled" + } + }, + { + "type": "textField", + "name": "standards.NudgeMFA.excludeTargets", + "label": "Exclude groups (comma separated group names, blank = keep current exclusions)", + "required": false, + "condition": { + "field": "standards.NudgeMFA.state", + "compareType": "valueEq", + "compareValue": "enabled" + } } ], "label": "Sets the state for the request to setup Authenticator", @@ -1409,10 +1463,23 @@ "cat": "Entra (AAD) Standards", "tag": ["CISA (MS.AAD.21.1v1)", "SMB1001 (2.8)"], "appliesToTest": ["SMB1001_2_8", "ZTNA21868"], - "helpText": "Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", - "docsDescription": "Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc", - "executiveText": "Restricts the creation of Microsoft 365 groups, Teams, and SharePoint sites to authorized administrators, preventing uncontrolled proliferation of collaboration spaces. This ensures proper governance, naming conventions, and resource management while maintaining oversight of all collaborative environments.", - "addedComponent": [], + "helpText": "Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc. Optionally allows members of a specific security group to keep creating groups (GroupCreationAllowedGroupId).", + "docsDescription": "Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc. Optionally, a security group can be named whose members remain allowed to create groups; the group is resolved by display name in each tenant and can be created automatically when it does not exist. When no group is named, the existing GroupCreationAllowedGroupId value in the tenant is left untouched.", + "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. An approved group of designated users can optionally retain the ability to create groups.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.DisableM365GroupUsers.AllowedGroupName", + "label": "Optional: name of the group whose members may still create M365 groups", + "required": false + }, + { + "type": "switch", + "name": "standards.DisableM365GroupUsers.CreateGroup", + "label": "Create the allowed group if it does not exist", + "required": false + } + ], "label": "Disable M365 Group creation by users", "impact": "Low Impact", "impactColour": "info", @@ -1564,6 +1631,33 @@ "recommendedBy": ["CIS", "CIPP"], "requiredCapabilities": ["AAD_PREMIUM", "AAD_PREMIUM_P2"] }, + { + "name": "standards.DisableInactiveUsers", + "cat": "Entra (AAD) Standards", + "tag": ["CMMC (IA.L2-3.5.6)", "NIST SP 800-171 (3.5.6)"], + "helpText": "Blocks login for cloud-only member users that have not signed in for a configurable number of days (minimum 30). Includes accounts that have never signed in when the account is older than the threshold. Hybrid (on-premises synced) users are skipped. Users without sign-in activity data are not disabled.", + "docsDescription": "Disables enabled Member user accounts after a defined period of inactivity (minimum 30 days), supporting CMMC IA.L2-3.5.6 / NIST SP 800-171 3.5.6. Inactivity is based on signInActivity.lastSuccessfulSignInDateTime. Accounts that have never signed in (signInActivity present but no successful sign-in) are included when createdDateTime is older than the threshold. Users missing signInActivity entirely are skipped so incomplete Graph data cannot cause accidental disables. Hybrid-synced (onPremisesSyncEnabled) users are skipped because Entra disable often will not stick. Recently re-enabled accounts (last 7 days) are also skipped. Values below 30 days are rejected at runtime.", + "executiveText": "Automatically disables unused employee accounts that have not signed in for a configured number of days, reducing risk from dormant accounts and supporting CMMC / NIST inactive-identifier requirements. Hybrid directory-synced accounts are left alone so on-premises identity remains the source of truth for those users.", + "addedComponent": [ + { + "type": "number", + "name": "standards.DisableInactiveUsers.days", + "required": true, + "defaultValue": 180, + "label": "Days of inactivity (minimum 30)", + "validators": { + "min": { "value": 30, "message": "Minimum value is 30" } + } + } + ], + "label": "Disable Member accounts that have not logged on for a number of days", + "impact": "High Impact", + "impactColour": "danger", + "addedDate": "2026-07-22", + "powershellEquivalent": "Get-MgUser -Property SignInActivity & Update-MgUser -AccountEnabled $false", + "recommendedBy": ["CIPP", "CMMC"], + "requiredCapabilities": ["AAD_PREMIUM", "AAD_PREMIUM_P2"] + }, { "name": "standards.OauthConsent", "cat": "Entra (AAD) Standards", @@ -1587,8 +1681,8 @@ "ZTNA21807", "ZTNA21810" ], - "helpText": "Disables users from being able to consent to applications, except for those specified in the field below", - "docsDescription": "Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications.", + "helpText": "Disables users from being able to consent to applications, except for those specified in the field below. This standard conflicts with the \"Allow users to consent to applications with low security risk\" standard; only one of the two should be assigned per tenant.", + "docsDescription": "Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications. This standard conflicts with the \"Allow users to consent to applications with low security risk\" (OauthConsentLowSec) standard. Enabling both on the same tenant causes a remediation conflict, so only assign one.", "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": [ { @@ -1609,8 +1703,8 @@ "name": "standards.OauthConsentLowSec", "cat": "Entra (AAD) Standards", "tag": ["IntegratedApps"], - "helpText": "Sets the default oauth consent level so users can consent to applications that have low risks.", - "docsDescription": "Allows users to consent to applications with low assigned risk.", + "helpText": "Sets the default oauth consent level so users can consent to applications that have low risks. This standard conflicts with the \"Require admin consent for applications\" standard; only one of the two should be assigned per tenant.", + "docsDescription": "Allows users to consent to applications with low assigned risk. This standard conflicts with the \"Require admin consent for applications (Prevent OAuth phishing)\" (OauthConsent) standard. Enabling both on the same tenant causes a remediation conflict, so only assign one.", "executiveText": "Allows employees to approve low-risk applications without administrative intervention, balancing security with productivity. This provides a middle ground between complete restriction and open access, enabling business agility while maintaining protection against high-risk applications.", "label": "Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure)", "impact": "Medium Impact", @@ -1656,27 +1750,38 @@ "name": "standards.StaleEntraDevices", "cat": "Entra (AAD) Standards", "tag": ["Essential 8 (1501)", "NIST CSF 2.0 (ID.AM-08)", "NIST CSF 2.0 (PR.PS-03)"], - "helpText": "**Remediate is currently not available**. Cleans up Entra devices that have not connected/signed in for the specified number of days.", - "docsDescription": "Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices)", + "helpText": "Cleans up Entra devices that have not connected/signed in for the specified number of days. Remediation first disables stale enabled devices and, on a later run, deletes stale devices that are already disabled. Hybrid-joined, Intune-managed and Autopilot devices are skipped. Deleting a device permanently removes any BitLocker recovery keys stored on it.", + "docsDescription": "Cleans up Entra devices that have not connected/signed in for the specified number of days. Remediation first disables stale enabled devices once they pass the disable threshold, and later deletes devices that are already disabled once they have been inactive for the disable threshold plus the configured grace delta (deletion age = disable threshold + grace days). The disable-before-delete grace period is further guaranteed by never deleting a device in the same pass it was disabled. Hybrid-joined (on-premises synced), Intune-managed/compliant, and system-managed Autopilot devices are excluded, in line with the [Microsoft guidance](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices). **Warning:** deleting a device permanently removes any BitLocker recovery keys stored on that device object.", "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)", + "required": true, + "defaultValue": 90, + "label": "Days before stale (disables the device after this many days of inactivity, minimum 30)", "validators": { "min": { "value": 30, "message": "Minimum value is 30" } } + }, + { + "type": "number", + "name": "standards.StaleEntraDevices.deviceDeleteThreshold", + "defaultValue": 0, + "label": "Grace days after disable before deletion (0 = never delete). Devices are deleted once inactive for the disable threshold plus this many additional days.", + "validators": { + "min": { "value": 0, "message": "Minimum value is 0" } + } } ], - "disabledFeatures": { "report": false, "warn": false, "remediate": true }, + "disabledFeatures": { "report": false, "warn": false, "remediate": false }, "label": "Cleanup stale Entra devices", "impact": "High Impact", "impactColour": "danger", "addedDate": "2025-01-19", "powershellEquivalent": "Remove-MgDevice, Update-MgDevice or Graph API", "recommendedBy": [], - "requiredCapabilities": ["INTUNE_A", "MDM_Services", "EMS", "SCCM", "MICROSOFTINTUNEPLAN1"] + "requiredCapabilities": [] }, { "name": "standards.UndoOauth", @@ -3158,6 +3263,21 @@ "powershellEquivalent": "Get-Mailbox & Update-MgUser", "recommendedBy": ["CIS", "CIPP"] }, + { + "name": "standards.TeamsDisableResourceAccounts", + "cat": "Teams Standards", + "tag": ["NIST CSF 2.0 (PR.AA-01)"], + "helpText": "Blocks sign-in for all Teams resource accounts used by Auto Attendants and Call Queues. Microsoft's guidance is to block sign-in for resource accounts as they do not require an interactive login to function.", + "docsDescription": "Teams resource accounts (the accounts backing Auto Attendants and Call Queues) do not require interactive sign-in to function. If sign-in is enabled and the password is reset, the account can be logged into directly, which presents a security risk. Microsoft's guidance is to block sign-in for these accounts. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD.", + "executiveText": "Prevents direct login to the service accounts that power phone system features like Auto Attendants and Call Queues. These accounts work without anyone signing into them, so blocking sign-in removes an unnecessary attack surface while keeping the phone system fully functional.", + "addedComponent": [], + "label": "Block sign-in for Teams resource accounts", + "impact": "Medium Impact", + "impactColour": "warning", + "addedDate": "2026-07-17", + "powershellEquivalent": "Get-CsOnlineApplicationInstance & Update-MgUser", + "recommendedBy": ["Microsoft", "CIPP"] + }, { "name": "standards.DisableResourceMailbox", "cat": "Exchange Standards", @@ -5059,6 +5179,7 @@ }, { "name": "standards.SPDirectSharing", + "deprecated": true, "cat": "SharePoint Standards", "tag": [], "helpText": "This standard has been deprecated in favor of the Default Sharing Link standard. ", @@ -6519,7 +6640,7 @@ "label": "Conditional Access Template", "cat": "Templates", "multiple": true, - "disabledFeatures": { "report": true, "warn": true, "remediate": false }, + "disabledFeatures": { "report": false, "warn": false, "remediate": false }, "impact": "High Impact", "addedDate": "2023-12-30", "tag": [ @@ -8032,7 +8153,7 @@ "tag": ["CIS M365 7.0.0 (5.2.3.8)", "CIS M365 7.0.0 (5.2.3.9)"], "appliesToTest": ["CIS_5_2_3_8", "CIS_5_2_3_9"], "helpText": "**Requires Entra ID P1.** Configures the Entra ID Smart Lockout settings including lockout duration, lockout threshold, and on-premises integration mode.", - "docsDescription": "Configures the Entra ID Smart Lockout policy which protects against brute-force password attacks. Smart Lockout locks out bad actors who try to guess user passwords or use brute-force methods. It recognizes sign-ins from valid users and treats them differently from attackers. Settings include lockout duration (seconds), lockout threshold (failed attempts before lockout), and on-premises password protection mode (Audit or Enforced).", + "docsDescription": "Configures the Entra ID Smart Lockout policy which protects against brute-force password attacks. Smart Lockout locks out bad actors who try to guess user passwords or use brute-force methods. It recognizes sign-ins from valid users and treats them differently from attackers. Settings include lockout duration (seconds), lockout threshold (failed attempts before lockout), and on-premises password protection mode (Audit or Enforce).", "addedComponent": [ { "type": "number", @@ -8059,7 +8180,7 @@ "label": "On-Premises Mode", "options": [ { "label": "Audit", "value": "Audit" }, - { "label": "Enforced", "value": "Enforced" } + { "label": "Enforce", "value": "Enforce" } ] } ], diff --git a/Modules/AzBobbyTables/3.5.1/AzBobbyTables.PS.dll b/Modules/AzBobbyTables/3.5.1/AzBobbyTables.PS.dll deleted file mode 100644 index cd004ea9a49b2..0000000000000 Binary files a/Modules/AzBobbyTables/3.5.1/AzBobbyTables.PS.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/AzBobbyTables.Core.dll b/Modules/AzBobbyTables/3.5.1/dependencies/AzBobbyTables.Core.dll deleted file mode 100644 index bee6b1a4afd6c..0000000000000 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/AzBobbyTables.Core.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Threading.dll b/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Threading.dll deleted file mode 100644 index eb30047dc7144..0000000000000 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Threading.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Validation.dll b/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Validation.dll deleted file mode 100644 index 8c4956f420e13..0000000000000 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.VisualStudio.Validation.dll and /dev/null differ diff --git a/Modules/AzBobbyTables/3.6.0/AzBobbyTables.PS.dll b/Modules/AzBobbyTables/3.6.0/AzBobbyTables.PS.dll new file mode 100644 index 0000000000000..0886fa7c42d74 Binary files /dev/null and b/Modules/AzBobbyTables/3.6.0/AzBobbyTables.PS.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/AzBobbyTables.psd1 b/Modules/AzBobbyTables/3.6.0/AzBobbyTables.psd1 similarity index 84% rename from Modules/AzBobbyTables/3.5.1/AzBobbyTables.psd1 rename to Modules/AzBobbyTables/3.6.0/AzBobbyTables.psd1 index b35aa5f9e1491..b07587f76bff4 100644 --- a/Modules/AzBobbyTables/3.5.1/AzBobbyTables.psd1 +++ b/Modules/AzBobbyTables/3.6.0/AzBobbyTables.psd1 @@ -4,7 +4,7 @@ RootModule = 'AzBobbyTables.PS.dll' # Version number of this module. -ModuleVersion = '3.5.1' +ModuleVersion = '3.6.0' # Supported PSEditions CompatiblePSEditions = @('Core') @@ -110,11 +110,16 @@ PrivateData = @{ # IconUri = '' # ReleaseNotes of this module - ReleaseNotes = '## [3.5.1] - 2026-04-22 + ReleaseNotes = '## [3.6.0] - 2026-07-01 + +### Added + +- Added a `-MaxConnectionsPerServer` parameter to `New-AzDataTableContext` to cap the number of concurrent connections per server endpoint on the shared HTTP client pool. Applied process-wide on first use; default is unlimited. ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122)) +- Added a `-MaxRetries` parameter to the table operation cmdlets (`Add-`, `Get-`, `Remove-`, `Update-AzDataTableEntity`, `Clear-`, `Get-`, `New-`, `Remove-AzDataTable`) to retry throttled requests (HTTP 429), waiting for the service''s Retry-After hint between attempts. Defaults to `0` (no retries). ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122)) ### Changed -- Share a single HttpClient across all TableClient/TableServiceClient instances via HttpClientTransport, enabling TCP connection pooling and reducing socket churn in high-concurrency scenarios +Bumped Microsoft.VisualStudio.Threading from 17.14.15 to 18.7.23 (#132) ' diff --git a/Modules/AzBobbyTables/3.5.1/CHANGELOG.md b/Modules/AzBobbyTables/3.6.0/CHANGELOG.md similarity index 75% rename from Modules/AzBobbyTables/3.5.1/CHANGELOG.md rename to Modules/AzBobbyTables/3.6.0/CHANGELOG.md index 4910bdc0cbfff..1871f2ceeb3b9 100644 --- a/Modules/AzBobbyTables/3.5.1/CHANGELOG.md +++ b/Modules/AzBobbyTables/3.6.0/CHANGELOG.md @@ -4,9 +4,21 @@ The format is based on and uses the types of changes according to [Keep a Change ## [Unreleased] +### Added + +- Added a `-MaxConnectionsPerServer` parameter to `New-AzDataTableContext` to cap the number of concurrent connections per server endpoint on the shared HTTP client pool. Applied process-wide on first use; default is unlimited. ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122)) +- Added a `-MaxRetries` parameter to the table operation cmdlets (`Add-`, `Get-`, `Remove-`, `Update-AzDataTableEntity`, `Clear-`, `Get-`, `New-`, `Remove-AzDataTable`) to retry throttled requests (HTTP 429), waiting for the service's Retry-After hint between attempts. Defaults to `0` (no retries). ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122)) + +### Changed + +Bumped Microsoft.VisualStudio.Threading from 17.14.15 to 18.7.23 (#132) + +## [3.5.0] - 2026-04-20 + ### Changed -- Share a single HttpClient across all TableClient/TableServiceClient instances via HttpClientTransport, enabling TCP connection pooling and reducing socket churn in high-concurrency scenarios +- Now shares a single HttpClient across all TableClient/TableServiceClient instances via HttpClientTransport, enabling TCP connection pooling and reducing socket churn in high-concurrency scenarios [#122](https://github.com/PalmEmanuel/AzBobbyTables/pull/122) +- Bump System.Linq.Async from 7.0.0 to 7.0.1 ## [3.4.2] - 2026-03-30 @@ -92,7 +104,8 @@ 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.4.2...HEAD +[unreleased]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.5.0...HEAD +[3.5.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.2...v3.5.0 [3.4.2]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.1...v3.4.2 [3.4.1]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.4.0...v3.4.1 [3.4.0]: https://github.com/PalmEmanuel/AzBobbyTables/compare/v3.3.2...v3.4.0 diff --git a/Modules/AzBobbyTables/3.5.1/LICENSE b/Modules/AzBobbyTables/3.6.0/LICENSE similarity index 100% rename from Modules/AzBobbyTables/3.5.1/LICENSE rename to Modules/AzBobbyTables/3.6.0/LICENSE diff --git a/Modules/AzBobbyTables/3.6.0/PSGetModuleInfo.xml b/Modules/AzBobbyTables/3.6.0/PSGetModuleInfo.xml new file mode 100644 index 0000000000000..3ba1a2251829c --- /dev/null +++ b/Modules/AzBobbyTables/3.6.0/PSGetModuleInfo.xml @@ -0,0 +1,159 @@ + + + + Microsoft.PowerShell.Commands.PSRepositoryItemInfo + System.Management.Automation.PSCustomObject + System.Object + + + AzBobbyTables + 3.6.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. +
2026-07-01T12:50:12+08:00
+ +
2026-07-01T21:42:52.9978294+08:00
+ + + + Microsoft.PowerShell.Commands.DisplayHintType + System.Enum + System.ValueType + System.Object + + DateTime + 2 + + +
+ + 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 + + + + + Cmdlet + + + + Add-AzDataTableEntity + Clear-AzDataTable + Get-AzDataTable + Get-AzDataTableEntity + Get-AzDataTableSupportedEntityType + Remove-AzDataTableEntity + Update-AzDataTableEntity + New-AzDataTableContext + Remove-AzDataTable + New-AzDataTable + + + + + DscResource + + + + RoleCapability + + + + Workflow + + + + + + ## [3.6.0] - 2026-07-01_x000A__x000A_### Added_x000A__x000A_- Added a `-MaxConnectionsPerServer` parameter to `New-AzDataTableContext` to cap the number of concurrent connections per server endpoint on the shared HTTP client pool. Applied process-wide on first use; default is unlimited. ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122))_x000A_- Added a `-MaxRetries` parameter to the table operation cmdlets (`Add-`, `Get-`, `Remove-`, `Update-AzDataTableEntity`, `Clear-`, `Get-`, `New-`, `Remove-AzDataTable`) to retry throttled requests (HTTP 429), waiting for the service's Retry-After hint between attempts. Defaults to `0` (no retries). ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122))_x000A__x000A_### Changed_x000A__x000A_Bumped Microsoft.VisualStudio.Threading from 17.14.15 to 18.7.23 (#132) + + + + + 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.6.0] - 2026-07-01_x000A__x000A_### Added_x000A__x000A_- Added a `-MaxConnectionsPerServer` parameter to `New-AzDataTableContext` to cap the number of concurrent connections per server endpoint on the shared HTTP client pool. Applied process-wide on first use; default is unlimited. ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122))_x000A_- Added a `-MaxRetries` parameter to the table operation cmdlets (`Add-`, `Get-`, `Remove-`, `Update-AzDataTableEntity`, `Clear-`, `Get-`, `New-`, `Remove-AzDataTable`) to retry throttled requests (HTTP 429), waiting for the service's Retry-After hint between attempts. Defaults to `0` (no retries). ([#133](https://github.com/PalmEmanuel/AzBobbyTables/pull/122))_x000A__x000A_### Changed_x000A__x000A_Bumped Microsoft.VisualStudio.Threading from 17.14.15 to 18.7.23 (#132) + True + True + 3 + 93772 + 1969607 + 1/07/2026 12:50:12 PM +08:00 + 1/07/2026 12:50:12 PM +08:00 + 1/07/2026 1:42:19 PM +08: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 + 2026-07-01T13:42:19Z + 3.6.0 + Emanuel Palm + false + Module + AzBobbyTables.nuspec|dependencies\System.Memory.Data.dll|dependencies\System.ClientModel.dll|dependencies\System.Interactive.Async.dll|LICENSE|dependencies\AzBobbyTables.Core.dll|dependencies\System.Text.Encodings.Web.dll|dependencies\Microsoft.Bcl.AsyncInterfaces.dll|AzBobbyTables.psd1|dependencies\System.Linq.AsyncEnumerable.dll|dependencies\Microsoft.Win32.Registry.dll|dependencies\System.Numerics.Vectors.dll|CHANGELOG.md|dependencies\System.Linq.Async.dll|dependencies\System.Security.Principal.Windows.dll|dependencies\System.Buffers.dll|AzBobbyTables.PS.dll|dependencies\System.Threading.Tasks.Extensions.dll|dependencies\System.Security.AccessControl.dll|dependencies\Azure.Core.dll|en-US\AzBobbyTables.PS.dll-Help.xml|dependencies\System.Memory.dll|dependencies\System.Diagnostics.DiagnosticSource.dll|dependencies\Microsoft.VisualStudio.Validation.dll|dependencies\Microsoft.Bcl.Memory.dll|dependencies\Microsoft.VisualStudio.Threading.dll|dependencies\Azure.Data.Tables.dll|dependencies\System.Runtime.CompilerServices.Unsafe.dll|dependencies\System.Text.Json.dll + eead4f42-5080-4f83-8901-340c529a5a11 + 7.0 + pipe.how + + + C:\Users\Zac\Documents\PowerShell\Modules\AzBobbyTables\3.6.0 +
+
+
diff --git a/Modules/AzBobbyTables/3.6.0/dependencies/AzBobbyTables.Core.dll b/Modules/AzBobbyTables/3.6.0/dependencies/AzBobbyTables.Core.dll new file mode 100644 index 0000000000000..4cb326f0b68db Binary files /dev/null and b/Modules/AzBobbyTables/3.6.0/dependencies/AzBobbyTables.Core.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Azure.Core.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Azure.Core.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/Azure.Core.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/Azure.Core.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Azure.Data.Tables.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Azure.Data.Tables.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/Azure.Data.Tables.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/Azure.Data.Tables.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll similarity index 64% rename from Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll index e93a3813812e2..2867daaf7d5fe 100644 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.AsyncInterfaces.dll and b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.Memory.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.Memory.dll similarity index 83% rename from Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.Memory.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.Memory.dll index 98594d3ab74ff..8b5a97d8c70eb 100644 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Bcl.Memory.dll and b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Bcl.Memory.dll differ diff --git a/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Threading.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Threading.dll new file mode 100644 index 0000000000000..052dcc98c342a Binary files /dev/null and b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Threading.dll differ diff --git a/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Validation.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Validation.dll new file mode 100644 index 0000000000000..40afae8203d65 Binary files /dev/null and b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.VisualStudio.Validation.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Win32.Registry.dll b/Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Win32.Registry.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/Microsoft.Win32.Registry.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/Microsoft.Win32.Registry.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Buffers.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Buffers.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Buffers.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Buffers.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.ClientModel.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.ClientModel.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.ClientModel.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.ClientModel.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Diagnostics.DiagnosticSource.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Diagnostics.DiagnosticSource.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Diagnostics.DiagnosticSource.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Diagnostics.DiagnosticSource.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Interactive.Async.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Interactive.Async.dll similarity index 85% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Interactive.Async.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Interactive.Async.dll index 7fc37da76ebac..0b7806c9d072f 100644 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/System.Interactive.Async.dll and b/Modules/AzBobbyTables/3.6.0/dependencies/System.Interactive.Async.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.Async.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.Async.dll similarity index 90% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.Async.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.Async.dll index 35906b95ebbb0..cfd93e39366fd 100644 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.Async.dll and b/Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.Async.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.AsyncEnumerable.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.AsyncEnumerable.dll similarity index 93% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.AsyncEnumerable.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.AsyncEnumerable.dll index 2068b65671db5..88eb4bd5aa174 100644 Binary files a/Modules/AzBobbyTables/3.5.1/dependencies/System.Linq.AsyncEnumerable.dll and b/Modules/AzBobbyTables/3.6.0/dependencies/System.Linq.AsyncEnumerable.dll differ diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Memory.Data.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Memory.Data.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Memory.Data.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Memory.Data.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Memory.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Memory.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Memory.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Memory.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Numerics.Vectors.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Numerics.Vectors.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Numerics.Vectors.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Numerics.Vectors.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Runtime.CompilerServices.Unsafe.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Runtime.CompilerServices.Unsafe.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Runtime.CompilerServices.Unsafe.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Security.AccessControl.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Security.AccessControl.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Security.AccessControl.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Security.AccessControl.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Security.Principal.Windows.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Security.Principal.Windows.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Security.Principal.Windows.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Security.Principal.Windows.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Text.Encodings.Web.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Text.Encodings.Web.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Text.Encodings.Web.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Text.Encodings.Web.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Text.Json.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Text.Json.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Text.Json.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Text.Json.dll diff --git a/Modules/AzBobbyTables/3.5.1/dependencies/System.Threading.Tasks.Extensions.dll b/Modules/AzBobbyTables/3.6.0/dependencies/System.Threading.Tasks.Extensions.dll similarity index 100% rename from Modules/AzBobbyTables/3.5.1/dependencies/System.Threading.Tasks.Extensions.dll rename to Modules/AzBobbyTables/3.6.0/dependencies/System.Threading.Tasks.Extensions.dll diff --git a/Modules/AzBobbyTables/3.5.1/en-US/AzBobbyTables.PS.dll-Help.xml b/Modules/AzBobbyTables/3.6.0/en-US/AzBobbyTables.PS.dll-Help.xml similarity index 84% rename from Modules/AzBobbyTables/3.5.1/en-US/AzBobbyTables.PS.dll-Help.xml rename to Modules/AzBobbyTables/3.6.0/en-US/AzBobbyTables.PS.dll-Help.xml index 162d20d700f77..66a2240908b39 100644 --- a/Modules/AzBobbyTables/3.5.1/en-US/AzBobbyTables.PS.dll-Help.xml +++ b/Modules/AzBobbyTables/3.6.0/en-US/AzBobbyTables.PS.dll-Help.xml @@ -61,6 +61,18 @@ False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + Add-AzDataTableEntity @@ -99,6 +111,18 @@ None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + OperationType @@ -168,6 +192,18 @@ False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + OperationType @@ -271,6 +307,18 @@ PS C:\> Add-AzDataTableEntity -Entity $Users -Context $Context -OperationType None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -286,6 +334,18 @@ PS C:\> Add-AzDataTableEntity -Entity $Users -Context $Context -OperationType None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -374,6 +434,18 @@ PS C:\> Clear-AzDataTable $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -402,6 +474,18 @@ PS C:\> Clear-AzDataTable $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -485,6 +569,18 @@ PS C:\> Clear-AzDataTable $Context False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + Get-AzDataTableEntity @@ -524,6 +620,18 @@ PS C:\> Clear-AzDataTable $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + Property @@ -612,6 +720,18 @@ PS C:\> Clear-AzDataTable $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + Property @@ -792,6 +912,18 @@ PS C:\> $UserEntities = Get-AzDataTableEntity -Property 'FirstName','Age' -Co None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -807,6 +939,18 @@ PS C:\> $UserEntities = Get-AzDataTableEntity -Property 'FirstName','Age' -Co None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -886,7 +1030,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -937,7 +1081,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -964,7 +1108,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -1003,7 +1147,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -1054,7 +1198,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -1141,7 +1285,7 @@ PS C:\> New-AzDataTable -Context $Context MaxConnectionsPerServer - {{ Fill MaxConnectionsPerServer Description }} + The maximum number of concurrent connections allowed per server endpoint on the shared HTTP client pool. Applied process-wide the first time a connection is created and cannot be changed afterwards. Defaults to unlimited. Int32 @@ -1302,6 +1446,18 @@ PS C:\> New-AzDataTable -Context $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -1317,6 +1473,18 @@ PS C:\> New-AzDataTable -Context $Context None + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -1405,6 +1573,18 @@ PS C:\> Remove-AzDataTable -Context $Context False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -1444,6 +1624,18 @@ PS C:\> Remove-AzDataTable -Context $Context False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + @@ -1566,6 +1758,18 @@ PS C:\> # OK - The -Force switch overrides ETag validation False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + OperationType @@ -1622,6 +1826,18 @@ PS C:\> # OK - The -Force switch overrides ETag validation False + + MaxRetries + + The number of times to retry the operation when the request is throttled by the service with an HTTP 429 response. Between attempts the module waits for the duration indicated by the service's Retry-After response. Defaults to 0, which disables retries. + + Int32 + + Int32 + + + None + OperationType diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 index f4cc20ab450b1..94ada9d6ef442 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/BEC/Push-BECRun.ps1 @@ -20,34 +20,39 @@ function Push-BECRun { $startDate = (Get-Date).AddDays(-7).ToUniversalTime() $endDate = (Get-Date) Write-Information 'Getting audit logs' - $auditLog = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AdminAuditLogConfig').UnifiedAuditLogIngestionEnabled - $7dayslog = if ($auditLog -eq $false) { - $ExtractResult = 'AuditLog is disabled. Cannot perform full analysis' - } else { - $sessionid = Get-Random -Minimum 10000 -Maximum 99999 - $operations = @( - 'Remove-MailboxPermission', - 'Add-MailboxPermission', - 'UpdateCalendarDelegation', - 'AddFolderPermissions', - 'MailboxLogin', - 'UserLoggedIn' - ) - $startDate = (Get-Date).AddDays(-7) - $endDate = (Get-Date) - $SearchParam = @{ - SessionCommand = 'ReturnLargeSet' - Operations = $operations - sessionid = $sessionid - startDate = $startDate - endDate = $endDate + try { + $auditLog = (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-AdminAuditLogConfig').UnifiedAuditLogIngestionEnabled + $7DaysLog = if ($auditLog -eq $false) { + $ExtractResult = 'AuditLog is disabled. Cannot perform full analysis' + } else { + $sessionid = Get-Random -Minimum 10000 -Maximum 99999 + $operations = @( + 'Remove-MailboxPermission', + 'Add-MailboxPermission', + 'UpdateCalendarDelegation', + 'AddFolderPermissions' + ) + $startDate = (Get-Date).AddDays(-7) + $endDate = (Get-Date) + $SearchParam = @{ + SessionCommand = 'ReturnLargeSet' + Operations = $operations + sessionid = $sessionid + startDate = $startDate + endDate = $endDate + } + do { + $logsTenant = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Search-unifiedAuditLog' -cmdParams $SearchParam -Anchor $Username + Write-Information "Retrieved $($logsTenant.count) logs" + $logsTenant + } while ($LogsTenant.count % 5000 -eq 0 -and $LogsTenant.count -ne 0) + $ExtractResult = 'Successfully extracted logs from auditlog' } - do { - New-ExoRequest -tenantid $TenantFilter -cmdlet 'Search-unifiedAuditLog' -cmdParams $SearchParam -Anchor $Username - Write-Information "Retrieved $($logsTenant.count) logs" - $logsTenant - } while ($LogsTenant.count % 5000 -eq 0 -and $LogsTenant.count -ne 0) - $ExtractResult = 'Successfully extracted logs from auditlog' + } catch { + $7DaysLog = @() + $CippAuditError = Get-CippException -Exception $_ + $ExtractResult = "Could not retrieve audit logs: $($CippAuditError.NormalizedError)" + Write-LogMessage -API 'BECRun' -message "Failed to retrieve audit logs for $($UserName): $($CippAuditError.NormalizedError)" -tenant $TenantFilter -sev Warning -LogData $CippAuditError } Write-Information 'Getting last sign-in' try { @@ -76,7 +81,7 @@ function Push-BECRun { } try { - $PermissionsLog = ($7dayslog | Where-Object -Property Operations -In 'Remove-MailboxPermission', 'Add-MailboxPermission', 'UpdateCalendarDelegation', 'AddFolderPermissions' ).AuditData | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + $PermissionsLog = ($7DaysLog | Where-Object -Property Operations -In 'Remove-MailboxPermission', 'Add-MailboxPermission', 'UpdateCalendarDelegation', 'AddFolderPermissions' ).AuditData | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { $perms = if ($_.Parameters) { $_.Parameters | ForEach-Object { if ($_.Name -eq 'AccessRights') { $_.Value } } } else @@ -93,16 +98,66 @@ function Push-BECRun { $PermissionsLog = @() } + Write-Information 'Getting inbox rule changes' + try { + $RuleChangesLog = if ($auditLog -eq $false) { @() } else { + # ponytail: separate user-scoped search - UpdateInboxRules is too high-volume for the tenant-wide query above + $RuleSearchParam = @{ + SessionCommand = 'ReturnLargeSet' + Operations = @('New-InboxRule', 'Set-InboxRule', 'Remove-InboxRule', 'UpdateInboxRules') + sessionid = (Get-Random -Minimum 10000 -Maximum 99999) + startDate = $startDate + endDate = $endDate + UserIds = $UserName + } + (New-ExoRequest -tenantid $TenantFilter -cmdlet 'Search-UnifiedAuditLog' -cmdParams $RuleSearchParam -Anchor $UserName).AuditData | ConvertFrom-Json -ErrorAction Stop | + Where-Object { $_.UserId -eq $UserName -or $_.MailboxOwnerUPN -eq $UserName -or $_.ObjectId -like "*$UserName*" } | ForEach-Object { + $RuleName = ($_.Parameters | Where-Object { $_.Name -eq 'Name' }).Value ?? $_.ObjectId + [pscustomobject]@{ + Operation = $_.Operation + UserKey = $_.UserId + RuleName = $RuleName + Parameters = ($_.Parameters | Where-Object { $_ -and $_.Name -notin 'Identity', 'Name' } | ForEach-Object { "$($_.Name)=$($_.Value)" }) -join '; ' + Date = $_.CreationTime + } + } + } + } catch { + $RuleChangesLog = @() + $CippRuleError = Get-CippException -Exception $_ + Write-LogMessage -API 'BECRun' -message "Failed to retrieve inbox rule changes for $($UserName): $($CippRuleError.NormalizedError)" -tenant $TenantFilter -sev Warning -LogData $CippRuleError + } + Write-Information 'Getting rules' try { $RulesLog = New-ExoRequest -cmdlet 'Get-InboxRule' -tenantid $TenantFilter -cmdParams @{ Mailbox = $Username; IncludeHidden = $true } -Anchor $Username | Where-Object { $_.Name -ne 'Junk E-Mail Rule' -and $_.Name -notlike 'Microsoft.Exchange.OOF.*' } } catch { - Write-Host 'Failed to get rules: ' + $_.Exception.Message + $CippRulesError = Get-CippException -Exception $_ + Write-LogMessage -API 'BECRun' -message "Failed to retrieve inbox rules for $($UserName): $($CippRulesError.NormalizedError)" -tenant $TenantFilter -sev Warning -LogData $CippRulesError $RulesLog = @() } + # inbox rules carry no timestamps, so 'recent' = name-matches a 7-day audit event; Outlook-client changes (UpdateInboxRules) carry no rule name and stay unflagged + $RecentRuleNames = @($RuleChangesLog | Where-Object { $_.Operation -in 'New-InboxRule', 'Set-InboxRule' } | ForEach-Object { ($_.RuleName -split '\\')[-1] }) + $RulesLog = @($RulesLog | Where-Object { $_ } | Select-Object *, @{ Name = 'RecentlyChanged'; Expression = { $_.Name -in $RecentRuleNames } }) + + Write-Information 'Getting sent message trace' + try { + $MessageTraceParams = @{ + SenderAddress = $UserName + StartDate = $startDate.ToString('s') + EndDate = $endDate.ToString('s') + } + $SentMessages = @(New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MessageTraceV2' -cmdParams $MessageTraceParams -Anchor $UserName | + Select-Object MessageTraceId, Status, Subject, RecipientAddress, @{ Name = 'Received'; Expression = { $_.Received.ToString('u') } }, FromIP) + } catch { + $SentMessages = @() + $CippTraceError = Get-CippException -Exception $_ + Write-LogMessage -API 'BECRun' -message "Failed to retrieve message trace for $($UserName): $($CippTraceError.NormalizedError)" -tenant $TenantFilter -sev Warning -LogData $CippTraceError + } + Write-Information 'Getting last 50 logons' try { $Last50Logons = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/signIns?`$filter=userDisplayName ne 'On-Premises Directory Synchronization Service Account'&`$top=50&`$orderby=createdDateTime desc" -tenantid $TenantFilter -noPagination $true | Select-Object @{ Name = 'CreatedDateTime'; Expression = { $(($_.createdDateTime | Out-String) -replace '\r\n') } }, @@ -155,6 +210,8 @@ function Push-BECRun { LastSuspectUserLogon = @($LastSignIn) SuspectUserDevices = @($Devices) NewRules = @($RulesLog) + InboxRuleChanges = @($RuleChangesLog) + SentMessages = @($SentMessages) MailboxPermissionChanges = @($PermissionsLog) NewUsers = @($NewUsers) MFADevices = @($MFADevices | Where-Object { $_.'@odata.type' -ne '#microsoft.graph.passwordAuthenticationMethod' }) @@ -175,7 +232,7 @@ function Push-BECRun { } catch { $errMessage = Get-NormalizedError -message $_.Exception.Message $CippError = Get-CippException -Exception $_ - $results = [pscustomobject]@{'Results' = "$errMessage"; Exception = $CippError } + $results = [pscustomobject]@{'Results' = "$errMessage"; Exception = $CippError; ExtractedAt = (Get-Date) } Write-LogMessage -API 'BECRun' -message "Error Running BEC for $($UserName): $errMessage" -tenant $TenantFilter -sev 'Error' -LogData $CIPPError $Entity = @{ UserId = $SuspectUser diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-DBCacheOneDriveRootPermissionsBatch.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-DBCacheOneDriveRootPermissionsBatch.ps1 new file mode 100644 index 0000000000000..47e9f69b92c17 --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-DBCacheOneDriveRootPermissionsBatch.ps1 @@ -0,0 +1,563 @@ +function Push-DBCacheOneDriveRootPermissionsBatch { + <# + .SYNOPSIS + Collects OneDrive root permissions for a batch of personal sites. + + .DESCRIPTION + Processes up to 20 personal site seeds per activity. Each site is wrapped in its own + try/catch so a batch of N sites always returns exactly N cache row objects. + + Six permission paths are indexed into permissionsJson (a pre-serialized JSON string): + SiteAdmin, SiteRoleGroup, WebRoleAssignment, LibraryRoleAssignment, DriveRootGrant, + DriveRootLink. Groups are stored as principals and are not expanded to users. + + collectionStatus: + - Full — all SPO REST paths and Graph drive root permissions succeeded + - Skipped — drive/owner resolution failed, SPO or Graph collection failed, or unexpected error; + permissionsJson = '[]'. Push-StoreOneDriveRootPermissions may replace Skipped rows + with prior Full cache data (merge-on-Skip) before the tenant write. + + hasNonStandardAccess is nullable ($true | $false | $null). Use -eq $true / -eq $false; + never truthy checks. $null on batch Skipped rows; after merge-on-Skip at store, merged sites + retain prior hasNonStandardAccess from the cached Full row. + + Test-IsOwnerPrincipal compares grants to the provisioned owner (drive.owner.user.id): + principalObjectId match, principalUpn -ieq, or LoginName claim suffix -ieq owner UPN. + + Dedup inside permissionsJson: + - WebRoleAssignment: skip Member.Id matching associated Owner/Member/Visitor group Ids + - LibraryRoleAssignment: only when HasUniqueRoleAssignments is true + - DriveRootGrant: skip siteGroup.displayName matching associated group Title (case-insensitive); + skip implicit owner grant (roles contains 'owner' + Test-IsOwnerPrincipal) + - Intentional cross-path duplicates remain (e.g. same user on SiteAdmin and SiteRoleGroup) + + Graph root permissions: skip inheritedFrom; paginate via New-GraphGetRequest; DriveRootGrant + and named DriveRootLink recipients emit one grant per person; anonymous DriveRootLink + emits one grant per permission.id. + + Anonymous DriveRootLink shape: principalType=Link, sharedWith=@(), linkScope/linkType populated. + + Consumer notes: + - Grant paths != effective access (security groups need Entra membership join) + - Unprovisioned OneDrives absent from getAllSites + - Batch Skipped rows have permissionsJson = '[]' and hasNonStandardAccess $null; after store, + merge-on-Skip may replace them with prior Full rows — query the cache, not batch output + - Count DriveRootLink sharing links by distinct permissionId, not grant row count (named + recipients share the same permissionId across multiple grant rows) + - Child folder/file sharing is out of scope (SharePointSharingLinks cache) + - Localized/renamed group titles may miss siteGroup dedup (grant retained, warning logged) + + Never uses User Information List fallback. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $BatchNumber = $Item.BatchNumber + $SiteSeeds = @($Item.Sites) + + # Returns $true when a SharePoint user entity is a guest/external identity. + function Test-SPGuestUser { + param($User) + [bool]$User.IsShareByEmailGuestUser -or [bool]$User.IsEmailAuthenticationGuestUser -or + ($User.LoginName -match '(?i)#ext#|urn%3aspo%3aguest') + } + + # Compares a grant principal to the provisioned OneDrive owner (drive.owner). + function Test-IsOwnerPrincipal { + param($Grant, $OwnerObjectId, $OwnerPrincipalName) + if ($OwnerObjectId -and $Grant.principalObjectId -and + $Grant.principalObjectId -eq $OwnerObjectId) { return $true } + if ($OwnerPrincipalName -and $Grant.principalUpn -and + $Grant.principalUpn -ieq $OwnerPrincipalName) { return $true } + if ($OwnerPrincipalName -and $Grant.principalLoginName -and + ($Grant.principalLoginName -split '\|')[-1] -ieq $OwnerPrincipalName) { return $true } + return $false + } + + function Get-CIPPSpoPrincipalType { + param($Entity) + if ($Entity.LoginName -match '(?i)federateddirectoryclaimprovider') { return 'M365 Group' } + switch ($Entity.PrincipalType) { + 1 { 'User' } + 4 { 'Security Group' } + 8 { 'SharePoint Group' } + default { 'Other' } + } + } + + function Get-CIPPSpoUserUpn { + param($User) + if ($User.PrincipalType -eq 1 -and $User.LoginName) { + return ($User.LoginName -split '\|')[-1] + } + $null + } + + function New-CIPPSpoUserGrant { + param( + $User, + [string]$PermissionSource, + [string]$Group, + $RoleBinding = $null, + [bool]$IsSiteAdmin = $false, + [string]$LibraryTitle = $null + ) + [PSCustomObject]@{ + permissionSource = $PermissionSource + group = $Group + principalId = [string]$User.Id + principalObjectId = $null + principalUpn = Get-CIPPSpoUserUpn -User $User + principalDisplayName = $User.Title + principalLoginName = $User.LoginName + principalEmail = $User.Email + principalType = Get-CIPPSpoPrincipalType -Entity $User + permissionLevel = if ($RoleBinding) { $RoleBinding.Name } else { $null } + roleDefinitionId = if ($RoleBinding) { $RoleBinding.Id } else { $null } + roles = @() + isSiteAdmin = $IsSiteAdmin + isGuest = (Test-SPGuestUser -User $User) + permissionId = $null + linkScope = $null + linkType = $null + linkUrl = $null + hasPassword = $null + expirationDateTime = $null + sharedWith = @() + libraryTitle = $LibraryTitle + } + } + + function New-CIPPSpoRoleAssignmentGrant { + param($Member, $RoleBinding, [string]$PermissionSource, [string]$LibraryTitle = $null) + $principalUpn = if ($Member.PrincipalType -eq 1 -and $Member.LoginName) { + ($Member.LoginName -split '\|')[-1] + } else { $null } + [PSCustomObject]@{ + permissionSource = $PermissionSource + group = $RoleBinding.Name + principalId = [string]$Member.Id + principalObjectId = $null + principalUpn = $principalUpn + principalDisplayName = $Member.Title + principalLoginName = $Member.LoginName + principalEmail = $Member.Email + principalType = Get-CIPPSpoPrincipalType -Entity $Member + permissionLevel = $RoleBinding.Name + roleDefinitionId = $RoleBinding.Id + roles = @() + isSiteAdmin = $false + isGuest = (Test-SPGuestUser -User $Member) + permissionId = $null + linkScope = $null + linkType = $null + linkUrl = $null + hasPassword = $null + expirationDateTime = $null + sharedWith = @() + libraryTitle = $LibraryTitle + } + } + + function Get-CIPPGraphIdentityLabel { + param($Identity) + $Identity.user.email ?? $Identity.user.userPrincipalName ?? + $Identity.siteUser.email ?? $Identity.user.displayName ?? + $Identity.siteUser.displayName ?? $Identity.group.email ?? + $Identity.group.displayName ?? $Identity.siteGroup.displayName ?? + $Identity.application.displayName + } + + function Test-CIPPGraphGuestIdentity { + param($Identity) + $LoginName = [string]($Identity.siteUser.loginName ?? $Identity.user.loginName ?? '') + if ($LoginName -match '(?i)#ext#|urn%3aspo%3aguest|urn:spo:guest') { return $true } + $Email = [string]($Identity.user.email ?? $Identity.user.userPrincipalName ?? $Identity.siteUser.email ?? '') + $Email -match '(?i)#EXT#' + } + + function New-CIPPGraphIdentityGrant { + param( + $Identity, + [string]$PermissionSource, + [string]$PermissionId, + [array]$Roles, + [array]$SharedWith, + $LinkProps = $null + ) + $principalType = 'Other' + $principalObjectId = $null + $principalUpn = $null + $principalDisplayName = $null + $principalLoginName = $null + $principalEmail = $null + $principalId = $null + + if ($Identity.user) { + $principalType = 'User' + $principalObjectId = $Identity.user.id + $principalUpn = $Identity.user.userPrincipalName ?? $Identity.user.email + $principalDisplayName = $Identity.user.displayName + $principalEmail = $Identity.user.email ?? $Identity.user.userPrincipalName + $principalId = [string]($Identity.user.id ?? $principalUpn) + } elseif ($Identity.siteUser) { + $principalType = 'User' + $principalLoginName = $Identity.siteUser.loginName + $principalDisplayName = $Identity.siteUser.displayName + $principalEmail = $Identity.siteUser.email + $principalUpn = if ($principalLoginName) { ($principalLoginName -split '\|')[-1] } else { $null } + $principalId = [string]($principalLoginName ?? $principalEmail ?? $principalDisplayName) + } elseif ($Identity.group) { + $principalType = 'Security Group' + $principalObjectId = $Identity.group.id + $principalDisplayName = $Identity.group.displayName + $principalEmail = $Identity.group.email + $principalId = [string]$Identity.group.id + } elseif ($Identity.siteGroup) { + $principalType = 'SharePoint Group' + $principalDisplayName = $Identity.siteGroup.displayName + $principalId = [string]($Identity.siteGroup.id ?? $Identity.siteGroup.displayName) + } elseif ($Identity.application) { + $principalType = 'Application' + $principalDisplayName = $Identity.application.displayName + $principalId = [string]$Identity.application.id + } + + $grant = [PSCustomObject]@{ + permissionSource = $PermissionSource + group = $null + principalId = $principalId + principalObjectId = $principalObjectId + principalUpn = $principalUpn + principalDisplayName = $principalDisplayName + principalLoginName = $principalLoginName + principalEmail = $principalEmail + principalType = $principalType + permissionLevel = $null + roleDefinitionId = $null + roles = @($Roles) + isSiteAdmin = $false + isGuest = (Test-CIPPGraphGuestIdentity -Identity $Identity) + permissionId = $PermissionId + linkScope = $null + linkType = $null + linkUrl = $null + hasPassword = $null + expirationDateTime = $null + sharedWith = @($SharedWith) + libraryTitle = $null + } + + if ($LinkProps) { + $grant.linkScope = $LinkProps.linkScope + $grant.linkType = $LinkProps.linkType + $grant.linkUrl = $LinkProps.linkUrl + $grant.hasPassword = $LinkProps.hasPassword + $grant.expirationDateTime = $LinkProps.expirationDateTime + $grant.principalType = 'Link' + } + + $grant + } + + function Get-CIPPHasNonStandardAccess { + param($Grants, $OwnerObjectId, $OwnerPrincipalName, $LibraryHasUniquePermissions, $CollectionStatus) + if ($CollectionStatus -eq 'Skipped') { return $null } + if ($LibraryHasUniquePermissions) { return $true } + + foreach ($Grant in $Grants) { + if ($Grant.permissionSource -eq 'SiteAdmin' -and -not (Test-IsOwnerPrincipal -Grant $Grant -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName)) { + return $true + } + if ($Grant.permissionSource -eq 'SiteRoleGroup' -and $Grant.group -in @('Members', 'Visitors')) { + return $true + } + if ($Grant.permissionSource -eq 'SiteRoleGroup' -and $Grant.group -eq 'Owners' -and + -not (Test-IsOwnerPrincipal -Grant $Grant -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName)) { + return $true + } + if ($Grant.principalType -in @('Security Group', 'M365 Group', 'SharePoint Group')) { + return $true + } + if ($Grant.isGuest) { return $true } + if ($Grant.permissionSource -eq 'DriveRootLink') { return $true } + if ($Grant.permissionSource -eq 'DriveRootGrant' -and + -not (Test-IsOwnerPrincipal -Grant $Grant -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName)) { + return $true + } + if ($Grant.permissionSource -in @('WebRoleAssignment', 'LibraryRoleAssignment') -and + -not (Test-IsOwnerPrincipal -Grant $Grant -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName)) { + return $true + } + } + return $false + } + + function New-CIPPSkippedSiteRow { + param($SiteSeed, $CollectionError) + [PSCustomObject]@{ + id = $SiteSeed.id + siteId = $SiteSeed.id + siteUrl = $SiteSeed.webUrl + siteDisplayName = $SiteSeed.displayName + ownerPrincipalName = $null + ownerObjectId = $null + ownerDisplayName = $null + driveId = $null + driveWebUrl = $null + libraryId = $null + libraryHasUniquePermissions = $false + collectionStatus = 'Skipped' + collectionError = $CollectionError + hasNonStandardAccess = $null + permissionsJson = '[]' + grantCount = 0 + collectedAt = (Get-Date).ToUniversalTime().ToString('o') + } + } + + function Get-CIPPOneDriveSiteRow { + param($SiteSeed, $TenantFilter) + + $SiteId = $SiteSeed.id + $SiteUrl = $SiteSeed.webUrl + $SiteDisplayName = $SiteSeed.displayName + $CollectedAt = (Get-Date).ToUniversalTime().ToString('o') + + $Drive = $null + try { + $Drive = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/$SiteId/drive?`$select=id,owner,webUrl,sharepointIds" -tenantid $TenantFilter -asapp $true + } catch { + return (New-CIPPSkippedSiteRow -SiteSeed $SiteSeed -CollectionError "Drive resolution failed: $($_.Exception.Message)") + } + + if (-not $Drive -or -not $Drive.id) { + return (New-CIPPSkippedSiteRow -SiteSeed $SiteSeed -CollectionError 'Drive resolution returned no drive') + } + + $OwnerObjectId = $Drive.owner.user.id + $OwnerDisplayName = $Drive.owner.user.displayName + $OwnerPrincipalName = $Drive.owner.user.userPrincipalName ?? $Drive.owner.user.email + if (-not $OwnerPrincipalName -and $OwnerObjectId) { + try { + $OwnerUser = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$OwnerObjectId?`$select=userPrincipalName" -tenantid $TenantFilter -asapp $true + $OwnerPrincipalName = $OwnerUser.userPrincipalName + } catch { + $OwnerPrincipalName = $null + } + } + + $DriveId = $Drive.id + $DriveWebUrl = $Drive.webUrl + $LibraryId = $Drive.sharepointIds.listId + $LibraryHasUniquePermissions = $false + $LibraryTitle = $null + + $SpoGrants = [System.Collections.Generic.List[object]]::new() + $AssociatedGroupIds = [System.Collections.Generic.HashSet[string]]::new() + $AssociatedGroupTitles = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + + try { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $AssociatedEndpoints = [ordered]@{ + 'Owners' = 'associatedownergroup' + 'Members' = 'associatedmembergroup' + 'Visitors' = 'associatedvisitorgroup' + } + foreach ($RoleName in $AssociatedEndpoints.Keys) { + $GroupEntity = New-GraphGetRequest -uri "$BaseUri/web/$($AssociatedEndpoints[$RoleName])?`$select=Id,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + if ($GroupEntity.Id) { + [void]$AssociatedGroupIds.Add([string]$GroupEntity.Id) + if ($GroupEntity.Title) { [void]$AssociatedGroupTitles.Add([string]$GroupEntity.Title) } + } + } + + $SiteAdmins = @(New-GraphGetRequest -uri "$BaseUri/web/siteusers?`$filter=IsSiteAdmin eq true&`$select=Id,Title,Email,LoginName,PrincipalType,IsShareByEmailGuestUser,IsEmailAuthenticationGuestUser" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + foreach ($Admin in $SiteAdmins) { + $SpoGrants.Add((New-CIPPSpoUserGrant -User $Admin -PermissionSource 'SiteAdmin' -Group 'Site Admins' -IsSiteAdmin $true)) + } + + foreach ($RoleName in $AssociatedEndpoints.Keys) { + $Users = @(New-GraphGetRequest -uri "$BaseUri/web/$($AssociatedEndpoints[$RoleName])/users?`$select=Id,Title,Email,LoginName,PrincipalType,IsShareByEmailGuestUser,IsEmailAuthenticationGuestUser" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + foreach ($User in $Users) { + $SpoGrants.Add((New-CIPPSpoUserGrant -User $User -PermissionSource 'SiteRoleGroup' -Group $RoleName)) + } + } + + $WebAssignments = @(New-GraphGetRequest -uri "$BaseUri/web/roleassignments?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + foreach ($Assignment in $WebAssignments) { + if ($Assignment.Member.Id -and $AssociatedGroupIds.Contains([string]$Assignment.Member.Id)) { continue } + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + $SpoGrants.Add((New-CIPPSpoRoleAssignmentGrant -Member $Assignment.Member -RoleBinding $Binding -PermissionSource 'WebRoleAssignment')) + } + } + + if ($LibraryId) { + $ListInfo = New-GraphGetRequest -uri "$BaseUri/web/lists(guid'$LibraryId')?`$select=HasUniqueRoleAssignments,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + $LibraryHasUniquePermissions = [bool]$ListInfo.HasUniqueRoleAssignments + $LibraryTitle = $ListInfo.Title + if ($LibraryHasUniquePermissions) { + $LibraryAssignments = @(New-GraphGetRequest -uri "$BaseUri/web/lists(guid'$LibraryId')/roleassignments?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + foreach ($Assignment in $LibraryAssignments) { + if ($Assignment.Member.Id -and $AssociatedGroupIds.Contains([string]$Assignment.Member.Id)) { continue } + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + $SpoGrants.Add((New-CIPPSpoRoleAssignmentGrant -Member $Assignment.Member -RoleBinding $Binding -PermissionSource 'LibraryRoleAssignment' -LibraryTitle $LibraryTitle)) + } + } + } + } + + } catch { + $SpoError = $_.Exception.Message + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDrive root permissions: SPO collection failed for '$SiteUrl': $SpoError" -sev Warning + return (New-CIPPSkippedSiteRow -SiteSeed $SiteSeed -CollectionError "SPO collection failed: $SpoError") + } + + $GraphGrants = [System.Collections.Generic.List[object]]::new() + $InheritedSkipCount = 0 + try { + $Permissions = @(New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/$SiteId/drive/root/permissions" -tenantid $TenantFilter -asapp $true) + foreach ($Permission in $Permissions) { + if ($Permission.inheritedFrom) { + $InheritedSkipCount++ + continue + } + + if ($Permission.link) { + $Recipients = @($Permission.grantedToIdentitiesV2 ?? $Permission.grantedToIdentities ?? @()) + $SharedWith = @($Recipients | ForEach-Object { Get-CIPPGraphIdentityLabel -Identity $_ } | Where-Object { $_ } | Sort-Object -Unique) + $LinkProps = @{ + linkScope = $Permission.link.scope ?? 'users' + linkType = $Permission.link.type ?? 'view' + linkUrl = $Permission.link.webUrl + hasPassword = [bool]($Permission.hasPassword ?? $false) + expirationDateTime = $Permission.expirationDateTime + } + if ($Recipients.Count -eq 0) { + $GraphGrants.Add([PSCustomObject]@{ + permissionSource = 'DriveRootLink' + group = $null + principalId = [string]$Permission.id + principalObjectId = $null + principalUpn = $null + principalDisplayName = $null + principalLoginName = $null + principalEmail = $null + principalType = 'Link' + permissionLevel = $null + roleDefinitionId = $null + roles = @($Permission.roles) + isSiteAdmin = $false + isGuest = $false + permissionId = [string]$Permission.id + linkScope = $LinkProps.linkScope + linkType = $LinkProps.linkType + linkUrl = $LinkProps.linkUrl + hasPassword = $LinkProps.hasPassword + expirationDateTime = $LinkProps.expirationDateTime + sharedWith = @() + libraryTitle = $null + }) + } else { + foreach ($Recipient in $Recipients) { + $GraphGrants.Add((New-CIPPGraphIdentityGrant -Identity $Recipient -PermissionSource 'DriveRootLink' -PermissionId $Permission.id -Roles @($Permission.roles) -SharedWith $SharedWith -LinkProps $LinkProps)) + } + } + continue + } + + $Recipients = @($Permission.grantedToIdentitiesV2 ?? @()) + if ($Recipients.Count -eq 0 -and $Permission.grantedToV2) { + $Recipients = @($Permission.grantedToV2) + } + if ($Recipients.Count -eq 0) { continue } + + $SharedWith = @($Recipients | ForEach-Object { Get-CIPPGraphIdentityLabel -Identity $_ } | Where-Object { $_ } | Sort-Object -Unique) + foreach ($Recipient in $Recipients) { + if ($Recipient.siteGroup -and $Recipient.siteGroup.displayName -and + $AssociatedGroupTitles.Contains([string]$Recipient.siteGroup.displayName)) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDrive root permissions: siteGroup dedup matched '$($Recipient.siteGroup.displayName)' on '$SiteUrl'" -sev Debug + continue + } + $Candidate = New-CIPPGraphIdentityGrant -Identity $Recipient -PermissionSource 'DriveRootGrant' -PermissionId $Permission.id -Roles @($Permission.roles) -SharedWith $SharedWith + if ($Permission.roles -contains 'owner' -and + (Test-IsOwnerPrincipal -Grant $Candidate -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName)) { + continue + } + $GraphGrants.Add($Candidate) + } + } + if ($InheritedSkipCount -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDrive root permissions: skipped $InheritedSkipCount inherited root permissions on '$SiteUrl'" -sev Debug + } + } catch { + return (New-CIPPSkippedSiteRow -SiteSeed $SiteSeed -CollectionError "Graph root permissions failed: $($_.Exception.Message)") + } + + $AllGrants = @($SpoGrants) + @($GraphGrants) + + $HasNonStandardAccess = Get-CIPPHasNonStandardAccess -Grants $AllGrants -OwnerObjectId $OwnerObjectId -OwnerPrincipalName $OwnerPrincipalName -LibraryHasUniquePermissions $LibraryHasUniquePermissions -CollectionStatus 'Full' + $PermissionsJson = if ($AllGrants.Count -gt 0) { + ConvertTo-Json -InputObject @($AllGrants) -Compress -Depth 10 + } else { + '[]' + } + + [PSCustomObject]@{ + id = $SiteId + siteId = $SiteId + siteUrl = $SiteUrl + siteDisplayName = $SiteDisplayName + ownerPrincipalName = $OwnerPrincipalName + ownerObjectId = $OwnerObjectId + ownerDisplayName = $OwnerDisplayName + driveId = $DriveId + driveWebUrl = $DriveWebUrl + libraryId = $LibraryId + libraryHasUniquePermissions = $LibraryHasUniquePermissions + collectionStatus = 'Full' + collectionError = $null + hasNonStandardAccess = $HasNonStandardAccess + permissionsJson = $PermissionsJson + grantCount = $AllGrants.Count + collectedAt = $CollectedAt + } + } + + $SiteRows = [System.Collections.Generic.List[object]]::new() + + try { + Write-Information "Processing OneDrive root permissions batch $BatchNumber for tenant $TenantFilter with $($SiteSeeds.Count) sites" + + foreach ($SiteSeed in $SiteSeeds) { + try { + $SiteRows.Add((Get-CIPPOneDriveSiteRow -SiteSeed $SiteSeed -TenantFilter $TenantFilter)) + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDrive root permissions: unexpected site error for '$($SiteSeed.webUrl)': $($_.Exception.Message)" -sev Warning -LogData (Get-CippException -Exception $_) + $SiteRows.Add((New-CIPPSkippedSiteRow -SiteSeed $SiteSeed -CollectionError $_.Exception.Message)) + } + } + + if ($SiteRows.Count -ne $SiteSeeds.Count) { + throw "Batch $BatchNumber invariant violated: expected $($SiteSeeds.Count) site rows, got $($SiteRows.Count)" + } + + return [PSCustomObject]@{ + BatchNumber = $BatchNumber + Sites = @($SiteRows) + } + + } catch { + $ErrorMsg = "Failed OneDrive root permissions batch $BatchNumber for tenant $TenantFilter : $($_.Exception.Message)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-StoreOneDriveRootPermissions.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-StoreOneDriveRootPermissions.ps1 new file mode 100644 index 0000000000000..ec5721eb90935 --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/OneDrive Root Permissions/Push-StoreOneDriveRootPermissions.ps1 @@ -0,0 +1,99 @@ +function Push-StoreOneDriveRootPermissions { + <# + .SYNOPSIS + Post-execution function that aggregates per-batch OneDrive root permission rows and writes the cache. + + .DESCRIPTION + Collects the Sites arrays returned by every Push-DBCacheOneDriveRootPermissionsBatch activity, + flattens them into a single row set, and writes OneDriveRootPermissions once via Add-CIPPDbItem. + + Completeness guard: if ActualCount -ne ExpectedSiteCount the function throws and does not + call Add-CIPPDbItem (prevents replace-mode wipe on partial orchestrator failure). When counts + match (including 0 for empty tenants handled by the orchestrator parent), a single full-replace + write is performed. + + Merge-on-Skip: when batch collection returns Skipped for a site, loads existing + OneDriveRootPermissions via New-CIPPDbRequest and replaces the Skipped row with the prior + Full row (matched by siteId) before writing. Transient SPO/Graph failures therefore do not + wipe previously collected grant data. Skipped rows with no prior Full row are written as-is. + DB read is skipped when no Skipped rows exist in the run. + + Logs Skipped count from collection and how many were preserved from prior Full cache. + + Cache row schema (one per personal site): + id/siteId, siteUrl, siteDisplayName, ownerPrincipalName, ownerObjectId, ownerDisplayName, + driveId, driveWebUrl, libraryId, libraryHasUniquePermissions, collectionStatus, + collectionError, hasNonStandardAccess (nullable boolean), permissionsJson (string), + grantCount, collectedAt. + + permissionsJson is a pre-serialized JSON string of grant objects — consumers must + ConvertFrom-Json before querying grants. Grant identity for dedup: + {permissionSource}_{principalId}_{roleDefinitionId}_{permissionId} + + Consumer notes: + - Rows in the cache reflect merge-on-Skip: a site that failed collection this run may still + show collectionStatus Full with prior permissionsJson if a previous Full row existed + - hasNonStandardAccess: use -eq $true / -eq $false; $null means Skipped with no prior Full + row to merge. Never use truthy checks + - DriveRootLink with named recipients produces one grant per person; count sharing links + by distinct permissionId within permissionsJson, not by grant row count (same permissionId + may appear on multiple recipient grants) + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.Parameters.TenantFilter + $ExpectedSiteCount = [int]$Item.Parameters.ExpectedSiteCount + + try { + $AllRows = [System.Collections.Generic.List[object]]::new() + foreach ($BatchResult in @($Item.Results)) { + $Sites = if ($BatchResult.Sites) { @($BatchResult.Sites) } else { @() } + foreach ($Row in $Sites) { + if ($Row) { $AllRows.Add($Row) } + } + } + + $ActualCount = $AllRows.Count + if ($ActualCount -ne $ExpectedSiteCount) { + throw "OneDrive root permissions completeness check failed for $TenantFilter : expected $ExpectedSiteCount site rows, got $ActualCount" + } + + $SkippedCount = @($AllRows | Where-Object { $_.collectionStatus -eq 'Skipped' }).Count + $MergedCount = 0 + if ($SkippedCount -gt 0) { + $ExistingBySiteId = @{} + foreach ($Existing in @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'OneDriveRootPermissions')) { + $Key = [string]($Existing.siteId ?? $Existing.id) + if ($Key -and $Existing.collectionStatus -eq 'Full') { + $ExistingBySiteId[$Key] = $Existing + } + } + for ($i = 0; $i -lt $AllRows.Count; $i++) { + $Row = $AllRows[$i] + if ($Row.collectionStatus -ne 'Skipped') { continue } + $Key = [string]($Row.siteId ?? $Row.id) + if ($Key -and $ExistingBySiteId.ContainsKey($Key)) { + $AllRows[$i] = $ExistingBySiteId[$Key] + $MergedCount++ + } + } + } + + $RemainingSkippedCount = $SkippedCount - $MergedCount + if ($SkippedCount -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "OneDrive root permissions: $SkippedCount of $ActualCount sites returned Skipped from collection; preserved $MergedCount from prior Full cache; $RemainingSkippedCount written as Skipped" -sev Warning + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveRootPermissions' -Data @($AllRows) -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $ActualCount OneDrive root permission site rows ($MergedCount merge-on-Skip) across $(@($Item.Results).Count) batches" -sev Info + return + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to store OneDrive root permissions: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 index 074278d77cbb3..a0bb9f7693082 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-CIPPDBCacheData.ps1 @@ -65,6 +65,14 @@ function Push-CIPPDBCacheData { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Compliance license check failed: $($_.Exception.Message)" -sev Warning -LogData $ErrorMessage } + $DefenderCapable = $false + try { + $DefenderCapable = Test-CIPPStandardLicense -StandardName Compliance'DefenderLicenseCheck' -TenantFilter $TenantFilter -RequiredCapabilities @('MDE_SMB', 'WIN_DEF_ATP', 'DEFENDER_ENDPOINT_P1') -SkipLog + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Compliance license check failed: $($_.Exception.Message)" -sev Warning -LogData $ErrorMessage + } + $SharePointCapable = $false try { $SharePointCapable = Test-CIPPStandardLicense -StandardName 'SharePointLicenseCheck' -TenantFilter $TenantFilter -Preset SharePoint -SkipLog @@ -191,6 +199,18 @@ function Push-CIPPDBCacheData { Write-Host "Skipping Compliance data collection for $TenantFilter - no required license" } + if ($DefenderCapable) { + $Tasks.Add(@{ + FunctionName = 'ExecCIPPDBCache' + CollectionType = 'Defender' + TenantFilter = $TenantFilter + QueueId = $QueueId + QueueName = "DB Cache Defender - $TenantFilter" + }) + } else { + Write-Host "Skipping Defender data collection for $TenantFilter - no required license" + } + if ($SharePointCapable) { $Tasks.Add(@{ FunctionName = 'ExecCIPPDBCache' @@ -199,6 +219,7 @@ function Push-CIPPDBCacheData { QueueId = $QueueId QueueName = "DB Cache SharePoint - $TenantFilter" }) + # SharePointSharingLinks runs adhoc since it can take a long time to enumerate all sharing links for large tenants } else { Write-Host "Skipping SharePoint data collection for $TenantFilter - no required license" } diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 index 8a358101773e4..b37e214051722 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecScheduledCommand.ps1 @@ -50,48 +50,17 @@ function Push-ExecScheduledCommand { # Task should be 'Pending' (queued by orchestrator) or 'Running' (retry/recovery) # We accept both to handle edge cases - # Check for rerun protection - prevent duplicate executions within the recurrence interval - # Do this BEFORE updating state to 'Running' to avoid getting stuck - if ($task.Recurrence -and $task.Recurrence -ne '0' -and !$IsMultiTenantExecution) { - # Calculate interval in seconds from recurrence string - $IntervalSeconds = switch -Regex ($task.Recurrence) { - '^(\d+)$' { [int64]$matches[1] * 86400 } # Plain number = days - '(\d+)m$' { [int64]$matches[1] * 60 } - '(\d+)h$' { [int64]$matches[1] * 3600 } - '(\d+)d$' { [int64]$matches[1] * 86400 } - default { 0 } - } - - if ($IntervalSeconds -gt 0) { - # Round down to nearest 15-minute interval (900 seconds) since that's when orchestrator runs - # This prevents rerun blocking issues due to slight timing variations - $FifteenMinutes = 900 - $AdjustedInterval = [Math]::Floor($IntervalSeconds / $FifteenMinutes) * $FifteenMinutes - - # Ensure we have at least one 15-minute interval - if ($AdjustedInterval -lt $FifteenMinutes) { - $AdjustedInterval = $FifteenMinutes - } - # Use task RowKey as API identifier for rerun cache - $RerunParams = @{ - TenantFilter = $Tenant - Type = 'ScheduledTask' - API = $task.RowKey - Interval = $AdjustedInterval - BaseTime = [int64]$task.ScheduledTime - Headers = $Headers - } - - $IsRerun = Test-CIPPRerun @RerunParams - if ($IsRerun) { - Write-Information "Scheduled task $($task.Name) for tenant $Tenant was recently executed. Skipping to prevent duplicate execution." - Remove-Variable -Name ScheduledTaskId -Scope Script -ErrorAction SilentlyContinue - return - } - } - } - - # Also check for one-time task rerun protection based on ExecutedTime + # NOTE: Recurring scheduled tasks intentionally have NO rerun-cache protection here. + # Duplicate execution is already prevented by the orchestrator's own state machine: + # - the ETag claim flips the task to 'Pending' atomically (no concurrent dispatch), + # - 'Pending'/'Running' tasks are not re-picked until they go stale (1h/4h), + # - ScheduledTime is advanced on completion so the task isn't eligible again until due. + # A separate rerun cache (Test-CIPPRerun) was a second, independent clock that drifted out + # of sync with ScheduledTime whenever a run didn't finish advancing the schedule, which both + # deadlocked tasks and blocked the orchestrator's stuck-task recovery. ScheduledTime is the + # single source of truth. + + # One-time task rerun protection based on ExecutedTime (the task's own field, not a cache) if ((!$task.Recurrence -or $task.Recurrence -eq '0') -and $task.ExecutedTime -and !$IsMultiTenantExecution) { $currentUnixTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds $timeSinceExecution = $currentUnixTime - [int64]$task.ExecutedTime diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecSharePointTemplateDeploy.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecSharePointTemplateDeploy.ps1 new file mode 100644 index 0000000000000..ba43186b112a1 --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-ExecSharePointTemplateDeploy.ps1 @@ -0,0 +1,57 @@ +function Push-ExecSharePointTemplateDeploy { + <# + .FUNCTIONALITY + Entrypoint + .DESCRIPTION + Queue worker that deploys a SharePoint provisioning template to a single tenant. + Queued per tenant by Invoke-ExecSharePointTemplate (Action=Deploy). Progress is + written to the shared CacheAsyncDeployments status rows so the frontend can poll + it live via Action=DeployStatus. + #> + param($Item) + + try { + $Item = $Item | ConvertTo-Json -Depth 10 | ConvertFrom-Json + $TemplateId = $Item.TemplateId + $DeploymentId = $Item.DeploymentId + if (-not $TemplateId) { + Write-LogMessage -message 'No SharePoint template specified' -tenant $Item.Tenant -API 'Deploy SharePoint Template' -sev Error + return $false + } + + $Table = Get-CIPPTable -TableName 'templates' + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'SharePointTemplate' and RowKey eq '$TemplateId'" + if (-not $Template) { + Write-LogMessage -message "SharePoint template $TemplateId not found" -tenant $Item.Tenant -API 'Deploy SharePoint Template' -sev Error + if ($DeploymentId) { + Set-CIPPAsyncDeploymentStatus -JobId $DeploymentId -Name $Item.Tenant -Status 'failed' -Logs "Template $TemplateId not found" + } + return $false + } + + if ($DeploymentId) { + Set-CIPPAsyncDeploymentStatus -JobId $DeploymentId -Name $Item.Tenant -Status 'running' + } + + $TemplateData = $Template.JSON | ConvertFrom-Json + $Results = Invoke-CIPPSharePointTemplateDeploy -TemplateData $TemplateData -SiteOwner $Item.SiteOwner -TenantFilter $Item.Tenant -DeploymentId $DeploymentId + foreach ($Result in $Results) { + Write-Information $Result + } + + # Overall verdict: failed when any step failed, otherwise succeeded. + if ($DeploymentId) { + $Row = Get-CIPPAsyncDeployment -JobId $DeploymentId | Where-Object { $_.Name -eq $Item.Tenant } + $FinalStatus = 'succeeded' + if (@($Row.Steps | Where-Object { $_.Status -eq 'failed' }).Count -gt 0) { $FinalStatus = 'failed' } + Set-CIPPAsyncDeploymentStatus -JobId $DeploymentId -Name $Item.Tenant -Status $FinalStatus -Logs ($Results -join "`n") + } + return $true + } catch { + Write-LogMessage -message "Error deploying SharePoint template to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Deploy SharePoint Template' -sev Error + if ($Item.DeploymentId) { + Set-CIPPAsyncDeploymentStatus -JobId $Item.DeploymentId -Name $Item.Tenant -Status 'failed' -Logs $_.Exception.Message + } + Write-Error $_.Exception.Message + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-IntuneReportExportSubmit.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-IntuneReportExportSubmit.ps1 index be40e229a3307..f222f537dd589 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-IntuneReportExportSubmit.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Push-IntuneReportExportSubmit.ps1 @@ -17,51 +17,7 @@ function Push-IntuneReportExportSubmit { } try { - $Select = switch ($ReportName) { - 'AppInvRawData' { - @( - 'ApplicationKey', 'ApplicationName', 'ApplicationPublisher', 'ApplicationVersion', - 'DeviceId', 'DeviceName', 'OSDescription', 'OSVersion', 'Platform', - 'UserId', 'UserName', 'EmailAddress' - ) - } - 'AppInstallStatusAggregate' { - @( - 'ApplicationId', 'DisplayName', 'Publisher', 'Platform', 'AppVersion', 'AppPlatform', - 'InstalledDeviceCount', 'FailedDeviceCount', 'FailedUserCount', - 'PendingInstallDeviceCount', 'NotInstalledDeviceCount', 'FailedDevicePercentage' - ) - } - default { throw "Unknown Intune report '$ReportName'" } - } - - $Body = @{ - reportName = $ReportName - format = 'json' - localizationType = 'replaceLocalizableValues' - select = $Select - } | ConvertTo-Json -Depth 5 - - $Job = New-GraphPOSTRequest ` - -uri 'https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs' ` - -tenantid $TenantFilter ` - -body $Body - - if (-not $Job.id) { throw "Intune returned no job id for $ReportName" } - - $JobsTable = Get-CIPPTable -tablename 'IntuneReportJobs' - $Existing = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" - if ($Existing) { - Remove-AzDataTableEntity @JobsTable -Entity $Existing -Force -ErrorAction SilentlyContinue - } - - Add-CIPPAzDataTableEntity @JobsTable -Entity @{ - PartitionKey = $TenantFilter - RowKey = $ReportName - JobId = $Job.id - ReportName = $ReportName - SubmittedAt = ([DateTime]::UtcNow).ToString('o') - } -Force + $Job = New-CIPPIntuneReportExportJob -TenantFilter $TenantFilter -ReportName $ReportName Write-LogMessage -API 'IntuneReportExport' -tenant $TenantFilter -message "Submitted $ReportName export job $($Job.id)" -sev Info return @{ Status = 'Submitted'; JobId = $Job.id; ReportName = $ReportName; TenantFilter = $TenantFilter } diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-DBCacheSharePointPermissionsBatch.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-DBCacheSharePointPermissionsBatch.ps1 new file mode 100644 index 0000000000000..296c33e79fa2c --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-DBCacheSharePointPermissionsBatch.ps1 @@ -0,0 +1,258 @@ +function Push-DBCacheSharePointPermissionsBatch { + <# + .SYNOPSIS + Collects site and document library permissions for a batch of SharePoint sites. + + .DESCRIPTION + Processes up to 20 site seeds per activity via the SharePoint REST API with certificate + authentication. Each site is wrapped in its own try/catch so a batch of N sites always + returns exactly N site results - Push-StoreSharePointPermissions relies on that to verify + completeness before it replaces the cache. + + Per site: the root web role assignments, then the visible document libraries. Only + libraries that hold their own permissions (HasUniqueRoleAssignments) are read - a library + that still inherits has exactly the site's permissions, so storing them would fill the + cache with rows carrying no information. Cache size therefore tracks governance drift + rather than tenant size. + + Two row types are emitted, discriminated by rowType: + - Site one per scanned site, always exactly one whether collection succeeded or not. + Carries collectionStatus, the library counts and the error when Skipped. + - Assignment one per scope, principal and permission level. A principal holding several + levels on the same scope produces one row per level, because each is granted + and removed separately. + + A library with unique permissions but no assignments (possible after breaking inheritance + without copying) still emits one Assignment row with null principal fields, so it is not + silently missing from the library inventory. + + broadClaim flags the tenant-wide claims SharePoint exposes as well-known login names - + Everyone, Everyone except external users, and All Users. These are the oversharing + footgun this scan exists to surface. + + collectionStatus: + - Full the root web and every library that needed reading were collected + - Skipped SPO REST collection failed for the site; no assignment rows are emitted. + Push-StoreSharePointPermissions may restore this site's rows from the prior + cache (merge-on-Skip) before the tenant write. + + Consumer notes: + - Grant paths are not effective access: security groups are stored as principals and are + not expanded to their members + - Libraries that inherit are absent by design; their permissions are the site's + - Folder and file level permissions are out of scope (that would cost a full tree walk) + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $BatchNumber = $Item.BatchNumber + $SiteSeeds = @($Item.Sites) + + # Returns $true when a SharePoint principal is a guest/external identity. + function Test-SPGuestPrincipal { + param($Principal) + [bool]$Principal.IsShareByEmailGuestUser -or [bool]$Principal.IsEmailAuthenticationGuestUser -or + ($Principal.LoginName -match '(?i)#ext#|urn%3aspo%3aguest') + } + + function Get-SPPrincipalType { + param($Entity) + if ($Entity.LoginName -match '(?i)federateddirectoryclaimprovider') { return 'M365 Group' } + switch ($Entity.PrincipalType) { + 1 { 'User' } + 4 { 'Security Group' } + 8 { 'SharePoint Group' } + default { 'Other' } + } + } + + # SharePoint expresses tenant-wide audiences as well-known claim login names. -like is used + # rather than -match because these contain regex metacharacters ( | ! ). + function Get-SPBroadClaim { + param([string]$LoginName) + if ([string]::IsNullOrWhiteSpace($LoginName)) { return $null } + if ($LoginName -like 'c:0(.s|true*') { return 'Everyone' } + if ($LoginName -like '*spo-grid-all-users*') { return 'EveryoneExceptExternal' } + if ($LoginName -like 'c:0!.s|windows*') { return 'AllUsers' } + return $null + } + + # Flattens one roleassignments response into Assignment rows for a scope. + function ConvertTo-AssignmentRow { + param($Assignments, $Site, [string]$Scope, $Library, [string]$CollectedAt) + + $Rows = [System.Collections.Generic.List[object]]::new() + foreach ($Assignment in @($Assignments)) { + $Member = $Assignment.Member + if (-not $Member) { continue } + $BroadClaim = Get-SPBroadClaim -LoginName ([string]$Member.LoginName) + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + $Rows.Add([PSCustomObject]@{ + rowType = 'Assignment' + id = "$($Site.SiteId)_$($Library.Id ?? 'root')_$($Member.Id)_$($Binding.Id)" + siteId = $Site.SiteId + siteName = $Site.SiteName + siteUrl = $Site.SiteUrl + scope = $Scope + libraryId = $Library.Id + libraryTitle = $Library.Title + libraryUrl = $Library.Url + principalId = [string]$Member.Id + title = $Member.Title + loginName = $Member.LoginName + email = $Member.Email + userPrincipalName = if ($Member.PrincipalType -eq 1 -and $Member.LoginName) { ($Member.LoginName -split '\|')[-1] } else { $null } + principalType = Get-SPPrincipalType -Entity $Member + isGuest = (Test-SPGuestPrincipal $Member) + permissionLevel = $Binding.Name + roleDefinitionId = [string]$Binding.Id + isSystemManaged = ($Binding.RoleTypeKind -eq 1) + broadClaim = $BroadClaim + # Boolean companion to broadClaim: the three claim types share no common + # substring, so a table filter needs a single field to match on. + isTenantWide = [bool]$BroadClaim + collectedAt = $CollectedAt + }) + } + } + return $Rows + } + + function New-SiteRow { + param($SiteSeed, [string]$Status, [string]$ErrorMessage, [int]$LibrariesScanned, [int]$LibrariesUnique, [string]$CollectedAt) + [PSCustomObject]@{ + rowType = 'Site' + id = "$($SiteSeed.id)_site" + siteId = $SiteSeed.id + siteName = $SiteSeed.displayName + siteUrl = $SiteSeed.webUrl + collectionStatus = $Status + collectionError = $ErrorMessage + librariesScanned = $LibrariesScanned + librariesWithUniquePermissions = $LibrariesUnique + collectedAt = $CollectedAt + } + } + + $SiteResults = [System.Collections.Generic.List[object]]::new() + + try { + Write-Information "Processing SharePoint permissions batch $BatchNumber for tenant $TenantFilter with $($SiteSeeds.Count) sites" + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + + foreach ($SiteSeed in $SiteSeeds) { + $CollectedAt = (Get-Date).ToUniversalTime().ToString('o') + $Rows = [System.Collections.Generic.List[object]]::new() + try { + $BaseUri = "$($SiteSeed.webUrl.TrimEnd('/'))/_api" + $SiteContext = [PSCustomObject]@{ + SiteId = $SiteSeed.id + SiteName = $SiteSeed.displayName + SiteUrl = $SiteSeed.webUrl + } + $NoLibrary = [PSCustomObject]@{ Id = $null; Title = $null; Url = $null } + + # 1) Root web assignments. + $WebAssignments = @(New-GraphGetRequest -uri "$BaseUri/web/roleassignments?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + foreach ($Row in (ConvertTo-AssignmentRow -Assignments $WebAssignments -Site $SiteContext -Scope 'Site' -Library $NoLibrary -CollectedAt $CollectedAt)) { + $Rows.Add($Row) + } + + # 2) Document libraries. BaseTemplate 101 is a document library, 119 the Site Pages + # library - the same pair Invoke-ListSiteLibraries surfaces through Graph. + $Lists = @(New-GraphGetRequest -uri "$BaseUri/web/lists?`$select=Id,Title,Hidden,BaseTemplate,HasUniqueRoleAssignments,RootFolder/ServerRelativeUrl&`$expand=RootFolder" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + $Libraries = @($Lists | Where-Object { $_.Hidden -ne $true -and $_.BaseTemplate -in @(101, 119) }) + + $UniqueCount = 0 + foreach ($Library in $Libraries) { + # $select should project HasUniqueRoleAssignments across the collection. If it + # comes back null the property was not projected, so fall back to reading it + # per library - one extra call each, the scan stays proportional to libraries. + $HasUnique = $Library.HasUniqueRoleAssignments + if ($null -eq $HasUnique) { + Write-Information "SharePoint permissions: HasUniqueRoleAssignments not projected on the lists collection for '$($SiteSeed.webUrl)', falling back to a per-library check" + $ListInfo = New-GraphGetRequest -uri "$BaseUri/web/lists(guid'$($Library.Id)')?`$select=HasUniqueRoleAssignments" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + $HasUnique = $ListInfo.HasUniqueRoleAssignments + } + if ($HasUnique -ne $true) { continue } + + $UniqueCount++ + $LibraryContext = [PSCustomObject]@{ + Id = [string]$Library.Id + Title = $Library.Title + Url = $Library.RootFolder.ServerRelativeUrl + } + $LibraryAssignments = @(New-GraphGetRequest -uri "$BaseUri/web/lists(guid'$($Library.Id)')/roleassignments?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + $LibraryRows = ConvertTo-AssignmentRow -Assignments $LibraryAssignments -Site $SiteContext -Scope 'Library' -Library $LibraryContext -CollectedAt $CollectedAt + foreach ($Row in $LibraryRows) { $Rows.Add($Row) } + + # Unique permissions but nothing granted: keep the library visible in the + # inventory rather than letting it vanish from the counts. + if ($LibraryRows.Count -eq 0) { + $Rows.Add([PSCustomObject]@{ + rowType = 'Assignment' + id = "$($SiteSeed.id)_$($Library.Id)_empty" + siteId = $SiteSeed.id + siteName = $SiteSeed.displayName + siteUrl = $SiteSeed.webUrl + scope = 'Library' + libraryId = $LibraryContext.Id + libraryTitle = $LibraryContext.Title + libraryUrl = $LibraryContext.Url + principalId = $null + title = $null + loginName = $null + email = $null + userPrincipalName = $null + principalType = $null + isGuest = $false + permissionLevel = $null + roleDefinitionId = $null + isSystemManaged = $false + broadClaim = $null + isTenantWide = $false + collectedAt = $CollectedAt + }) + } + } + + $SiteResults.Add([PSCustomObject]@{ + SiteId = $SiteSeed.id + CollectionStatus = 'Full' + SiteRow = (New-SiteRow -SiteSeed $SiteSeed -Status 'Full' -ErrorMessage $null -LibrariesScanned $Libraries.Count -LibrariesUnique $UniqueCount -CollectedAt $CollectedAt) + Rows = @($Rows) + }) + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SharePoint permissions: collection failed for '$($SiteSeed.webUrl)': $($_.Exception.Message)" -sev Warning + $SiteResults.Add([PSCustomObject]@{ + SiteId = $SiteSeed.id + CollectionStatus = 'Skipped' + SiteRow = (New-SiteRow -SiteSeed $SiteSeed -Status 'Skipped' -ErrorMessage $_.Exception.Message -LibrariesScanned 0 -LibrariesUnique 0 -CollectedAt $CollectedAt) + Rows = @() + }) + } + } + + if ($SiteResults.Count -ne $SiteSeeds.Count) { + throw "Batch $BatchNumber invariant violated: expected $($SiteSeeds.Count) site results, got $($SiteResults.Count)" + } + + return [PSCustomObject]@{ + BatchNumber = $BatchNumber + Sites = @($SiteResults) + } + + } catch { + $ErrorMsg = "Failed SharePoint permissions batch $BatchNumber for tenant $TenantFilter : $($_.Exception.Message)" + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message $ErrorMsg -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-StoreSharePointPermissions.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-StoreSharePointPermissions.ps1 new file mode 100644 index 0000000000000..8b00f6c888832 --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Permissions/Push-StoreSharePointPermissions.ps1 @@ -0,0 +1,96 @@ +function Push-StoreSharePointPermissions { + <# + .SYNOPSIS + Post-execution function that aggregates per-batch SharePoint permission rows and writes the cache. + + .DESCRIPTION + Collects the Sites arrays returned by every Push-DBCacheSharePointPermissionsBatch activity, + flattens their Site and Assignment rows into a single row set, and writes + SharePointPermissions once via Add-CIPPDbItem. + + Completeness guard: if the number of site results does not match ExpectedSiteCount the + function throws without writing. The cache is written in replace mode, so writing a partial + set would silently discard every site the failed batches were responsible for. + + Merge-on-Skip: when a site returns Skipped, its rows are restored from the existing cache + (matched on siteId) so a transient SPO failure does not erase permission data that was + collected successfully on an earlier run. A Skipped site with no prior rows keeps just its + Site row, which carries collectionStatus and the error - the report can then say the site + could not be scanned rather than implying it has no permissions. + + Row types written (see Push-DBCacheSharePointPermissionsBatch for the full schema): + - rowType 'Site' one per site, always present, carries collectionStatus and library counts + - rowType 'Assignment' one per scope, principal and permission level + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.Parameters.TenantFilter + $ExpectedSiteCount = [int]$Item.Parameters.ExpectedSiteCount + + try { + $SiteResults = [System.Collections.Generic.List[object]]::new() + foreach ($BatchResult in @($Item.Results)) { + foreach ($SiteResult in @($BatchResult.Sites)) { + if ($SiteResult) { $SiteResults.Add($SiteResult) } + } + } + + $ActualCount = $SiteResults.Count + if ($ActualCount -ne $ExpectedSiteCount) { + throw "SharePoint permissions completeness check failed for $TenantFilter : expected $ExpectedSiteCount site results, got $ActualCount" + } + + # Restore rows for sites that could not be collected this run. + $SkippedResults = @($SiteResults | Where-Object { $_.CollectionStatus -eq 'Skipped' }) + $MergedCount = 0 + $PriorRowsBySiteId = @{} + if ($SkippedResults.Count -gt 0) { + foreach ($Existing in @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SharePointPermissions')) { + if ($Existing.rowType -ne 'Assignment') { continue } + $Key = [string]$Existing.siteId + if (-not $Key) { continue } + if (-not $PriorRowsBySiteId.ContainsKey($Key)) { + $PriorRowsBySiteId[$Key] = [System.Collections.Generic.List[object]]::new() + } + $PriorRowsBySiteId[$Key].Add($Existing) + } + } + + $AllRows = [System.Collections.Generic.List[object]]::new() + foreach ($SiteResult in $SiteResults) { + if ($SiteResult.SiteRow) { $AllRows.Add($SiteResult.SiteRow) } + + if ($SiteResult.CollectionStatus -eq 'Skipped') { + $Key = [string]$SiteResult.SiteId + if ($Key -and $PriorRowsBySiteId.ContainsKey($Key)) { + foreach ($Row in $PriorRowsBySiteId[$Key]) { $AllRows.Add($Row) } + $MergedCount++ + } + continue + } + + foreach ($Row in @($SiteResult.Rows)) { + if ($Row) { $AllRows.Add($Row) } + } + } + + if ($SkippedResults.Count -gt 0) { + $RemainingSkipped = $SkippedResults.Count - $MergedCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SharePoint permissions: $($SkippedResults.Count) of $ActualCount sites returned Skipped from collection; restored $MergedCount from prior cache; $RemainingSkipped have no permission rows" -sev Warning + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointPermissions' -Data @($AllRows) -AddCount + + $AssignmentCount = @($AllRows | Where-Object { $_.rowType -eq 'Assignment' }).Count + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $AssignmentCount SharePoint permission assignments across $ActualCount sites ($MergedCount merge-on-Skip) from $(@($Item.Results).Count) batches" -sev Info + return + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to store SharePoint permissions: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-DBCacheSharePointSiteSharingLinks.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-DBCacheSharePointSiteSharingLinks.ps1 new file mode 100644 index 0000000000000..42bd5b3e68e4c --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-DBCacheSharePointSiteSharingLinks.ps1 @@ -0,0 +1,190 @@ +function Push-DBCacheSharePointSiteSharingLinks { + <# + .SYNOPSIS + Scans a single SharePoint/OneDrive site for sharing links and returns the rows. + + .DESCRIPTION + Processes one site (fanned out by Set-CIPPDBCacheSharePointSharingLinks). Enumerates the + site's drives, delta-scans each drive for items carrying the "shared" facet, fetches the + direct (non-inherited) sharing permissions of those items and returns one row per sharing + link (any scope) or direct grant to an external user. Delta pages are streamed and shared + items are processed in bounded buffers so a single very large library cannot exhaust the + worker's memory. The rows are returned to the orchestrator; Push-StoreSharePointSharingLinks + aggregates every site and writes the cache once. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $SiteId = $Item.SiteId + $SiteName = $Item.SiteName + $SiteUrl = $Item.SiteUrl + $IsPersonalSite = [bool]$Item.IsPersonalSite + + # Verified domains passed from the parent; used to tell internal from external recipients. + $InternalDomains = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Domain in @($Item.InternalDomains)) { if ($Domain) { [void]$InternalDomains.Add([string]$Domain) } } + + # Returns $true when an identity (link recipient or direct grant) is external to the tenant. + function Test-CIPPExternalIdentity { + param($Identity, $InternalDomains) + $LoginName = [string]($Identity.siteUser.loginName ?? $Identity.user.loginName ?? '') + if ($LoginName -match '#ext#' -or $LoginName -match 'urn%3aspo%3aguest' -or $LoginName -match 'urn:spo:guest') { return $true } + $Email = [string]($Identity.user.email ?? $Identity.user.userPrincipalName ?? $Identity.siteUser.email ?? '') + if ($Email -match '#EXT#') { return $true } + if ($Email -and $Email.Contains('@') -and $InternalDomains.Count -gt 0) { + return -not $InternalDomains.Contains($Email.Split('@')[-1]) + } + return $false + } + + # Friendly display value for an identity, preferring email over display name. + function Get-CIPPIdentityLabel { + param($Identity) + $Identity.user.email ?? $Identity.user.userPrincipalName ?? $Identity.siteUser.email ?? $Identity.user.displayName ?? $Identity.siteUser.displayName ?? $Identity.group.email ?? $Identity.group.displayName ?? $Identity.siteGroup.displayName + } + + $Rows = [System.Collections.Generic.List[object]]::new() + + # Fetch permissions for a buffer of shared items and append their sharing-link rows. + function Add-CIPPSharingRows { + param($Buffer, $Drive, $Site, $InternalDomains, $TenantFilter, $RowsOut) + + if (@($Buffer).Count -eq 0) { return } + + $ItemByRequestId = @{} + $RequestId = 0 + $PermissionRequests = foreach ($SharedItem in $Buffer) { + $ItemByRequestId["$RequestId"] = $SharedItem + @{ + id = "$RequestId" + method = 'GET' + url = "drives/$($Drive.id)/items/$($SharedItem.id)/permissions" + } + $RequestId++ + } + + $PermissionResponses = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($PermissionRequests) -asapp $true + foreach ($Response in $PermissionResponses) { + if ($Response.status -and $Response.status -ne 200) { continue } + $DriveItem = $ItemByRequestId["$($Response.id)"] + + foreach ($Permission in @($Response.body.value)) { + # Only permissions set on the item itself; inherited ones are reported on their parent. + if ($Permission.inheritedFrom) { continue } + + if ($Permission.link) { + $Recipients = @($Permission.grantedToIdentitiesV2 ?? $Permission.grantedToIdentities) + $LinkScope = $Permission.link.scope ?? 'users' + $Classification = switch ($LinkScope) { + 'anonymous' { 'Anonymous' } + 'organization' { 'Internal' } + 'existingAccess' { 'Internal' } + default { + $HasExternal = $false + foreach ($Recipient in $Recipients) { + if (Test-CIPPExternalIdentity -Identity $Recipient -InternalDomains $InternalDomains) { $HasExternal = $true; break } + } + if ($HasExternal) { 'External' } else { 'Internal' } + } + } + $LinkType = $Permission.link.type ?? 'link' + $LinkUrl = $Permission.link.webUrl + } else { + # Direct grant (no sharing link): only report grants to external users. + $Recipients = @($Permission.grantedToV2 ?? $Permission.grantedTo) + if ($Permission.roles -contains 'owner') { continue } + $HasExternal = $false + foreach ($Recipient in $Recipients) { + if (Test-CIPPExternalIdentity -Identity $Recipient -InternalDomains $InternalDomains) { $HasExternal = $true; break } + } + if (-not $HasExternal) { continue } + $Classification = 'External' + $LinkScope = 'direct' + $LinkType = 'directGrant' + $LinkUrl = $null + } + + $SharedWith = @($Recipients | ForEach-Object { Get-CIPPIdentityLabel -Identity $_ } | Where-Object { $_ } | Sort-Object -Unique) + + $RowsOut.Add([PSCustomObject]@{ + id = "$($Drive.id)_$($DriveItem.id)_$($Permission.id)" + siteId = $Site.SiteId + siteName = $Site.SiteName + siteUrl = $Site.SiteUrl + workload = if ($Site.IsPersonalSite) { 'OneDrive' } else { 'SharePoint' } + driveId = $Drive.id + driveName = $Drive.name + itemId = $DriveItem.id + fileName = $DriveItem.name + itemUrl = $DriveItem.webUrl + itemType = if ($DriveItem.folder) { 'Folder' } else { 'File' } + size = $DriveItem.size + lastModifiedDateTime = $DriveItem.lastModifiedDateTime + permissionId = $Permission.id + linkType = $LinkType + linkScope = $LinkScope + classification = $Classification + roles = @($Permission.roles) + sharedWith = $SharedWith + linkUrl = $LinkUrl + hasPassword = $Permission.hasPassword ?? $false + expirationDateTime = $Permission.expirationDateTime + }) + } + } + } + + try { + # 1) Drives (document libraries) for this one site. + $Drives = @() + try { + $Drives = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteId/drives?`$select=id,name,driveType,webUrl" -tenantid $TenantFilter -asapp $true) + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Sharing links: could not list drives for '$SiteUrl': $($_.Exception.Message)" -sev Warning + return @() + } + + $SiteContext = [PSCustomObject]@{ + SiteId = $SiteId + SiteName = $SiteName + SiteUrl = $SiteUrl + IsPersonalSite = $IsPersonalSite + } + $PermissionBufferSize = 200 + + # 2) Delta-scan each drive, streaming pages so a huge library never loads at once. + # Shared items are buffered and flushed to permission lookups in bounded chunks. + foreach ($Drive in $Drives) { + if (-not $Drive.id) { continue } + $Buffer = [System.Collections.Generic.List[object]]::new() + try { + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/drives/$($Drive.id)/root/delta?`$select=id,name,webUrl,folder,shared,size,lastModifiedDateTime&`$top=999" -tenantid $TenantFilter -asapp $true -Stream | + Where-Object { $_.shared -and -not $_.deleted } | + ForEach-Object { + $Buffer.Add($_) + if ($Buffer.Count -ge $PermissionBufferSize) { + Add-CIPPSharingRows -Buffer $Buffer -Drive $Drive -Site $SiteContext -InternalDomains $InternalDomains -TenantFilter $TenantFilter -RowsOut $Rows + $Buffer.Clear() + } + } + # Flush the remainder for this drive. + Add-CIPPSharingRows -Buffer $Buffer -Drive $Drive -Site $SiteContext -InternalDomains $InternalDomains -TenantFilter $TenantFilter -RowsOut $Rows + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Sharing links: failed scanning drive '$($Drive.name)' on '$SiteUrl': $($_.Exception.Message)" -sev Warning + } finally { + $Buffer = $null + [System.GC]::Collect() + } + } + + return @($Rows) + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Sharing links: failed scanning site '$SiteUrl': $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + return @($Rows) + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-StoreSharePointSharingLinks.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-StoreSharePointSharingLinks.ps1 new file mode 100644 index 0000000000000..40532b7f4b4e1 --- /dev/null +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/SharePoint Sharing/Push-StoreSharePointSharingLinks.ps1 @@ -0,0 +1,36 @@ +function Push-StoreSharePointSharingLinks { + <# + .SYNOPSIS + Post-execution function that aggregates per-site sharing links and writes the cache. + + .DESCRIPTION + Collects the row sets returned by every Push-DBCacheSharePointSiteSharingLinks activity and + writes them to the CIPP reporting database as a single SharePointSharingLinks dataset (full + replace with count). Writing once from this serial step avoids the {Type}-Count race that + parallel appenders would cause. + + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.Parameters.TenantFilter + + try { + $AllRows = [System.Collections.Generic.List[object]]::new() + foreach ($SiteResult in $Item.Results) { + foreach ($Row in @($SiteResult)) { + if ($Row -and $Row.id) { $AllRows.Add($Row) } + } + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointSharingLinks' -Data @($AllRows) -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $($AllRows.Count) SharePoint/OneDrive sharing links across $(@($Item.Results).Count) sites" -sev Info + return + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to store SharePoint sharing links: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 index 6d8cba6a8cb2c..b3c91c96ed345 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1 @@ -11,6 +11,27 @@ function Push-CIPPStandard { $Tenant = $Item.Tenant $Standard = $Item.Standard + + # FUTURE USE - ZAC + # Grouped Conditional Access batch: deploy all of a tenant's CA templates in one sequential + # pass. Per-template rerun checks and standard-info context are handled inside the batch + # function, so we bypass the generic per-item dispatch below. + # if ($Item.BatchTemplates) { + # $TemplateCount = @($Item.BatchTemplates).Count + # Write-Information "Received Conditional Access batch for $Tenant with $TemplateCount template(s)." + # Set-CippUserAgentContext -Source 'standard' -TemplateId $Item.TemplateId + # $QueuedTime = if ($Item.QueuedTime) { [int64]$Item.QueuedTime } else { 0 } + # try { + # Invoke-CIPPCATemplateBatch -Tenant $Tenant -Templates $Item.BatchTemplates -QueuedTime $QueuedTime + # Write-Information "Conditional Access batch completed for tenant $Tenant" + # } catch { + # Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running Conditional Access batch for tenant $Tenant - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + # Write-Warning "Error running Conditional Access batch for tenant $Tenant - $($_.Exception.Message)" + # throw $_.Exception.Message + # } + # return + # } + $FunctionName = 'Invoke-CIPPStandard{0}' -f $Standard Write-Information "We'll be running $FunctionName" diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 index 24062cd9847d5..e15912a163472 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandardsApplyBatch.ps1 @@ -20,6 +20,32 @@ function Push-CIPPStandardsApplyBatch { return } + # FUTURE USE - ZAC + # Group all ConditionalAccessTemplate standards per tenant into a single batch item so + # they deploy sequentially (one activity per tenant) instead of fanning out one activity + # per template. This removes the 429 storm against the ~1 req/s CA write endpoint and the + # duplicate named location / c1-c99 / 1040 races. Non-CA standards pass through unchanged. + # $CAStandards = @($AllStandards | Where-Object { $_.Standard -eq 'ConditionalAccessTemplate' }) + # if ($CAStandards.Count -gt 0) { + # $OtherStandards = @($AllStandards | Where-Object { $_.Standard -ne 'ConditionalAccessTemplate' }) + # $GroupedCA = foreach ($TenantGroup in ($CAStandards | Group-Object -Property Tenant)) { + # [pscustomobject]@{ + # Tenant = $TenantGroup.Name + # Standard = 'ConditionalAccessTemplate' + # FunctionName = 'CIPPStandard' + # QueuedTime = ($TenantGroup.Group | Select-Object -First 1).QueuedTime + # BatchTemplates = @($TenantGroup.Group | ForEach-Object { + # [pscustomobject]@{ + # Settings = $_.Settings + # TemplateId = $_.TemplateId + # } + # }) + # } + # } + # $AllStandards = @($OtherStandards) + @($GroupedCA) + # Write-Information "Grouped $($CAStandards.Count) Conditional Access template standards into $(@($GroupedCA).Count) per-tenant batch item(s)." + # } + Write-Information "Aggregated $($AllStandards.Count) standards from all tenants: $($AllStandards | ConvertTo-Json -Depth 5 -Compress)" # Start orchestrator to apply standards diff --git a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 index d018d1d0aa9d5..fff94115fdb04 100644 --- a/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 +++ b/Modules/CIPPActivityTriggers/Public/Entrypoints/Activity Triggers/Tests/Push-CIPPTestsList.ps1 @@ -37,7 +37,19 @@ function Push-CIPPTestsList { # Emit one task per suite — suite names must match the ValidateSet in Invoke-CIPPTestCollection. # Function discovery happens inside Invoke-CIPPTestCollection via Get-Command (path-independent). - $Suites = @('ZTNA', 'ORCA', 'EIDSCA', 'CISA', 'CIS', 'SMB1001', 'CopilotReadiness', 'GenericTests', 'Custom') + $Suites = @('ZTNA', 'ORCA', 'EIDSCA', 'CISA', 'CIS', 'SMB1001', 'CopilotReadiness', 'GenericTests', 'Custom', 'E8') + + # Optional caller-supplied suite filter (e.g. a Custom-only run). When present, restrict + # the emitted suites to the requested subset so we don't spin up every suite unnecessarily. + if ($Item.Suites) { + $Requested = @($Item.Suites) + $Suites = @($Suites | Where-Object { $_ -in $Requested }) + if ($Suites.Count -eq 0) { + Write-Information "No suites matched the requested filter ($($Requested -join ', ')) for tenant $TenantFilter. Skipping." + return @() + } + Write-Information "Suite filter applied for $TenantFilter — running: $($Suites -join ', ')" + } $Tasks = foreach ($Suite in $Suites) { [PSCustomObject]@{ diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertCheckExtension.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertCheckExtension.ps1 index 79ae2f3a8b41c..0d0fb4281d13d 100644 --- a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertCheckExtension.ps1 +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertCheckExtension.ps1 @@ -16,9 +16,16 @@ function Get-CIPPAlertCheckExtension { $LastRunTable = Get-CippTable -tablename 'AlertLastRun' $LastRunKey = "$TenantFilter-Get-CIPPAlertCheckExtension" - # Get the last run timestamp for this tenant to only fetch new alerts + # Capture the start of this run. The watermark is advanced to this value + # after processing so the next run only fetches alerts from this point + # onward, including any that arrive while this run is still processing. + $RunStart = (Get-Date).ToUniversalTime() + + # Get the last run timestamp for this tenant to only fetch new alerts. $LastRun = Get-CIPPAzDataTableEntity @LastRunTable -Filter "PartitionKey eq 'AlertLastRun' and RowKey eq '$LastRunKey'" | Select-Object -First 1 - $Since = if ($LastRun.Timestamp) { + $Since = if ($LastRun.LastRunTime) { + [datetime]::Parse($LastRun.LastRunTime, [cultureinfo]::InvariantCulture, [System.Globalization.DateTimeStyles]::RoundtripKind) + } elseif ($LastRun.Timestamp) { $LastRun.Timestamp.UtcDateTime } else { (Get-Date).AddDays(-1).ToUniversalTime() @@ -45,6 +52,16 @@ function Get-CIPPAlertCheckExtension { if ($AlertData) { Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData } + + # Advance the watermark so the next run only picks up alerts newer than + # this run. Without this, $Since always fell back to the default window + # and previously sent alerts were re-sent on every run. + $LastRunEntity = @{ + PartitionKey = 'AlertLastRun' + RowKey = $LastRunKey + LastRunTime = $RunStart.ToString('o') + } + $null = Add-CIPPAzDataTableEntity @LastRunTable -Entity $LastRunEntity -Force } catch { $ErrorMessage = Get-CippException -Exception $_ Write-AlertMessage -message "Check Extension alert failed: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -LogData $ErrorMessage diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 index cb50fae892f54..ec58292bbae10 100644 --- a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertHuntressRogueApps.ps1 @@ -3,7 +3,7 @@ function Get-CIPPAlertHuntressRogueApps { .SYNOPSIS Check for rogue apps in a Tenant .DESCRIPTION - This function checks for rogue apps in the tenant by comparing the service principals in the tenant with a list of known rogue apps provided by Huntress. + This function checks for rogue apps in the tenant by comparing the service principals in the tenant with a list of known rogue apps provided by Huntress and a CIPP collections of appids. .FUNCTIONALITY Entrypoint .LINK @@ -19,8 +19,23 @@ function Get-CIPPAlertHuntressRogueApps { try { $RogueApps = Invoke-RestMethod -Uri 'https://huntresslabs.github.io/rogueapps/rogueapps.json' - $RogueAppFilter = $RogueApps.appId -join "','" - $ServicePrincipals = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$filter=appId in ('$RogueAppFilter')" -tenantid $TenantFilter + $CippRogueApps = (Get-Content -Path (Join-Path $env:CIPPRootPath 'Config\schemaDefinitions.json') | ConvertFrom-Json).applications.appId + $HuntressRogueApps = $RogueApps.appId + $RogueAppIds = @($CippRogueApps) + @($HuntressRogueApps) | Where-Object { $_ } | Select-Object -Unique + $Requests = for ($i = 0; $i -lt $RogueAppIds.Count; $i += 15) { + $Chunk = $RogueAppIds[$i..([Math]::Min($i + 14, $RogueAppIds.Count - 1))] + @{ + id = [string]$i + method = 'GET' + url = "servicePrincipals?`$filter=appId in ('$($Chunk -join "','")')" + } + } + $Requests = @($Requests) + + $ServicePrincipals = if ($Requests.Count -gt 0) { + $Responses = New-GraphBulkRequest -Requests $Requests -tenantid $TenantFilter + foreach ($Response in $Responses) { $Response.body.value } + } # If IgnoreDisabledApps is true, filter out disabled service principals if ($InputValue -eq $true) { $ServicePrincipals = $ServicePrincipals | Where-Object { $_.accountEnabled -eq $true } diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 index 9a304a61ae372..221e9a4444532 100644 --- a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveLicensedUsers.ps1 @@ -20,6 +20,8 @@ function Get-CIPPAlertInactiveLicensedUsers { if ($InputValue -is [hashtable] -or $InputValue -is [pscustomobject]) { $excludeDisabled = [bool]$InputValue.ExcludeDisabled + # Allow the alert configuration to opt in to reporting users who have never signed in (e.g. accounts with sign-in blocked) + if ([bool]$InputValue.IncludeNeverSignedIn) { $IncludeNeverSignedIn = $true } if ($null -ne $InputValue.DaysSinceLastLogin -and $InputValue.DaysSinceLastLogin -ne '') { $parsedDays = 0 if ([int]::TryParse($InputValue.DaysSinceLastLogin.ToString(), [ref]$parsedDays) -and $parsedDays -gt 0) { @@ -45,6 +47,13 @@ function Get-CIPPAlertInactiveLicensedUsers { $GraphRequest = New-GraphGetRequest -uri $Uri -scope 'https://graph.microsoft.com/.default' -tenantid $TenantFilter | Where-Object { $null -ne $_.assignedLicenses -and $_.assignedLicenses.Count -gt 0 } + $LicenseOverview = @() + try { + $LicenseOverview = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview') + } catch { + Write-Information "Could not get the license overview from the reporting DB, license names will fall back to SKU IDs: $($_.Exception.Message)" + } + $AlertData = foreach ($user in $GraphRequest) { $lastInteractive = $user.signInActivity.lastSignInDateTime $lastNonInteractive = $user.signInActivity.lastNonInteractiveSignInDateTime @@ -65,19 +74,28 @@ function Get-CIPPAlertInactiveLicensedUsers { if (-not $IncludeNeverSignedIn -and -not $lastSignIn) { continue } # Only process inactive users if ($isInactive) { + $daysSinceSignIn = $null if (-not $lastSignIn) { $Message = 'User {0} has never signed in but still has a license assigned.' -f $user.UserPrincipalName } else { $daysSinceSignIn = [Math]::Round(((Get-Date) - [DateTime]$lastSignIn).TotalDays) $Message = 'User {0} has been inactive for {1} days but still has a license assigned. Last sign-in: {2}' -f $user.UserPrincipalName, $daysSinceSignIn, $lastSignIn } + $LicenseNames = foreach ($SkuId in $user.assignedLicenses.skuId) { + $Sku = $LicenseOverview | Where-Object { $_.skuId -eq $SkuId } | Select-Object -First 1 + if ($Sku.License) { $Sku.License } else { $SkuId } + } [PSCustomObject]@{ - UserPrincipalName = $user.UserPrincipalName - Id = $user.id - lastSignIn = $lastSignIn - Message = $Message - Tenant = $TenantFilter + UserPrincipalName = $user.UserPrincipalName + Id = $user.id + lastSignIn = $lastSignIn + DaysSinceLastSignIn = if ($null -ne $daysSinceSignIn) { $daysSinceSignIn } else { 'N/A' } + AccountEnabled = $user.accountEnabled + LicenseNames = $LicenseNames -join ', ' + SkuIds = @($user.assignedLicenses.skuId) -join ', ' + Message = $Message + Tenant = $TenantFilter } } } diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveSharePointSites.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveSharePointSites.ps1 new file mode 100644 index 0000000000000..ba301c522572e --- /dev/null +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveSharePointSites.ps1 @@ -0,0 +1,98 @@ +function Get-CIPPAlertInactiveSharePointSites { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $HasSharePoint = Test-CIPPStandardLicense -StandardName 'InactiveSharePointSites' -TenantFilter $TenantFilter -Preset SharePoint + if (-not $HasSharePoint) { + return + } + + try { + $DaysSinceActivity = 90 + $IncludeNeverActive = $false + + if ($InputValue -is [hashtable] -or $InputValue -is [PSCustomObject]) { + if ($null -ne $InputValue.IncludeNeverActive) { + $IncludeNeverActive = [bool]$InputValue.IncludeNeverActive + } + if ($null -ne $InputValue.DaysSinceActivity -and $InputValue.DaysSinceActivity -ne '') { + $ParsedDays = 0 + if ([int]::TryParse($InputValue.DaysSinceActivity.ToString(), [ref]$ParsedDays) -and $ParsedDays -gt 0) { + $DaysSinceActivity = $ParsedDays + } + } + } elseif ($InputValue) { + $ParsedDays = 0 + if ([int]::TryParse($InputValue.ToString(), [ref]$ParsedDays) -and $ParsedDays -gt 0) { + $DaysSinceActivity = $ParsedDays + } + } + + $Lookup = (Get-Date).AddDays(-$DaysSinceActivity).Date + + $SiteActivityRows = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SiteActivity') + if (-not $SiteActivityRows) { + return + } + + $AlertData = foreach ($Site in $SiteActivityRows) { + if ($Site.isDeleted -eq $true) { continue } + if ($Site.siteType -ne 'SharePoint') { continue } + + $LastActivity = $Site.effectiveLastActivityDate + if (-not $LastActivity) { + if (-not $IncludeNeverActive) { continue } + } elseif ([DateTime]$LastActivity -gt $Lookup) { + continue + } + + $SiteUrl = $Site.webUrl + $SiteLabel = $Site.displayName ?? $SiteUrl + if ([string]::IsNullOrWhiteSpace($SiteLabel) -and $Site.ownerDisplayName) { + $SiteLabel = $Site.ownerDisplayName + } + + $LastActivityDisplay = if ($LastActivity) { $LastActivity } else { 'Never' } + $DaysSinceActivityValue = if ($LastActivity) { + [Math]::Round(((Get-Date).Date - [DateTime]$LastActivity).TotalDays) + } else { + 'N/A' + } + + $OwnerPart = if ($Site.ownerPrincipalName) { " Owner: $($Site.ownerPrincipalName)." } else { '' } + $Message = "Site '$SiteLabel' ($SiteUrl) SharePoint last active $LastActivityDisplay.$OwnerPart" + + [PSCustomObject]@{ + Message = $Message + Id = $Site.siteId + siteId = $Site.siteId + webUrl = $SiteUrl + displayName = $Site.displayName + ownerPrincipalName = $Site.ownerPrincipalName + lastActivityDate = $LastActivityDisplay + DaysSinceActivity = $DaysSinceActivityValue + rootWebTemplate = $Site.rootWebTemplate + cachedAt = $Site.cachedAt + reportPeriod = $Site.reportPeriod + teamLinkResolutionStatus = $Site.teamLinkResolutionStatus + Tenant = $TenantFilter + } + } + + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-AlertMessage -message "Inactive SharePoint sites alert failed: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveTeamsSites.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveTeamsSites.ps1 new file mode 100644 index 0000000000000..38efa0383f51a --- /dev/null +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertInactiveTeamsSites.ps1 @@ -0,0 +1,101 @@ +function Get-CIPPAlertInactiveTeamsSites { + <# + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + $HasTeams = Test-CIPPStandardLicense -StandardName 'InactiveTeamsSites' -TenantFilter $TenantFilter -Preset Teams + if (-not $HasTeams) { + return + } + + try { + $DaysSinceActivity = 90 + $IncludeNeverActive = $false + + if ($InputValue -is [hashtable] -or $InputValue -is [PSCustomObject]) { + if ($null -ne $InputValue.IncludeNeverActive) { + $IncludeNeverActive = [bool]$InputValue.IncludeNeverActive + } + if ($null -ne $InputValue.DaysSinceActivity -and $InputValue.DaysSinceActivity -ne '') { + $ParsedDays = 0 + if ([int]::TryParse($InputValue.DaysSinceActivity.ToString(), [ref]$ParsedDays) -and $ParsedDays -gt 0) { + $DaysSinceActivity = $ParsedDays + } + } + } elseif ($InputValue) { + $ParsedDays = 0 + if ([int]::TryParse($InputValue.ToString(), [ref]$ParsedDays) -and $ParsedDays -gt 0) { + $DaysSinceActivity = $ParsedDays + } + } + + $Lookup = (Get-Date).AddDays(-$DaysSinceActivity).Date + + $SiteActivityRows = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SiteActivity') + if (-not $SiteActivityRows) { + return + } + + $AlertData = foreach ($Site in $SiteActivityRows) { + if ($Site.isDeleted -eq $true) { continue } + if ($Site.siteType -ne 'SharePointAndTeams') { continue } + + $LastActivity = $Site.effectiveLastActivityDate + if (-not $LastActivity) { + if (-not $IncludeNeverActive) { continue } + } elseif ([datetime]$LastActivity -gt $Lookup) { + continue + } + + $TeamsSiteUrl = $Site.webUrl + $TeamsSiteLabel = $Site.teamsTeamName ?? $Site.displayName ?? $TeamsSiteUrl + if ([string]::IsNullOrWhiteSpace($TeamsSiteLabel) -and $Site.ownerDisplayName) { + $TeamsSiteLabel = $Site.ownerDisplayName + } + + $LastActivityDisplay = if ($LastActivity) { $LastActivity } else { 'Never' } + $DaysSinceActivityValue = if ($LastActivity) { + [Math]::Round(((Get-Date).Date - [datetime]$LastActivity).TotalDays) + } else { + 'N/A' + } + + $OwnerPart = if ($Site.ownerPrincipalName) { " Owner: $($Site.ownerPrincipalName)." } else { '' } + $Message = "TeamsSite '$TeamsSiteLabel' ($TeamsSiteUrl) Teams last active $LastActivityDisplay.$OwnerPart" + + [PSCustomObject]@{ + Message = $Message + Id = $Site.siteId + siteId = $Site.siteId + teamsSiteName = $TeamsSiteLabel + teamsSiteUrl = $TeamsSiteUrl + teamsTeamId = $Site.teamsTeamId + teamsTeamName = $Site.teamsTeamName + teamsLastActivityDate = $LastActivityDisplay + DaysSinceActivity = $DaysSinceActivityValue + sharePointLastActivityDate = $Site.sharePointLastActivityDate + effectiveLastActivityDate = $Site.effectiveLastActivityDate + ownerPrincipalName = $Site.ownerPrincipalName + teamLinkResolutionStatus = $Site.teamLinkResolutionStatus + cachedAt = $Site.cachedAt + reportPeriod = $Site.reportPeriod + Tenant = $TenantFilter + } + } + + if ($AlertData) { + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-AlertMessage -message "Inactive TeamsSite alert failed: $($ErrorMessage.NormalizedError)" -tenant $TenantFilter -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertNewShadowAITool.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertNewShadowAITool.ps1 new file mode 100644 index 0000000000000..86eb83645faa7 --- /dev/null +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertNewShadowAITool.ps1 @@ -0,0 +1,148 @@ +function Get-CIPPAlertNewShadowAITool { + <# + .SYNOPSIS + Alert on AI tools detected in the tenant for the first time + .DESCRIPTION + Matches the cached Intune detected apps and Entra service principals against the curated + Shadow AI catalog (Config/ShadowAI.json) and alerts when an AI tool shows up that has never + been seen in this tenant before. The first run stores a baseline and does not alert. Uses + the same cached data as the Shadow AI dashboard, so the alert only sees what the Detected + Apps and Service Principals caches contain. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param ( + [Parameter(Mandatory = $false)] + [Alias('input')] + $InputValue, + $TenantFilter + ) + + try { + $Catalog = @(Get-Content (Join-Path $env:CIPPRootPath 'Config\ShadowAI.json') -ErrorAction Stop | ConvertFrom-Json) + + # Returns the first catalog entry whose matchNames appear (case-insensitive substring) in $Text. + function Get-AiMatch { + param($Text, $Catalog) + if ([string]::IsNullOrWhiteSpace($Text)) { return $null } + $Haystack = $Text.ToLower() + foreach ($Entry in $Catalog) { + foreach ($Match in $Entry.matchNames) { + if ($Match -and $Haystack.Contains($Match.ToLower())) { return $Entry } + } + } + return $null + } + + $SanctionedTools = @{} + try { + $SanctionTable = Get-CIPPTable -TableName 'ShadowAIConfig' + $EscapedTenant = $TenantFilter -replace "'", "''" + foreach ($Row in @(Get-CIPPAzDataTableEntity @SanctionTable -Filter "PartitionKey eq '$EscapedTenant'")) { + $ToolName = if ($Row.Tool) { $Row.Tool } else { $Row.RowKey } + if ($ToolName) { $SanctionedTools[$ToolName.ToLower()] = $true } + } + } catch { + Write-Information "Could not load sanctioned AI tools for $($TenantFilter): $($_.Exception.Message)" + } + + $DetectedApps = @() + $ServicePrincipals = @() + try { $DetectedApps = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'DetectedApps') } catch {} + try { $ServicePrincipals = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'ServicePrincipals') } catch {} + + # No cached data at all means the caches have not synced (yet) - leave the baseline + # untouched instead of treating every tool as gone and re-alerting when data returns. + if ($DetectedApps.Count -eq 0 -and $ServicePrincipals.Count -eq 0) { + return + } + + $CurrentTools = @{} + foreach ($App in $DetectedApps) { + $Match = Get-AiMatch -Text "$($App.displayName) $($App.publisher)" -Catalog $Catalog + if (-not $Match) { continue } + if (-not $CurrentTools.ContainsKey($Match.name)) { + $CurrentTools[$Match.name] = [PSCustomObject]@{ + Match = $Match + Sources = [System.Collections.Generic.List[string]]::new() + Applications = [System.Collections.Generic.List[string]]::new() + Devices = [System.Collections.Generic.HashSet[string]]::new() + } + } + $Entry = $CurrentTools[$Match.name] + if ($Entry.Sources -notcontains 'Intune device install') { $Entry.Sources.Add('Intune device install') } + if ($App.displayName -and $Entry.Applications -notcontains [string]$App.displayName) { $Entry.Applications.Add([string]$App.displayName) } + foreach ($Device in @($App.managedDevices ?? @())) { + $DeviceKey = if ($Device.id) { [string]$Device.id } else { [string]$Device.deviceName } + if ($DeviceKey) { $null = $Entry.Devices.Add($DeviceKey) } + } + } + foreach ($Sp in $ServicePrincipals) { + $Match = Get-AiMatch -Text $Sp.displayName -Catalog $Catalog + if (-not $Match) { continue } + if (-not $CurrentTools.ContainsKey($Match.name)) { + $CurrentTools[$Match.name] = [PSCustomObject]@{ + Match = $Match + Sources = [System.Collections.Generic.List[string]]::new() + Applications = [System.Collections.Generic.List[string]]::new() + Devices = [System.Collections.Generic.HashSet[string]]::new() + } + } + $Entry = $CurrentTools[$Match.name] + if ($Entry.Sources -notcontains 'Entra consented application') { $Entry.Sources.Add('Entra consented application') } + if ($Sp.displayName -and $Entry.Applications -notcontains [string]$Sp.displayName) { $Entry.Applications.Add([string]$Sp.displayName) } + } + + # Baseline of every tool EVER seen in this tenant - append-only, so a tool that + # disappears from the cache and comes back does not re-alert. + $DeltaTable = Get-CIPPTable -Table DeltaCompare + $Filter = "PartitionKey eq 'ShadowAIDelta' and RowKey eq '{0}'" -f $TenantFilter + $PreviousRow = Get-CIPPAzDataTableEntity @DeltaTable -Filter $Filter + $SeenTools = @{} + if ($PreviousRow.delta) { + foreach ($Name in @($PreviousRow.delta | ConvertFrom-Json -ErrorAction SilentlyContinue)) { + if ($Name) { $SeenTools[[string]$Name] = $true } + } + } + + $NewToolNames = @($CurrentTools.Keys | Where-Object { -not $SeenTools.ContainsKey($_) }) + + $AllSeen = @(@($SeenTools.Keys) + @($CurrentTools.Keys) | Sort-Object -Unique) + $DeltaEntity = @{ + PartitionKey = 'ShadowAIDelta' + RowKey = [string]$TenantFilter + delta = [string](ConvertTo-Json -InputObject $AllSeen -Compress) + } + Add-CIPPAzDataTableEntity @DeltaTable -Entity $DeltaEntity -Force + + # First run establishes the baseline without alerting. + if (-not $PreviousRow) { return } + + # Optionally skip tools that are marked as sanctioned for this tenant. + if ($InputValue -eq $true) { + $NewToolNames = @($NewToolNames | Where-Object { -not $SanctionedTools.ContainsKey($_.ToLower()) }) + } + + if ($NewToolNames.Count -gt 0) { + $AlertData = foreach ($ToolName in $NewToolNames) { + $Info = $CurrentTools[$ToolName] + [PSCustomObject]@{ + 'AI Tool' = $Info.Match.name + 'Vendor' = $Info.Match.vendor + 'Category' = $Info.Match.category + 'Risk' = $Info.Match.risk + 'Status' = if ($SanctionedTools.ContainsKey($ToolName.ToLower())) { 'Sanctioned' } else { 'Unsanctioned' } + 'Detected Via' = $Info.Sources -join ', ' + 'Applications' = ($Info.Applications | Sort-Object) -join ', ' + 'Devices' = $Info.Devices.Count + 'Tenant' = $TenantFilter + } + } + Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Alerts' -tenant $TenantFilter -message "Could not check for new Shadow AI tools for $($TenantFilter): $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 index a20a9c38d406d..3d803dafa0d99 100644 --- a/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 +++ b/Modules/CIPPAlerts/Public/Alerts/Get-CIPPAlertQuotaUsed.ps1 @@ -15,6 +15,7 @@ function Get-CIPPAlertQuotaUsed { $Threshold = if ($InputValue.QuotaUsedQuota) { [int]$InputValue.QuotaUsedQuota } else { 90 } $ExcludedRaw = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text ([string]$InputValue.QuotaUsedExcludedMailboxes) $Excluded = @($ExcludedRaw -split ',' | ForEach-Object { $_.Trim().ToLower() } | Where-Object { $_ }) + $MailboxTypes = @($InputValue.QuotaUsedMailboxTypes.value | Where-Object { $_ }) try { $AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application/json&`$top=999" -tenantid $TenantFilter @@ -27,8 +28,10 @@ function Get-CIPPAlertQuotaUsed { $OverQuota = $AlertData | ForEach-Object { if (!$_.StorageUsedInBytes -or !$_.prohibitSendReceiveQuotaInBytes) { return } if ($Excluded -contains $_.userPrincipalName.ToLower()) { return } + # Report returns 'User'/'Shared' or 'UserMailbox'/'SharedMailbox' depending on tenant; normalize before matching + if ($MailboxTypes.Count -gt 0 -and ($_.recipientType -replace 'Mailbox$') -notin $MailboxTypes) { return } $UsagePercent = [math]::Round(($_.storageUsedInBytes / $_.prohibitSendReceiveQuotaInBytes) * 100) - if ($UsagePercent -gt $Threshold) { + if ($UsagePercent -ge $Threshold) { [PSCustomObject]@{ Message = "$($_.userPrincipalName): Mailbox is more than $($Threshold)% full. Mailbox is $UsagePercent% full" Owner = $_.userPrincipalName diff --git a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 index 25481b363bccc..263a2a0fbfcd9 100644 --- a/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPApplicationPermission.ps1 @@ -31,11 +31,9 @@ function Add-CIPPApplicationPermission { } else { if (!$RequiredResourceAccess -and $TemplateId) { Write-Information "Adding application permissions for template $TemplateId" - $TemplateTable = Get-CIPPTable -TableName 'templates' - $Filter = "RowKey eq '$TemplateId' and PartitionKey eq 'AppApprovalTemplate'" - $Template = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter).JSON | ConvertFrom-Json -ErrorAction SilentlyContinue - $ApplicationId = $Template.AppId - $Permissions = $Template.Permissions + $TemplatePermissions = Get-CIPPAppApprovalPermissions -TemplateId $TemplateId + $ApplicationId = $TemplatePermissions.ApplicationId + $Permissions = $TemplatePermissions.Permissions $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() foreach ($AppId in $Permissions.PSObject.Properties.Name) { $AppPermissions = @($Permissions.$AppId.applicationPermissions) @@ -122,7 +120,7 @@ function Add-CIPPApplicationPermission { if (!$svcPrincipalId) { continue } foreach ($SingleResource in $App.ResourceAccess | Where-Object -Property Type -EQ 'Role') { - if ($SingleResource.id -in $CurrentRoles.appRoleId) { continue } + if ($CurrentRoles | Where-Object { $_.appRoleId -eq $SingleResource.id -and $_.resourceId -eq $svcPrincipalId.id }) { continue } [pscustomobject]@{ principalId = $($ourSVCPrincipal.id) resourceId = $($svcPrincipalId.id) @@ -163,6 +161,11 @@ function Add-CIPPApplicationPermission { $Results.add("Failed to grant permissions in bulk: $(Get-NormalizedError -message $_.Exception.Message)") } } + if ($counter -gt 0) { + # App-only scopes changed; a cached client_credentials token still carries the old + # roles, so drop it rather than wait out its TTL. + $null = Clear-CippTokenCache -TenantFilter $TenantFilter + } "Added $counter Application permissions to $($ourSVCPrincipal.displayName)" return $Results } diff --git a/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 index d0c5e5ad27f1c..f4987a8908232 100644 --- a/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPDbItem.ps1 @@ -21,13 +21,19 @@ function Add-CIPPDbItem { [switch]$Count, [switch]$AddCount, - [switch]$Append + [switch]$Append, + + [ValidateRange(0, 60)] + [int]$SkewMarginMinutes = 5 ) begin { $Table = Get-CippTable -tablename 'CippReportingDB' - $Batch = [System.Collections.Generic.List[hashtable]]::new() - $NewRowKeys = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $BatchSize = 100 + $Batch = [System.Collections.Generic.List[hashtable]]::new($BatchSize) + $SeenInBatch = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $RunStartUtc = [DateTimeOffset]::UtcNow.AddMinutes(-$SkewMarginMinutes) + $TotalProcessed = 0 # Cache regex instances so each row pays only the match cost, not regex compilation. # Two passes preserve the original semantics: path/wildcard chars → '_', control chars → stripped. @@ -54,17 +60,18 @@ function Add-CIPPDbItem { if ($null -eq $Item) { continue } $ItemId = $Item.ExternalDirectoryObjectId ?? $Item.id ?? $Item.Identity ?? $Item.skuId ?? $Item.userPrincipalName ?? [guid]::NewGuid().ToString() $RowKey = $RowKeyControlRegex.Replace($RowKeyPathRegex.Replace("$Type-$ItemId", '_'), '') - if ($NewRowKeys.Add($RowKey)) { + if ($SeenInBatch.Add($RowKey)) { $Batch.Add(@{ PartitionKey = $TenantFilter RowKey = $RowKey Data = [string]($Item | ConvertTo-Json -Depth 10 -Compress) Type = $Type }) - if ($Batch.Count -ge 500) { + if ($Batch.Count -ge $BatchSize) { $null = Add-CIPPAzDataTableEntity @Table -Entity $Batch.ToArray() -Force $TotalProcessed += $Batch.Count $Batch.Clear() + $SeenInBatch.Clear() } } } @@ -76,17 +83,22 @@ function Add-CIPPDbItem { $TotalProcessed += $Batch.Count } - # Clean up orphaned rows (entities that no longer exist in the new dataset) - if (-not $Count.IsPresent -and -not $Append.IsPresent) { + # Clean up orphaned rows (entities that no longer exist in the new dataset). + if (-not $Count.IsPresent -and -not $Append.IsPresent -and $TotalProcessed -gt 0) { $Filter = "PartitionKey eq '{0}' and RowKey ge '{1}-' and RowKey lt '{1}0'" -f $TenantFilter, $Type - $Existing = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, ETag, OriginalEntityId + $Existing = Get-CIPPAzDataTableEntity @Table -Filter $Filter -Property PartitionKey, RowKey, ETag, OriginalEntityId, Timestamp if ($Existing) { + $Undated = 0 $Orphans = foreach ($Row in @($Existing)) { if ($Row.RowKey -eq "$Type-Count") { continue } - $ParentKey = $Row.OriginalEntityId ?? $Row.RowKey - if (-not $NewRowKeys.Contains($ParentKey)) { - $Row - } + + $Stamp = $Row.Timestamp -as [datetimeoffset] + if ($null -eq $Stamp) { $Undated++; continue } + + if ($Stamp -lt $RunStartUtc) { $Row } + } + if ($Undated -gt 0) { + Write-LogMessage -API 'CIPPDbItem' -tenant $TenantFilter -sev Warning -message "Skipped $Undated $Type row(s) with no readable Timestamp during orphan cleanup — not deleting without positive evidence" } if ($Orphans) { $null = Remove-AzDataTableEntity @Table -Entity @($Orphans) -Force diff --git a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 index 821a1fe115dfb..8543acab6b84d 100644 --- a/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPDelegatedPermission.ps1 @@ -45,11 +45,9 @@ function Add-CIPPDelegatedPermission { } else { if (!$RequiredResourceAccess -and $TemplateId) { Write-Information "Adding delegated permissions for template $TemplateId" - $TemplateTable = Get-CIPPTable -TableName 'templates' - $Filter = "RowKey eq '$TemplateId' and PartitionKey eq 'AppApprovalTemplate'" - $Template = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter).JSON | ConvertFrom-Json -ErrorAction SilentlyContinue - $ApplicationId = $Template.AppId - $Permissions = $Template.Permissions + $TemplatePermissions = Get-CIPPAppApprovalPermissions -TemplateId $TemplateId + $ApplicationId = $TemplatePermissions.ApplicationId + $Permissions = $TemplatePermissions.Permissions $NoTranslateRequired = $true $RequiredResourceAccess = [System.Collections.Generic.List[object]]::new() foreach ($AppId in $Permissions.PSObject.Properties.Name) { @@ -176,6 +174,9 @@ function Add-CIPPDelegatedPermission { $Results.add("Failed to update permissions for $($svcPrincipalId.displayName): $(Get-NormalizedError -message $_.Exception.Message)") continue } + # Delegated scopes changed; a cached refresh_token-derived access token still + # carries the old scopes, so drop it rather than wait out its TTL. + $null = Clear-CippTokenCache -TenantFilter $TenantFilter # Added permissions $Added = ($Compare | Where-Object { $_.SideIndicator -eq '=>' }).InputObject -join ' ' $Removed = ($Compare | Where-Object { $_.SideIndicator -eq '<=' }).InputObject -join ' ' diff --git a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 index 3a5ea194fe185..e5f94558e34e6 100644 --- a/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPGroupMember.ps1 @@ -34,16 +34,29 @@ function Add-CIPPGroupMember { [string]$APIName = 'Add Group Member' ) try { - if ($Member -like '*#EXT#*') { $Member = [System.Web.HttpUtility]::UrlEncode($Member) } $ODataBindString = 'https://graph.microsoft.com/v1.0/directoryObjects/{0}' - $Requests = foreach ($m in $Member) { + $Requests = @( + foreach ($m in $Member) { + if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + @{ + id = "users-$m" + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } @{ - id = $m - url = "users/$($m)?`$select=id,userPrincipalName" + id = 'group' + url = "groups/$($GroupId)?`$select=id,displayName" method = 'GET' } - } - $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + ) + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + $Users = @($BulkResults | Where-Object { $_.id -like 'users-*' }) + # Group display name for logging; falls back to the id if the lookup failed + # (e.g. the group was addressed by mail rather than GUID). + $GroupName = ($BulkResults | Where-Object { $_.id -eq 'group' }).body.displayName ?? $GroupId + $SuccessfulUsers = [System.Collections.Generic.List[string]]::new() + $FailedUsers = [System.Collections.Generic.List[string]]::new() if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() @@ -58,7 +71,7 @@ function Add-CIPPGroupMember { } }) $ExoLogs.Add(@{ - message = "Added member $($User.body.userPrincipalName) to $($GroupId) group" + message = "Added member $($User.body.userPrincipalName) to group $($GroupName)" target = $User.body.userPrincipalName }) } @@ -76,6 +89,7 @@ function Add-CIPPGroupMember { $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' + $SuccessfulUsers.Add($ExoLog.target) } } } @@ -91,25 +105,36 @@ function Add-CIPPGroupMember { } } $AddResults = New-GraphBulkRequest -tenantid $TenantFilter -Requests @($AddRequests) - $SuccessfulUsers = [system.collections.generic.list[string]]::new() foreach ($Result in $AddResults) { + $UserPrincipalName = ($Users | Where-Object { $_.body.id -eq $Result.id }).body.userPrincipalName 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' + # Select-Object -First 1: Get-NormalizedError can return multiple strings + # when a message matches more than one of its translation patterns. + $ErrorText = Get-NormalizedError -message ($Result.body.error.message ?? "Request failed with status $($Result.status)") | Select-Object -First 1 + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to add member $UserPrincipalName to group $($GroupName): $ErrorText" -Sev 'Error' + $FailedUsers.Add("$UserPrincipalName ($ErrorText)") } else { - $UserPrincipalName = $Users | Where-Object { $_.body.id -eq $Result.id } | Select-Object -ExpandProperty body | Select-Object -ExpandProperty userPrincipalName $SuccessfulUsers.Add($UserPrincipalName) } } } - $UserList = ($SuccessfulUsers -join ', ') - $Results = "Successfully added user $UserList to $($GroupId)." + $Messages = [System.Collections.Generic.List[string]]::new() + if ($SuccessfulUsers.Count -gt 0) { + $Messages.Add("Successfully added user $($SuccessfulUsers -join ', ') to group $($GroupName).") + } + if ($FailedUsers.Count -gt 0) { + $Messages.Add("Failed to add $($FailedUsers -join '; ').") + } + $Results = $Messages -join ' ' + if ($SuccessfulUsers.Count -eq 0 -and $FailedUsers.Count -gt 0) { + throw $Results + } Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev 'Info' return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } - $Results = "Failed to add user $UserList to $($GroupId) - $($ErrorMessage.NormalizedError)" + $Results = "Failed to add user $UserList to group $($GroupName ?? $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 7837363b430dc..2ab37de99fc87 100644 --- a/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPScheduledTask.ps1 @@ -188,8 +188,15 @@ function Add-CIPPScheduledTask { $task.ScheduledTime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds } } - $excludedTenants = if ($task.excludedTenants.value) { - $task.excludedTenants.value -join ',' + # Split exclusions by type (same pattern as Tenant/TenantGroup): plain tenants are + # comma-joined, groups are stored as JSON and expanded at runtime by the orchestrator + $ExcludedEntries = @($task.excludedTenants | Where-Object { $_.value }) + $excludedTenants = @($ExcludedEntries | Where-Object { $_.type -ne 'Group' }).value -join ',' + $ExcludedGroupEntries = @($ExcludedEntries | Where-Object { $_.type -eq 'Group' } | ForEach-Object { + [PSCustomObject]@{ value = $_.value; label = $_.label; type = 'Group' } + }) + $excludedTenantGroups = if ($ExcludedGroupEntries.Count -gt 0) { + ConvertTo-Json -InputObject $ExcludedGroupEntries -Compress -Depth 5 } # Handle tenant filter - support both single tenant and tenant groups @@ -222,6 +229,7 @@ function Add-CIPPScheduledTask { RowKey = [string]$RowKey Tenant = [string]$tenantFilter excludedTenants = [string]$excludedTenants + excludedTenantGroups = [string]$excludedTenantGroups Name = [string]$task.Name Command = [string]$RequestedCommand Parameters = [string]$Parameters @@ -234,6 +242,7 @@ function Add-CIPPScheduledTask { Results = 'Planned' AlertComment = [string]$task.AlertComment CustomSubject = [string]$task.CustomSubject + PsaTicketStrategy = [string]($task.PsaTicketStrategy.value ?? $task.PsaTicketStrategy) } diff --git a/Modules/CIPPCore/Public/Add-CIPPW32ScriptApplication.ps1 b/Modules/CIPPCore/Public/Add-CIPPW32ScriptApplication.ps1 index 77518b24d11d7..62b40dc56f3ba 100644 --- a/Modules/CIPPCore/Public/Add-CIPPW32ScriptApplication.ps1 +++ b/Modules/CIPPCore/Public/Add-CIPPW32ScriptApplication.ps1 @@ -74,7 +74,9 @@ function Add-CIPPW32ScriptApplication { # Build detection rules — detection script takes priority, then file detection, then marker file fallback if ($Properties.detectionScript) { # PowerShell script detection: script should write to STDOUT and exit 0 when detected - $DetectionScriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($Properties.detectionScript)) + # Resolve %tenantid%/%tenantfilter%/etc. for consistency with the install/uninstall scripts below + $ReplacedDetectionScript = Get-CIPPTextReplacement -Text $Properties.detectionScript -TenantFilter $TenantFilter + $DetectionScriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($ReplacedDetectionScript)) $DetectionRules = @( @{ '@odata.type' = '#microsoft.graph.win32LobAppPowerShellScriptDetection' diff --git a/Modules/CIPPCore/Public/Assert-CippVersion.ps1 b/Modules/CIPPCore/Public/Assert-CippVersion.ps1 index ae24850265556..6070b10dce365 100644 --- a/Modules/CIPPCore/Public/Assert-CippVersion.ps1 +++ b/Modules/CIPPCore/Public/Assert-CippVersion.ps1 @@ -22,7 +22,7 @@ function Assert-CippVersion { } $RemoteAPIVersion = (Invoke-CIPPRestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP-API/master/version_latest.txt').trim() - $RemoteCIPPVersion = (Invoke-CIPPRestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/main/public/version.json').version + $RemoteCIPPVersion = (Invoke-CIPPRestMethod -Uri 'https://raw.githubusercontent.com/CyberDrain/CIPP/main/backend/version_latest.txt').trim() [PSCustomObject]@{ LocalCIPPVersion = $CIPPVersion diff --git a/Modules/CIPPCore/Public/AsyncDeployment/Get-CIPPAsyncDeployment.ps1 b/Modules/CIPPCore/Public/AsyncDeployment/Get-CIPPAsyncDeployment.ps1 new file mode 100644 index 0000000000000..d91caacbe8a52 --- /dev/null +++ b/Modules/CIPPCore/Public/AsyncDeployment/Get-CIPPAsyncDeployment.ps1 @@ -0,0 +1,33 @@ +function Get-CIPPAsyncDeployment { + <# + .SYNOPSIS + Get the status rows of an async deployment job + + .DESCRIPTION + Returns all CacheAsyncDeployments rows for a job id with the Steps JSON parsed, in the + shape the frontend jobProgress option of CippApiResults renders (Name, Status, Steps, + Logs). + + .PARAMETER JobId + The deployment job id + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$JobId + ) + + $Table = Get-CIPPTable -TableName 'CacheAsyncDeployments' + $SafeJobId = $JobId -replace "'", "''" + $Rows = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$SafeJobId'" + + @($Rows | ForEach-Object { + [PSCustomObject]@{ + Name = $_.RowKey + Source = $_.Source + Status = $_.Status + Steps = @($_.Steps | ConvertFrom-Json) + Logs = $_.Logs + } + }) +} diff --git a/Modules/CIPPCore/Public/AsyncDeployment/New-CIPPAsyncDeployment.ps1 b/Modules/CIPPCore/Public/AsyncDeployment/New-CIPPAsyncDeployment.ps1 new file mode 100644 index 0000000000000..68eb4eb19bfe1 --- /dev/null +++ b/Modules/CIPPCore/Public/AsyncDeployment/New-CIPPAsyncDeployment.ps1 @@ -0,0 +1,60 @@ +function New-CIPPAsyncDeployment { + <# + .SYNOPSIS + Create a trackable async deployment job + + .DESCRIPTION + Creates one status row per deployment target in the CacheAsyncDeployments table so a + frontend can poll live progress (rendered by CippApiResults' jobProgress option). Each + row starts as queued with every step pending. Update progress with + Set-CIPPAsyncDeploymentStep / Set-CIPPAsyncDeploymentStatus and read it back with + Get-CIPPAsyncDeployment. + + .PARAMETER JobId + The job id shared by all rows. Generated when not provided. + + .PARAMETER Names + One row is created per name — typically the target tenants. + + .PARAMETER StepTitles + Ordered step titles shown to the user (e.g. one per site template) + + .PARAMETER Source + Which feature created this job (e.g. SharePointTemplate) + #> + [CmdletBinding()] + param( + [string]$JobId = (New-Guid).Guid, + + [Parameter(Mandatory = $true)] + [string[]]$Names, + + [Parameter(Mandatory = $true)] + [string[]]$StepTitles, + + [string]$Source = 'CIPP' + ) + + $Table = Get-CIPPTable -TableName 'CacheAsyncDeployments' + $InitialSteps = [string](ConvertTo-Json -Compress -Depth 5 -InputObject @( + $StepTitles | ForEach-Object { + @{ + Title = [string]$_ + Status = 'pending' + Message = 'Waiting for deployment to start' + } + } + )) + + foreach ($Name in $Names) { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = [string]$JobId + RowKey = [string]$Name + Source = [string]$Source + Status = 'queued' + Steps = $InitialSteps + Logs = '' + } -Force + } + return $JobId +} diff --git a/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStatus.ps1 b/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStatus.ps1 new file mode 100644 index 0000000000000..6b5cb30281dd6 --- /dev/null +++ b/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStatus.ps1 @@ -0,0 +1,50 @@ +function Set-CIPPAsyncDeploymentStatus { + <# + .SYNOPSIS + Update the overall status of an async deployment row + + .DESCRIPTION + Sets the overall status (and optionally the logs) of a CacheAsyncDeployments row created + by New-CIPPAsyncDeployment. + + .PARAMETER JobId + The deployment job id + + .PARAMETER Name + The row name (typically the tenant) + + .PARAMETER Status + queued, running, succeeded or failed + + .PARAMETER Logs + Optional log text stored on the row + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$JobId, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [ValidateSet('queued', 'running', 'succeeded', 'failed')] + [string]$Status, + + $Logs + ) + + try { + $Table = Get-CIPPTable -TableName 'CacheAsyncDeployments' + $SafeJobId = $JobId -replace "'", "''" + $SafeName = $Name -replace "'", "''" + $Row = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$SafeJobId' and RowKey eq '$SafeName'" + if (-not $Row) { return } + + $Row.Status = $Status + if ($null -ne $Logs) { $Row.Logs = [string]$Logs } + Add-CIPPAzDataTableEntity @Table -Entity $Row -Force + } catch { + Write-Verbose "Failed to update async deployment status: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStep.ps1 b/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStep.ps1 new file mode 100644 index 0000000000000..84943120f71c4 --- /dev/null +++ b/Modules/CIPPCore/Public/AsyncDeployment/Set-CIPPAsyncDeploymentStep.ps1 @@ -0,0 +1,60 @@ +function Set-CIPPAsyncDeploymentStep { + <# + .SYNOPSIS + Update one step of an async deployment row + + .DESCRIPTION + Sets the status and message of a single step on a CacheAsyncDeployments row created by + New-CIPPAsyncDeployment. Safe to call from queue workers; failures to persist are + swallowed so status reporting never breaks the actual deployment. + + .PARAMETER JobId + The deployment job id + + .PARAMETER Name + The row name (typically the tenant) + + .PARAMETER StepIndex + Zero-based index of the step to update + + .PARAMETER StepStatus + pending, running, succeeded or failed + + .PARAMETER Message + Progress message shown under the step title + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$JobId, + + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [int]$StepIndex, + + [Parameter(Mandatory = $true)] + [ValidateSet('pending', 'running', 'succeeded', 'failed')] + [string]$StepStatus, + + [string]$Message = '' + ) + + try { + $Table = Get-CIPPTable -TableName 'CacheAsyncDeployments' + $SafeJobId = $JobId -replace "'", "''" + $SafeName = $Name -replace "'", "''" + $Row = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$SafeJobId' and RowKey eq '$SafeName'" + if (-not $Row) { return } + + $Steps = @($Row.Steps | ConvertFrom-Json) + if ($StepIndex -lt 0 -or $StepIndex -ge $Steps.Count) { return } + $Steps[$StepIndex].Status = $StepStatus + $Steps[$StepIndex].Message = $Message + $Row.Steps = [string](ConvertTo-Json -InputObject @($Steps) -Compress -Depth 5) + Add-CIPPAzDataTableEntity @Table -Entity $Row -Force + } catch { + Write-Verbose "Failed to update async deployment step: $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Add-CippAuditLogCoverageManualEntry.ps1 b/Modules/CIPPCore/Public/AuditLogs/Add-CippAuditLogCoverageManualEntry.ps1 new file mode 100644 index 0000000000000..cf79d871408c6 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Add-CippAuditLogCoverageManualEntry.ps1 @@ -0,0 +1,74 @@ +function Add-CippAuditLogCoverageManualEntry { + <# + .SYNOPSIS + Bridge a manually-created audit log search into the V2 AuditLogCoverage ledger so the + pipeline downloads and processes it automatically (Option B). + .DESCRIPTION + Manual searches live in the AuditLogSearches table, which the (now V2-only) pipeline no + longer scans. When alert processing is requested for a manual search, this writes a ledger + row keyed 'MANUAL-' in State 'Created' so Start-AuditLogIngestionV2 / + Push-AuditLogDownloadV2 poll, download and process it like any other search - it inherits + retries, the orphan sweep, SearchStatus tracking and the coverage UI. + + The RowKey prefix keeps these out of the window planner: Get-CippAuditLogPlannedWindows only + considers 14-digit RowKeys and Get-CippAuditLogReconciliationWindows only 'RECON-*', so a + 'MANUAL-*' row is never treated as a window, gap or reconciliation block. Type 'Manual' lets + the UI exclude them from the window heatmap/charts. + + Idempotent (UpsertMerge): re-queuing the same search resets State to 'Created' to reprocess. + .PARAMETER TenantFilter + Tenant default domain (becomes the ledger PartitionKey). + .PARAMETER SearchId + The Graph audit-log search id. + .PARAMETER StartTime + Search start (datetime / DateTimeOffset / ISO string). Stored as WindowStart. + .PARAMETER EndTime + Search end. Stored as WindowEnd. + .PARAMETER SearchStatus + Graph search status at creation (e.g. notStarted); refreshed on each poll. + .PARAMETER TenantId + Tenant customerId. Resolved from TenantFilter if not supplied. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)][string]$TenantFilter, + [Parameter(Mandatory = $true)][string]$SearchId, + $StartTime, + $EndTime, + [string]$SearchStatus, + [string]$TenantId + ) + + try { + if (-not $TenantId) { + try { $TenantId = Get-Tenants -TenantFilter $TenantFilter | Select-Object -First 1 -ExpandProperty customerId } catch {} + } + + $Now = (Get-Date).ToUniversalTime() + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + $Entity = @{ + PartitionKey = [string]$TenantFilter + RowKey = 'MANUAL-' + [string]$SearchId + TenantId = [string]$TenantId + Type = 'Manual' + State = 'Created' + SearchId = [string]$SearchId + SearchStatus = [string]$SearchStatus + Attempts = 0 + RetryCount = 0 + ThrottleCount = 0 + CreatedUtc = $Now + LastPolledUtc = $Now + LastError = '' + } + if ($StartTime) { try { $Entity.WindowStart = ([datetimeoffset]$StartTime).UtcDateTime } catch {} } + if ($EndTime) { try { $Entity.WindowEnd = ([datetimeoffset]$EndTime).UtcDateTime } catch {} } + + Add-CIPPAzDataTableEntity @Ledger -Entity $Entity -OperationType UpsertMerge + Write-Information "AuditLogV2: bridged manual search $SearchId for $TenantFilter into coverage ledger (MANUAL-$SearchId)" + } catch { + Write-Information ('Add-CippAuditLogCoverageManualEntry error for {0} / {1}: {2}' -f $TenantFilter, $SearchId, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogNextAttempt.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogNextAttempt.ps1 new file mode 100644 index 0000000000000..d7c6c49840733 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogNextAttempt.ps1 @@ -0,0 +1,27 @@ +function Get-CippAuditLogNextAttempt { + <# + .SYNOPSIS + Compute the next-attempt UTC time for a retried audit-log coverage row (exponential backoff). + .DESCRIPTION + Used by the V2 audit-log pipeline to schedule retries of failed search creations and + downloads in the AuditLogCoverage ledger. Exponential backoff with jitter, capped. Because + the timers run every 15 minutes, small delays effectively mean "retry next run"; larger ones + defer a persistently failing window before it is eventually dead-lettered by the caller. + .PARAMETER Attempts + The attempt count that has just been consumed (1 = first failure). + .OUTPUTS + [datetime] (UTC) when the row becomes eligible to retry. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [int]$Attempts, + [int]$BaseMinutes = 5, + [int]$CapMinutes = 240 + ) + $exp = [Math]::Max(0, $Attempts - 1) + $delay = [Math]::Min($BaseMinutes * [Math]::Pow(2, $exp), $CapMinutes) + $jitter = Get-Random -Minimum 0.8 -Maximum 1.2 + return (Get-Date).ToUniversalTime().AddMinutes($delay * $jitter) +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogPlannedWindows.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogPlannedWindows.ps1 new file mode 100644 index 0000000000000..a33fffb19acdb --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogPlannedWindows.ps1 @@ -0,0 +1,95 @@ +function Get-CippAuditLogPlannedWindows { + <# + .SYNOPSIS + Compute the 35-minute audit-log search windows a tenant is missing (gaps + the newest settled). + .DESCRIPTION + Pure helper for the V2 audit-log pipeline. Windows are 35 minutes long on a 30-minute stride, + so consecutive windows overlap by 5 minutes (covers boundary stragglers; alerting dedups by + record id). Window ENDS sit on the 30-minute grid minus the settle (i.e. :25 / :55), which is + exactly `floor_to_30min(now) - settle`. With the planner timer firing at :00/:15/:30/:45 and a + 5-minute settle, a fresh window becomes creatable exactly at a :00/:30 tick - no tick delay - + and the :15/:45 ticks naturally have no new window (they do retries + download/process). + + Backfill of older gaps is bounded by -HorizonHours and capped at -MaxPerRun per call (oldest + first). A brand-new tenant is seeded with only the newest settled window. + .PARAMETER ExistingRows + The tenant's current AuditLogCoverage rows. Reconciliation rows (RowKey 'RECON-*') are ignored + here; only regular 14-digit window keys are considered. + .PARAMETER Now + Reference time (UTC). Defaults to now. + .OUTPUTS + Array of [pscustomobject]@{ RowKey; WindowStart; WindowEnd } sorted oldest-first. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [object[]]$ExistingRows, + [datetime]$Now = (Get-Date).ToUniversalTime(), + [int]$SettleMinutes = 5, + [int]$WindowMinutes = 35, + [int]$StrideMinutes = 30, + [int]$HorizonHours = 24, + [int]$MaxPerRun = 6 + ) + + $Now = $Now.ToUniversalTime() + + # Newest window end: floor to the 30-min grid, minus the settle (lands on :25 / :55). + $FloorMinute = $Now.Minute - ($Now.Minute % $StrideMinutes) + $Floor = [datetime]::new($Now.Year, $Now.Month, $Now.Day, $Now.Hour, $FloorMinute, 0, [System.DateTimeKind]::Utc) + $NewestEnd = $Floor.AddMinutes(-$SettleMinutes) + + $HorizonStart = $Now.AddHours(-$HorizonHours) + + # Existing regular window keys (ignore reconciliation rows). + $ExistingKeys = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $ExistingStarts = [System.Collections.Generic.List[datetime]]::new() + foreach ($Row in $ExistingRows) { + if ($Row.RowKey -notmatch '^\d{14}$') { continue } + [void]$ExistingKeys.Add([string]$Row.RowKey) + if ($null -ne $Row.WindowStart) { + try { $ExistingStarts.Add(([datetimeoffset]$Row.WindowStart).UtcDateTime) } catch {} + } + } + + # Brand-new tenant: seed only the newest settled window. + if ($ExistingStarts.Count -eq 0) { + $Start = $NewestEnd.AddMinutes(-$WindowMinutes) + if ($Start -lt $HorizonStart) { return @() } + return , ([pscustomobject]@{ + RowKey = $Start.ToString('yyyyMMddHHmmss') + WindowStart = $Start + WindowEnd = $NewestEnd + }) + } + + # Established tenant: backfill missing windows from the lower bound up to NewestEnd (oldest first). + $EarliestExisting = ($ExistingStarts | Measure-Object -Minimum).Minimum + $LowerEnd = if ($EarliestExisting -gt $HorizonStart) { $EarliestExisting.AddMinutes($WindowMinutes) } else { $HorizonStart.AddMinutes($WindowMinutes) } + + $Owed = [System.Collections.Generic.List[object]]::new() + $End = $NewestEnd + while ($End -ge $LowerEnd) { + $Start = $End.AddMinutes(-$WindowMinutes) + $Key = $Start.ToString('yyyyMMddHHmmss') + if (-not $ExistingKeys.Contains($Key)) { + $Owed.Add([pscustomobject]@{ RowKey = $Key; WindowStart = $Start; WindowEnd = $End }) + } + $End = $End.AddMinutes(-$StrideMinutes) + } + + # $Owed is newest-first from the loop; reorder to oldest-first ([0]=oldest, [-1]=newest). + $Owed.Reverse() + if ($Owed.Count -le $MaxPerRun) { + return @($Owed) + } + + # Backlog exceeds the per-run cap: always include the NEWEST window so the live period can + # be created promptly (current-first, see Push-AuditLogSearchCreationV2), plus the oldest + # (MaxPerRun-1) so historical gaps still drain - oldest first - before they age out of the + # horizon. Without seeding the newest here it would never be Planned during a backlog. + $Newest = $Owed[$Owed.Count - 1] + $Backfill = @($Owed[0..($MaxPerRun - 2)]) + return @($Backfill + $Newest) +} diff --git a/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogReconciliationWindows.ps1 b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogReconciliationWindows.ps1 new file mode 100644 index 0000000000000..6ffa7f1c4c026 --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/Get-CippAuditLogReconciliationWindows.ps1 @@ -0,0 +1,68 @@ +function Get-CippAuditLogReconciliationWindows { + <# + .SYNOPSIS + Compute the 12-hour reconciliation audit-log windows a tenant is missing. + .DESCRIPTION + The fast 35-minute path searches each period soon after it closes, so late-landing / backfilled + audit events (Microsoft can publish them hours later) can be missed. This helper produces wide + catch-all windows aligned to 00:00-12:00 and 12:00-00:00 UTC, each created 3 hours after the + block closes (a generous settle so backfilled data has landed). They flow through the normal + download/process path; alerting dedups by record id, so overlap with the fast path is harmless. + .PARAMETER ExistingRows + The tenant's current AuditLogCoverage rows. Only reconciliation rows (RowKey 'RECON-*') are + considered when finding gaps. + .PARAMETER Now + Reference time (UTC). Defaults to now. + .OUTPUTS + Array of [pscustomobject]@{ RowKey; WindowStart; WindowEnd } sorted oldest-first. RowKey is + 'RECON-'. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [object[]]$ExistingRows, + [datetime]$Now = (Get-Date).ToUniversalTime(), + [int]$SettleHours = 3, + [int]$HorizonHours = 24, + [int]$MaxPerRun = 6 + ) + + $Now = $Now.ToUniversalTime() + + # Newest 12h block end (00:00 / 12:00 UTC) whose close is at least SettleHours in the past. + $T = $Now.AddHours(-$SettleHours) + $BoundaryHour = if ($T.Hour -lt 12) { 0 } else { 12 } + $NewestEnd = [datetime]::new($T.Year, $T.Month, $T.Day, $BoundaryHour, 0, 0, [System.DateTimeKind]::Utc) + $HorizonStart = $Now.AddHours(-$HorizonHours) + + $ExistingKeys = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Row in $ExistingRows) { + if ($Row.RowKey -like 'RECON-*') { [void]$ExistingKeys.Add([string]$Row.RowKey) } + } + + # No reconciliation history: seed only the newest settled block (avoid a first-run backfill spike; + # the fast 35-min path already covers recent history). Established tenants backfill gaps below. + if ($ExistingKeys.Count -eq 0) { + $Start = $NewestEnd.AddHours(-12) + if ($Start -lt $HorizonStart) { return @() } + return , ([pscustomobject]@{ RowKey = 'RECON-' + $Start.ToString('yyyyMMddHHmmss'); WindowStart = $Start; WindowEnd = $NewestEnd }) + } + + $Owed = [System.Collections.Generic.List[object]]::new() + $End = $NewestEnd + while ($End -ge $HorizonStart) { + $Start = $End.AddHours(-12) + $Key = 'RECON-' + $Start.ToString('yyyyMMddHHmmss') + if (-not $ExistingKeys.Contains($Key)) { + $Owed.Add([pscustomobject]@{ RowKey = $Key; WindowStart = $Start; WindowEnd = $End }) + } + $End = $End.AddHours(-12) + } + + $Owed.Reverse() + if ($Owed.Count -gt $MaxPerRun) { + return @($Owed[0..($MaxPerRun - 1)]) + } + return @($Owed) +} diff --git a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 index befd7cd164966..94e2cd35cfbf9 100644 --- a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 +++ b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearch.ps1 @@ -269,6 +269,13 @@ function New-CippAuditLogSearch { } $Table = Get-CIPPTable -TableName 'AuditLogSearches' Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + + # When alert processing is requested, bridge the search into the V2 AuditLogCoverage + # ledger so the pipeline downloads + processes it automatically (the V2 pipeline does + # not scan the AuditLogSearches table). + if ($ProcessLogs.IsPresent) { + Add-CippAuditLogCoverageManualEntry -TenantFilter $TenantFilter -SearchId $Query.id -StartTime $StartTime -EndTime $EndTime -SearchStatus $Query.status + } } return $Query diff --git a/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearchV2.ps1 b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearchV2.ps1 new file mode 100644 index 0000000000000..4d72cac97695f --- /dev/null +++ b/Modules/CIPPCore/Public/AuditLogs/New-CippAuditLogSearchV2.ps1 @@ -0,0 +1,95 @@ +function New-CippAuditLogSearchV2 { + <# + .SYNOPSIS + Create a Microsoft Graph audit-log search for the V2 pipeline and return a classified result. + .DESCRIPTION + Thin wrapper over New-GraphPOSTRequest (which now honours 429 backoff). Unlike the V1 + New-CippAuditLogSearch, this writes to NO table - the AuditLogCoverage ledger is updated by + the caller. Failures are classified so the caller can decide whether to retry (transient) or + stop (auditing disabled). + .PARAMETER TenantFilter + Tenant default domain or customerId. + .PARAMETER StartTime + Window start (inclusive). + .PARAMETER EndTime + Window end (exclusive). + .PARAMETER RecordTypeFilters + Record types to capture. Defaults to the four the V1 pipeline used. + .OUTPUTS + [pscustomobject]@{ Id; Status; Outcome; Message } Outcome in 'Created','AuditingDisabled','AccessDenied','Transient'. + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)][string]$TenantFilter, + [Parameter(Mandatory = $true)][datetime]$StartTime, + [Parameter(Mandatory = $true)][datetime]$EndTime, + [string[]]$RecordTypeFilters = @('exchangeAdmin', 'azureActiveDirectory', 'azureActiveDirectoryAccountLogon', 'azureActiveDirectoryStsLogon'), + [int]$MaxAttempts = 3, + [string]$DisplayName = ('CIPP Audit Search V2 - ' + (Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) + ) + + $Body = @{ + displayName = $DisplayName + filterStartDateTime = $StartTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') + filterEndDateTime = $EndTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss') + recordTypeFilters = @($RecordTypeFilters) + } | ConvertTo-Json -Compress + + if (-not $PSCmdlet.ShouldProcess($TenantFilter, 'Create audit log search')) { + return [pscustomobject]@{ Id = $null; Status = 'WhatIf'; Outcome = 'Transient'; Message = 'WhatIf'; Throttled = $false } + } + + for ($Attempt = 1; $Attempt -le $MaxAttempts; $Attempt++) { + try { + # maxRetries 1 = no retry inside the Graph helper; this function owns retry/backoff. + $Query = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/security/auditLog/queries' -body $Body -tenantid $TenantFilter -AsApp $true -maxRetries 1 + return [pscustomobject]@{ Id = $Query.id; Status = $Query.status; Outcome = 'Created'; Message = $null; Throttled = $false } + } catch { + $Raw = $_.Exception.Data['RawErrorBody'] + if (-not $Raw) { $Raw = $_.ErrorDetails.Message } + if (-not $Raw) { $Raw = $_.Exception.Message } + + # Token-acquisition failures that mean we cannot access the tenant at all (e.g. + # AADSTS7000229 = CIPP's service principal is missing from the tenant). These arrive as a + # plain "Could not get token: ..." string from Get-GraphToken, not JSON, and won't clear + # on retry - the caller disables the tenant for 24h, same as AuditingDisabled. + if ([string]$Raw -match 'AADSTS7000229') { + return [pscustomobject]@{ Id = $null; Status = 'MissingServicePrincipal'; Outcome = 'AccessDenied'; Message = [string]$Raw; Throttled = $false } + } + + $Parsed = $null + if ($Raw) { try { $Parsed = ([string]$Raw) | ConvertFrom-Json -ErrorAction Stop } catch {} } + + # AuditingDisabledTenant can be top-level Status or nested as JSON inside error.message. + $AuditStatus = $Parsed.Status + if (-not $AuditStatus) { + $Inner = $Parsed.error.message ?? $Parsed.message + if ($Inner -is [string]) { try { $AuditStatus = ($Inner | ConvertFrom-Json -ErrorAction Stop).Status } catch {} } + } + if ($AuditStatus -eq 'AuditingDisabledTenant') { + return [pscustomobject]@{ Id = $null; Status = 'AuditingDisabledTenant'; Outcome = 'AuditingDisabled'; Message = 'Unified auditing is disabled for this tenant.'; Throttled = $false } + } + + $Code = $Parsed.error.code ?? $Parsed.code + $Msg = $Parsed.error.message ?? $Parsed.message ?? $_.Exception.Message + $StatusCode = $null + try { $StatusCode = [int]$_.Exception.Response.StatusCode } catch {} + + # 429 = the tenant's ~10 concurrent-search cap is full. Retrying in-process won't clear it, + # so return immediately and let the planner defer this + remaining windows to next cycle. + if (($Code -eq 'TooManyRequests') -or ($StatusCode -eq 429)) { + return [pscustomobject]@{ Id = $null; Status = ([string]($Code ?? 'TooManyRequests')); Outcome = 'Transient'; Message = [string]$Msg; Throttled = $true } + } + + # Other transient (UnknownError, 5xx, gateway, timeout): usually a momentary EXO-backend + # blip that clears on a quick re-submit. Retry in-process with >1s jitter before giving up. + if ($Attempt -lt $MaxAttempts) { + Start-Sleep -Seconds (Get-Random -Minimum 1.5 -Maximum 4.0) + continue + } + return [pscustomobject]@{ Id = $null; Status = ([string]($Code ?? 'Error')); Outcome = 'Transient'; Message = [string]$Msg; Throttled = $false } + } + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Clear-CippAccessScopeCache.ps1 b/Modules/CIPPCore/Public/Authentication/Clear-CippAccessScopeCache.ps1 new file mode 100644 index 0000000000000..52f067723a74a --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Clear-CippAccessScopeCache.ps1 @@ -0,0 +1,49 @@ +function Clear-CippAccessScopeCache { + <# + .SYNOPSIS + Invalidate cached access scope rules across every worker. + + .DESCRIPTION + Bumps the shared version stamp that Get-CippAccessScopeRule keys on, so every worker misses + and recomputes from source, and drops this worker's caches immediately. + + Propagation is not instant on the other workers. They each memo the stamp for a short + window (see Get-CippAccessScopeVersion), so a change lands there within that window rather + than on the very next request. Verified behaviour, not an assumption. + + Call this from anything that changes what a role is allowed to see: custom role + definitions, access role group mappings, and tenant group membership. Missing a call site + does not cause indefinite staleness - the rule cache TTL still expires entries - but it + does mean an operator can save a role change and not see it take effect straight away. + + A failure is logged rather than thrown. Failing the role save the operator just made + because a cache table hiccuped would be the worse outcome, and the TTL bounds the damage. + + .EXAMPLE + Clear-CippAccessScopeCache + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + + if (-not $PSCmdlet.ShouldProcess('access scope cache', 'Invalidate')) { + return + } + + $script:CippAccessScopeRuleCache = @{} + $script:CippAccessScopeVersionMemo = $null + + try { + $Table = Get-CIPPTable -tablename 'CacheVersions' + $Entity = @{ + PartitionKey = 'CacheVersion' + RowKey = 'AccessScope' + Version = [string][guid]::NewGuid() + } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + } catch { + Write-LogMessage -API 'AccessScopeCache' -message "Failed to invalidate the access scope cache. Other workers will keep their current rules until the cache expires. $($_.Exception.Message)" -Sev 'Error' + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Expand-CippScopeTenantItem.ps1 b/Modules/CIPPCore/Public/Authentication/Expand-CippScopeTenantItem.ps1 new file mode 100644 index 0000000000000..f20c9226937cd --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Expand-CippScopeTenantItem.ps1 @@ -0,0 +1,46 @@ +function Expand-CippScopeTenantItem { + <# + .SYNOPSIS + Expand a role's tenant entries, resolving tenant groups to their member tenant ids. + + .DESCRIPTION + Entries stored against a role are either literal tenant ids, the 'AllTenants' sentinel, or + a tenant group reference that has to be resolved to the ids currently in that group. + + A group that cannot be expanded warns and contributes nothing, which is deliberate: the + alternative - treating an unresolvable group as 'everything' - would widen access on the + back of a lookup failure. + + Used by Get-CippAccessScopeRule for both the allowed and blocked lists. + + .PARAMETER Items + The stored AllowedTenants or BlockedTenants entries. + + .PARAMETER Kind + 'allowed' or 'blocked', used only to make the warning readable. + + .EXAMPLE + Expand-CippScopeTenantItem -Items $Permission.BlockedTenants -Kind 'blocked' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $Items, + [string]$Kind + ) + + foreach ($Item in $Items) { + if ($Item -is [PSCustomObject] -and $Item.type -eq 'Group') { + try { + $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($Item) + $GroupMembers | ForEach-Object { $_.addedFields.customerId } + } catch { + Write-Warning "Failed to expand $Kind tenant group '$($Item.label)': $($_.Exception.Message)" + } + } else { + $Item + } + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 index 4b89c560b7594..37f446347aaa1 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CIPPRolePermissions.ps1 @@ -17,13 +17,31 @@ function Get-CIPPRolePermissions { $Filter = "RowKey eq '$RoleName'" $Role = Get-CIPPAzDataTableEntity @Table -Filter $Filter if ($Role) { - $Permissions = $Role.Permissions | ConvertFrom-Json + $Permissions = ($Role.Permissions | ConvertFrom-Json).PSObject.Properties.Value + # Stored permissions can reference endpoints removed or renamed in later CIPP + # versions; drop those so stale entries don't inflate the role's permission set + # (e.g. failing the Test-CippApiClientRoleGrant subset check). Skip filtering if + # the valid-permission universe can't be resolved, rather than emptying the role. + try { + $ValidPermissions = Get-CippHttpPermissions + if (@($ValidPermissions).Count -gt 0) { + $ValidBases = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($ValidPermission in $ValidPermissions) { + $null = $ValidBases.Add(($ValidPermission -replace '\.(ReadWrite|Read)$', '')) + } + $Permissions = @($Permissions | Where-Object { + $ValidBases.Contains(($_ -replace '\.(ReadWrite|Read)$', '')) + }) + } + } catch { + Write-Warning "Unable to resolve valid permissions to filter role '$RoleName': $($_.Exception.Message)" + } $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 + Permissions = @($Permissions) AllowedTenants = @($AllowedTenants) BlockedTenants = @($BlockedTenants) BlockedEndpoints = @($BlockedEndpoints) diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeRule.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeRule.ps1 new file mode 100644 index 0000000000000..eac24c107d4bd --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeRule.ps1 @@ -0,0 +1,99 @@ +function Get-CippAccessScopeRule { + <# + .SYNOPSIS + The tenant and group scope rule a custom role expresses. + + .DESCRIPTION + Returns the rule itself - allow everything, or an explicit allow list minus a block list - + rather than the set of tenant ids it currently resolves to. + + That distinction is the whole point of the cache. Caching the resolved id list would bake + in a snapshot of the tenant table, so a tenant onboarded afterwards would silently stay + invisible to the role until the entry expired: the same silent-omission failure that made + the request scope leak so hard to spot. A rule depends only on the role definition and + tenant group membership, both covered by the version stamp, so it stays correct however + many tenants come and go. Callers expand it against the live tenant list at the point of + use, which is an in-memory set operation over data they already hold. + + Cached per worker, keyed by the shared version stamp so a role change invalidates every + worker at once, with a TTL as a backstop in case an invalidation call site is missed. + + .PARAMETER Role + Name of the custom role. + + .EXAMPLE + $Rule = Get-CippAccessScopeRule -Role 'helpdesk' + if (-not $Rule.Unrestricted) { $Rule.BlockedTenants } + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Role + ) + + $TtlMinutes = 5 + $Now = (Get-Date).ToUniversalTime() + $Version = Get-CippAccessScopeVersion + $CacheKey = '{0}|{1}' -f $Version, $Role + + if (-not $script:CippAccessScopeRuleCache) { + $script:CippAccessScopeRuleCache = @{} + } + + $Cached = $script:CippAccessScopeRuleCache[$CacheKey] + if ($Cached -and $Cached.Expires -gt $Now) { + return $Cached.Rule + } + + # Throws when the role no longer exists, which callers already handle as 'this role + # contributes no scope' + $Permission = Get-CIPPRolePermissions -Role $Role + + $Unrestricted = ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or + $Permission.AllowedTenants -contains 'AllTenants') -and + ($Permission.BlockedTenants | Measure-Object).Count -eq 0) + + $AllowAllTenants = $false + $AllowedTenants = @() + $BlockedTenants = @() + $AllowedGroups = @() + + if (-not $Unrestricted) { + $Expanded = @(Expand-CippScopeTenantItem -Items $Permission.AllowedTenants -Kind 'allowed') + + # 'AllTenants' alongside a block list means 'everything except', and the caller substitutes + # the live tenant list. Held as a flag rather than a resolved list precisely so that + # substitution happens at read time. + $AllowAllTenants = $Expanded -contains 'AllTenants' + $AllowedTenants = @($Expanded | Where-Object { $_ -ne 'AllTenants' }) + $BlockedTenants = @(Expand-CippScopeTenantItem -Items $Permission.BlockedTenants -Kind 'blocked') + $AllowedGroups = @( + foreach ($Item in $Permission.AllowedTenants) { + if ($Item -is [PSCustomObject] -and $Item.type -eq 'Group') { $Item.value } + } + ) + } + + $Rule = [PSCustomObject]@{ + Role = $Role + Unrestricted = $Unrestricted + AllowAllTenants = $AllowAllTenants + AllowedTenants = $AllowedTenants + BlockedTenants = $BlockedTenants + AllowedGroups = $AllowedGroups + } + + # Entries keyed on a superseded version are dead weight; drop the lot rather than track ages + if ($script:CippAccessScopeRuleCache.Count -gt 200) { + $script:CippAccessScopeRuleCache = @{} + } + $script:CippAccessScopeRuleCache[$CacheKey] = @{ + Rule = $Rule + Expires = $Now.AddMinutes($TtlMinutes) + } + + return $Rule +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeVersion.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeVersion.ps1 new file mode 100644 index 0000000000000..d7fd8e6a151c4 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAccessScopeVersion.ps1 @@ -0,0 +1,57 @@ +function Get-CippAccessScopeVersion { + <# + .SYNOPSIS + Current version stamp for cached access scope rules. + + .DESCRIPTION + Access scope rules are derived from CustomRoles, AccessRoleGroups and tenant group + membership, and are cached per worker. Those inputs are shared, and one worker has no way + to reach into another's memory, so invalidation goes through this stamp instead: every + worker keys its cache on the current value, and Clear-CippAccessScopeCache bumps it + whenever the underlying definitions change. + + The stamp is itself memoised for a short window so a warm request costs no storage read at + all. That window is the upper bound on how long a role change takes to reach a worker that + is already warm. + + A read failure returns a fresh value rather than the last known one. That forces a miss and + a recompute from source, so a storage blip costs latency instead of serving a scope that + may no longer be correct. + + .EXAMPLE + Get-CippAccessScopeVersion + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param() + + # How long a worker trusts its copy of the stamp, and therefore the worst case delay before a + # role change reaches a worker that is already warm. The worker that made the change clears + # its own memo, so this only applies to the others. Kept short deliberately: the cost is one + # small table read per worker per window, which is nothing next to an operator changing a role + # and being unable to tell whether it took effect. + $MemoSeconds = 10 + $Now = (Get-Date).ToUniversalTime() + + if ($script:CippAccessScopeVersionMemo -and $script:CippAccessScopeVersionMemo.Expires -gt $Now) { + return $script:CippAccessScopeVersionMemo.Version + } + + try { + $Table = Get-CIPPTable -tablename 'CacheVersions' + $Entity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'CacheVersion' and RowKey eq 'AccessScope'" + $Version = if ($Entity.Version) { [string]$Entity.Version } else { 'initial' } + } catch { + Write-Warning "Could not read the access scope cache version, forcing a recompute. $($_.Exception.Message)" + return [string][guid]::NewGuid() + } + + $script:CippAccessScopeVersionMemo = @{ + Version = $Version + Expires = $Now.AddSeconds($MemoSeconds) + } + + return $Version +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 index 0fd04bd57e070..7d7a245274222 100644 --- a/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Get-CippAllowedPermissions.ps1 @@ -22,30 +22,10 @@ function Get-CippAllowedPermissions { ) # Get all available permissions and base roles configuration - - $Version = if ($env:CIPPNG -eq 'true') { - $env:APP_VERSION - } else { - (Get-Content -Path (Join-Path $env:CIPPRootPath 'version_latest.txt')).Trim() - } $BaseRoles = Get-Content -Path (Join-Path $env:CIPPRootPath 'Config\cipp-roles.json') | ConvertFrom-Json $DefaultRoles = @('superadmin', 'admin', 'editor', 'readonly', 'anonymous', 'authenticated') - $AllPermissionCacheTable = Get-CIPPTable -tablename 'cachehttppermissions' - $AllPermissionsRow = Get-CIPPAzDataTableEntity @AllPermissionCacheTable -Filter "PartitionKey eq 'HttpFunctions' and RowKey eq 'HttpFunctions' and Version eq '$($Version)'" - - if (-not $AllPermissionsRow.Permissions) { - $AllPermissions = Get-CIPPHttpFunctions -ByRole | Select-Object -ExpandProperty Permission - $Entity = @{ - PartitionKey = 'HttpFunctions' - RowKey = 'HttpFunctions' - Version = [string]$Version - Permissions = [string]($AllPermissions | ConvertTo-Json -Compress) - } - Add-CIPPAzDataTableEntity @AllPermissionCacheTable -Entity $Entity -Force - } else { - $AllPermissions = $AllPermissionsRow.Permissions | ConvertFrom-Json - } + $AllPermissions = Get-CippHttpPermissions $AllowedPermissions = [System.Collections.Generic.List[string]]::new() diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippHttpPermissions.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippHttpPermissions.ps1 new file mode 100644 index 0000000000000..599ce78189de4 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippHttpPermissions.ps1 @@ -0,0 +1,50 @@ +function Get-CippHttpPermissions { + <# + .SYNOPSIS + Returns the set of API permissions that exist on the current HTTP functions. + + .DESCRIPTION + Resolves the full permission universe for the running CIPP version from the + cachehttppermissions table, computing and caching it via Get-CIPPHttpFunctions + on a cache miss. Results are memoized in-process per version so hot paths + (Test-CIPPAccess, Get-CippAllowedPermissions) avoid repeated table reads. + + .OUTPUTS + [string[]] of valid permission names, e.g. 'Exchange.Mailbox.ReadWrite'. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param() + + $Version = if ($env:CIPPNG -eq 'true') { + $env:APP_VERSION + } else { + (Get-Content -Path (Join-Path $env:CIPPRootPath 'version_latest.txt')).Trim() + } + + if ($script:CippHttpPermissions -and $script:CippHttpPermissionsVersion -eq $Version) { + return $script:CippHttpPermissions + } + + $AllPermissionCacheTable = Get-CIPPTable -tablename 'cachehttppermissions' + $AllPermissionsRow = Get-CIPPAzDataTableEntity @AllPermissionCacheTable -Filter "PartitionKey eq 'HttpFunctions' and RowKey eq 'HttpFunctions' and Version eq '$($Version)'" + + if (-not $AllPermissionsRow.Permissions) { + $AllPermissions = Get-CIPPHttpFunctions -ByRole | Select-Object -ExpandProperty Permission + $Entity = @{ + PartitionKey = 'HttpFunctions' + RowKey = 'HttpFunctions' + Version = [string]$Version + Permissions = [string]($AllPermissions | ConvertTo-Json -Compress) + } + Add-CIPPAzDataTableEntity @AllPermissionCacheTable -Entity $Entity -Force + } else { + $AllPermissions = $AllPermissionsRow.Permissions | ConvertFrom-Json + } + + $script:CippHttpPermissions = @($AllPermissions) + $script:CippHttpPermissionsVersion = $Version + return $script:CippHttpPermissions +} diff --git a/Modules/CIPPCore/Public/Authentication/Get-CippRequestContext.ps1 b/Modules/CIPPCore/Public/Authentication/Get-CippRequestContext.ps1 new file mode 100644 index 0000000000000..a9df439f94fa2 --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Get-CippRequestContext.ps1 @@ -0,0 +1,44 @@ +function Get-CippRequestContext { + <# + .SYNOPSIS + Return the per-invocation access context for the current request. + + .DESCRIPTION + Accessor for the context slots managed by Initialize-CippRequestContext. + + These slots are held in CIPPCore module scope. `$script:` is per-module, so a function in + another module - CIPPHTTP, for example - that reads $script:CippAllowedTenantsStorage + directly gets that module's own, permanently empty, variable rather than this one. + Diagnostics outside CIPPCore must go through this function or they will report that no + scoping is applied no matter what is actually in force. + + .EXAMPLE + $Context = Get-CippRequestContext + $Context.AllowedTenants + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param() + + $InvocationId = if ($script:CippInvocationIdStorage) { $script:CippInvocationIdStorage.Value } else { $null } + $AllowedTenants = if ($script:CippAllowedTenantsStorage) { $script:CippAllowedTenantsStorage.Value } else { $null } + $AllowedGroups = if ($script:CippAllowedGroupsStorage) { $script:CippAllowedGroupsStorage.Value } else { $null } + + # Count only. The keys are user principal names and the diagnostic endpoint that surfaces + # this is gated on CIPP.Core.Read, which is not a high enough bar to hand out a list of who + # else has been using this worker. + $CachedUserRoleCount = if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { + $script:CippUserRolesStorage.Value.Count + } else { + 0 + } + + return [PSCustomObject]@{ + InvocationId = $InvocationId + AllowedTenants = $AllowedTenants + AllowedGroups = $AllowedGroups + CachedUserRoleCount = $CachedUserRoleCount + } +} diff --git a/Modules/CIPPCore/Public/Authentication/Initialize-CIPPAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Initialize-CIPPAuth.ps1 index 127af216dcc51..3decd89e4d7eb 100644 --- a/Modules/CIPPCore/Public/Authentication/Initialize-CIPPAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Initialize-CIPPAuth.ps1 @@ -23,7 +23,7 @@ function Initialize-CIPPAuth { # -- Entry logging -- $EasyAuthEnabled = [Craft.Services.AppLifecycleBridge]::IsEasyAuthConfigured() $IsDevStorage = ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true') -or ($env:NonLocalHostAzurite -eq 'true') - $KVName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $KVName = Get-CippKeyVaultName Write-Information "[Auth-Init] Starting — EasyAuth=$EasyAuthEnabled, DevStorage=$IsDevStorage, KVName='$KVName', DeploymentId='$env:WEBSITE_DEPLOYMENT_ID'" @@ -33,11 +33,19 @@ function Initialize-CIPPAuth { Write-Information "[Auth-Init] Credential source available (KV=$($AuthState.HasKeyVault), DevStorage=$IsDevStorage) — attempting SAM load" try { $Auth = Get-CIPPAuthentication - if ($Auth -and $env:ApplicationID -and $env:TenantID) { + # Fresh deployments carry the deployment template's placeholder secrets + # until the setup wizard writes real ones — treat those as "no + # credentials" or the EasyAuth issuer reconciliation below rewrites a + # correctly configured issuer to .../tenantId/v2.0 and breaks sign-in. + $PlaceholderPattern = '^(LongApplicationId|AppSecret|RefreshToken|tenantId)$' + $HasPlaceholders = ($env:ApplicationID -match $PlaceholderPattern) -or ($env:TenantID -match $PlaceholderPattern) + if ($Auth -and $env:ApplicationID -and $env:TenantID -and -not $HasPlaceholders) { $AuthState.HasSAMCredentials = $true $AuthState.NeedsSetup = $false $AuthState.IsConfigured = $true Write-Information "[Auth-Init] SAM credentials loaded (AppID: $($env:ApplicationID), TenantID: $($env:TenantID))" + } elseif ($HasPlaceholders) { + Write-Information '[Auth-Init] SAM secrets still hold deployment placeholder values — setup wizard has not been completed yet, treating as unconfigured' } else { Write-Information '[Auth-Init] SAM credential load returned but env vars not populated — credentials not available yet (expected on fresh deployment)' } @@ -73,6 +81,18 @@ function Initialize-CIPPAuth { if ($EasyAuthEnabled) { Write-Information '[Auth-Init] EasyAuth is already configured' + # A pending SSO reset flag with EasyAuth back up means setup completed (the + # Craft setup wizard configures EasyAuth itself and doesn't know about this + # flag) - clean it up so a future EasyAuth outage doesn't re-trigger setup. + if ($env:CIPP_SSO_RESET -eq 'true') { + Write-Information '[Auth-Init] EasyAuth is active but CIPP_SSO_RESET still set — reset completed, cleaning up' + try { + $null = Remove-CIPPMigrationAppSetting -SettingName 'CIPP_SSO_RESET' + } catch { + Write-Information "[Auth-Init] CIPP_SSO_RESET cleanup failed (non-fatal): $_" + } + } + # 3a. If CIPP_SSO_MIGRATION_APPID is set, check if migration is complete if ($env:CIPP_SSO_MIGRATION_APPID) { Write-Information '[Auth-Init] EasyAuth is active but CIPP_SSO_MIGRATION_APPID still set — checking if migration is complete...' @@ -223,6 +243,17 @@ function Initialize-CIPPAuth { # EasyAuth NOT configured but we DO have SAM credentials — try to auto-configure Write-Information '[Auth-Init] EasyAuth not configured but SAM credentials available — attempting auto-configuration' + # SSO reset requested from the management portal (it has no access to this + # instance's Key Vault, so it can't clear the stored credentials itself). + # Skip every auto-configure path and serve the setup wizard; completing the + # wizard rewrites the stored credentials and removes this flag. + if ($env:CIPP_SSO_RESET -eq 'true') { + Write-Information '[Auth-Init] CIPP_SSO_RESET is set — skipping SSO auto-configuration and requesting setup wizard' + [Craft.Services.AppLifecycleBridge]::RequestSetupMode('SSO reset requested — setup wizard needed to reconfigure sign-in') + $AuthState.NeedsSetup = $true + return $AuthState + } + if ($env:CIPP_SSO_MIGRATION_APPID) { Write-Information "[Auth-Init] CIPP_SSO_MIGRATION_APPID is set ($($env:CIPP_SSO_MIGRATION_APPID)) — configuring implicit auth EasyAuth" try { diff --git a/Modules/CIPPCore/Public/Authentication/Initialize-CippRequestContext.ps1 b/Modules/CIPPCore/Public/Authentication/Initialize-CippRequestContext.ps1 new file mode 100644 index 0000000000000..77b66f917e39a --- /dev/null +++ b/Modules/CIPPCore/Public/Authentication/Initialize-CippRequestContext.ps1 @@ -0,0 +1,50 @@ +function Initialize-CippRequestContext { + <# + .SYNOPSIS + Reset the per-invocation context slots at the start of a request. + + .DESCRIPTION + The tenant scope, group scope, invocation id and user role cache live in module scoped + AsyncLocal slots so deep helpers (Get-Tenants, Get-TenantGroups) can read the current + request's access scope without every call site threading it through as a parameter. + + AsyncLocal does not give per-request isolation in this host. Both Craft and the Azure + Functions PowerShell worker reuse runspaces and execution contexts between invocations, + so a value written by one request is still visible to the next request that lands on the + same worker. Whatever is left behind is inherited, and a request whose access is + unrestricted has no reason to overwrite it - which is how a restricted user's tenant + scope ends up silently filtering an unrestricted user's results. + + Every slot is therefore reset here, unconditionally, before any of them is read. + + .EXAMPLE + Initialize-CippRequestContext + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param() + + if (-not $script:CippInvocationIdStorage) { + $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() + } + if (-not $script:CippAllowedTenantsStorage) { + $script:CippAllowedTenantsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippAllowedGroupsStorage) { + $script:CippAllowedGroupsStorage = [System.Threading.AsyncLocal[object]]::new() + } + if (-not $script:CippUserRolesStorage) { + $script:CippUserRolesStorage = [System.Threading.AsyncLocal[hashtable]]::new() + } + + # Clear anything inherited from an earlier invocation on this worker. Consumers treat a null + # scope as 'unrestricted', so a stale value can only ever hide data that the caller is + # entitled to see - it never grants access. That makes the symptom silent rather than loud, + # which is exactly why it has to be cleared here rather than relied on to be overwritten. + $script:CippInvocationIdStorage.Value = $null + $script:CippAllowedTenantsStorage.Value = $null + $script:CippAllowedGroupsStorage.Value = $null + $script:CippUserRolesStorage.Value = @{} +} diff --git a/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 index f74e8a3e9f65c..9bfa11f84ff5b 100644 --- a/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Set-CIPPAccessRole.ps1 @@ -47,5 +47,9 @@ function Set-CIPPAccessRole { if ($PSCmdlet.ShouldProcess("Setting access role $Role for group $($Group.displayName)")) { Add-CIPPAzDataTableEntity -Table $Table -Entity $AccessGroup -Force + + # Group to role mapping decides which roles a user resolves to, so the cached scope rules + # have to be invalidated with it + Clear-CippAccessScopeCache } } diff --git a/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOEasyAuth.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOEasyAuth.ps1 index 8ced685da8420..c87f28a6fc09d 100644 --- a/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOEasyAuth.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOEasyAuth.ps1 @@ -71,8 +71,7 @@ function Set-CIPPSSOEasyAuth { # Set AUTH_SECRET as a KV reference when requested (initial setup) # Skip for implicit auth (no client secret needed — e.g. central migration app) if ($UseKvReferences -and -not $ImplicitAuth) { - $KV = $env:WEBSITE_DEPLOYMENT_ID - $VaultName = if ($KV) { ($KV -split '-')[0] } else { $null } + $VaultName = Get-CippKeyVaultName if ($VaultName) { $MergedSettings['AUTH_SECRET'] = "@Microsoft.KeyVault(VaultName=$VaultName;SecretName=SSOAppSecret)" } diff --git a/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOStoredCredentials.ps1 b/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOStoredCredentials.ps1 index 8ee4bd1456c1b..560fff8522933 100644 --- a/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOStoredCredentials.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Set-CIPPSSOStoredCredentials.ps1 @@ -32,9 +32,8 @@ function Set-CIPPSSOStoredCredentials { return } - $KV = $env:WEBSITE_DEPLOYMENT_ID - $VaultName = if ($KV) { ($KV -split '-')[0] } else { $null } - if (-not $VaultName) { throw 'Cannot determine Key Vault name from WEBSITE_DEPLOYMENT_ID' } + $VaultName = Get-CippKeyVaultName + if (-not $VaultName) { throw 'Cannot determine Key Vault name (WEBSITE_SITE_NAME / WEBSITE_DEPLOYMENT_ID not set)' } if ($AppId) { $ExistingAppIdSecret = $null diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 index 531641db57914..9ca939a19e841 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccess.ps1 @@ -233,15 +233,22 @@ function Test-CIPPAccess { $MeResponse['hostedFailedPayments'] = $true } - # Forced SSO migration: non-dismissible prompt when migration env var is set - if ($env:CIPP_SSO_MIGRATION_APPID -and $Permissions -contains 'CIPP.AppSettings.ReadWrite') { + $CanManageAppSettings = $Permissions -contains 'CIPP.AppSettings.ReadWrite' + $HasAnyPermission = ($Permissions | Measure-Object).Count -gt 0 + + # Forced SSO migration: non-dismissible prompt when migration env var is set. + # Suppressed until initial setup (SAM app) is complete — the setup wizard has + # to run first, and ExecSSOSetup needs the SAM app to create the CIPP-SSO + # registration. Same env check that drives the setupCompleted alert. + $InitialSetupComplete = $env:ApplicationID -and $env:ApplicationID -ne 'LongApplicationID' + if ($env:CIPP_SSO_MIGRATION_APPID -and $CanManageAppSettings -and $InitialSetupComplete) { $MeResponse['forceSsoMigration'] = @{ appId = $env:CIPP_SSO_MIGRATION_APPID status = 'pending' } } - if ($env:CIPPNG -ne 'true') { + if ($env:CIPPNG -ne 'true' -and $HasAnyPermission) { try { $SSOTable = Get-CIPPTable -tablename 'SSOMigration' $SSOMigration = Get-CIPPAzDataTableEntity @SSOTable -Filter "PartitionKey eq 'SSO' and RowKey eq 'MigrationConfig'" -ErrorAction SilentlyContinue @@ -324,6 +331,55 @@ function Test-CIPPAccess { if (@('admin', 'superadmin') -contains $BaseRole.Name) { return $true } else { + # Scope-only requests resolve from the cached rules. On a warm cache this needs no + # storage read at all, and it only needs the tenant table when a rule actually says + # 'all tenants except', because that is the one case where the answer depends on + # which tenants currently exist. + if ($TenantList.IsPresent -or $GroupList.IsPresent) { + $swScopeRules = [System.Diagnostics.Stopwatch]::StartNew() + $ScopeRules = foreach ($CustomRole in $CustomRoles) { + try { + Get-CippAccessScopeRule -Role $CustomRole + } catch { + Write-Information $_.Exception.Message + } + } + $swScopeRules.Stop() + $AccessTimings['GetScopeRules'] = $swScopeRules.Elapsed.TotalMilliseconds + + if (($ScopeRules | Measure-Object).Count -eq 0) { + # No role produced a scope, so the caller is entitled to nothing + return @() + } + + if ($TenantList.IsPresent) { + $swTenantList = [System.Diagnostics.Stopwatch]::StartNew() + $NeedsTenantList = @($ScopeRules | Where-Object { -not $_.Unrestricted -and $_.AllowAllTenants }).Count -gt 0 + $Tenants = if ($NeedsTenantList) { Get-Tenants -IncludeErrors } else { @() } + + $LimitedTenantList = foreach ($Rule in $ScopeRules) { + if ($Rule.Unrestricted) { + @('AllTenants') + } else { + $AllowedForRule = if ($Rule.AllowAllTenants) { $Tenants.customerId } else { $Rule.AllowedTenants } + $AllowedForRule | Where-Object { $Rule.BlockedTenants -notcontains $_ } + } + } + $swTenantList.Stop() + $AccessTimings['BuildTenantList'] = $swTenantList.Elapsed.TotalMilliseconds + return @($LimitedTenantList | Sort-Object -Unique) + } + + Write-Information "Getting allowed groups for roles: $($CustomRoles -join ', ')" + $swGroupList = [System.Diagnostics.Stopwatch]::StartNew() + $LimitedGroupList = foreach ($Rule in $ScopeRules) { + if ($Rule.Unrestricted) { @('AllGroups') } else { $Rule.AllowedGroups } + } + $swGroupList.Stop() + $AccessTimings['BuildGroupList'] = $swGroupList.Elapsed.TotalMilliseconds + return @($LimitedGroupList | Sort-Object -Unique) + } + $swTenantsLoad = [System.Diagnostics.Stopwatch]::StartNew() $Tenants = Get-Tenants -IncludeErrors $swTenantsLoad.Stop() @@ -342,69 +398,8 @@ function Test-CIPPAccess { $AccessTimings['GetRolePermissions'] = $swRolePerms.Elapsed.TotalMilliseconds if ($PermissionsFound) { - if ($TenantList.IsPresent) { - $swTenantList = [System.Diagnostics.Stopwatch]::StartNew() - $LimitedTenantList = foreach ($Permission in $PermissionSet) { - if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { - @('AllTenants') - } else { - # Expand tenant groups to individual tenant IDs - $ExpandedAllowedTenants = foreach ($AllowedItem in $Permission.AllowedTenants) { - if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { - try { - $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($AllowedItem) - $GroupMembers | ForEach-Object { $_.addedFields.customerId } - } catch { - Write-Warning "Failed to expand tenant group '$($AllowedItem.label)': $($_.Exception.Message)" - @() - } - } else { - $AllowedItem - } - } - - $ExpandedBlockedTenants = foreach ($BlockedItem in $Permission.BlockedTenants) { - if ($BlockedItem -is [PSCustomObject] -and $BlockedItem.type -eq 'Group') { - try { - $GroupMembers = Expand-CIPPTenantGroups -TenantFilter @($BlockedItem) - $GroupMembers | ForEach-Object { $_.addedFields.customerId } - } catch { - Write-Warning "Failed to expand blocked tenant group '$($BlockedItem.label)': $($_.Exception.Message)" - @() - } - } else { - $BlockedItem - } - } - - if ($ExpandedAllowedTenants -contains 'AllTenants') { - $ExpandedAllowedTenants = $Tenants.customerId - } - $ExpandedAllowedTenants | Where-Object { $ExpandedBlockedTenants -notcontains $_ } - } - } - $swTenantList.Stop() - $AccessTimings['BuildTenantList'] = $swTenantList.Elapsed.TotalMilliseconds - return @($LimitedTenantList | Sort-Object -Unique) - } elseif ($GroupList.IsPresent) { - $swGroupList = [System.Diagnostics.Stopwatch]::StartNew() - Write-Information "Getting allowed groups for roles: $($CustomRoles -join ', ')" - $LimitedGroupList = foreach ($Permission in $PermissionSet) { - if ((($Permission.AllowedTenants | Measure-Object).Count -eq 0 -or $Permission.AllowedTenants -contains 'AllTenants') -and (($Permission.BlockedTenants | Measure-Object).Count -eq 0)) { - @('AllGroups') - } else { - foreach ($AllowedItem in $Permission.AllowedTenants) { - if ($AllowedItem -is [PSCustomObject] -and $AllowedItem.type -eq 'Group') { - $AllowedItem.value - } - } - } - } - $swGroupList.Stop() - $AccessTimings['BuildGroupList'] = $swGroupList.Elapsed.TotalMilliseconds - return @($LimitedGroupList | Sort-Object -Unique) - } - + # Tenant list and group list requests have already returned above, from the + # cached scope rules. Everything from here is the per-endpoint access decision. $TenantAllowed = $false $APIAllowed = $false $swPermissionEval = [System.Diagnostics.Stopwatch]::StartNew() diff --git a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 index 82fc925e06878..ca42c57fa9794 100644 --- a/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1 @@ -24,15 +24,30 @@ function Test-CIPPAccessUserRole { $UserRoleTotalSw = [System.Diagnostics.Stopwatch]::StartNew() $Roles = @() - # Check AsyncLocal cache first (per-request cache) + # TTL for the in-memory tier, deliberately identical to the cacheAccessUserRoles window used + # below. That tier fronts the table cache, so leaving it without an expiry lets it outlive + # the cache it is caching: a role change, or a user being removed from an access group, + # would not take effect on a warm worker until the process recycled. + $RoleCacheMinutes = 15 + + # Check the in-memory cache first, discarding the entry once it is past its TTL + $CachedEntry = $null if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value -and $script:CippUserRolesStorage.Value.ContainsKey($User.userDetails)) { - $Roles = $script:CippUserRolesStorage.Value[$User.userDetails] + $CachedEntry = $script:CippUserRolesStorage.Value[$User.userDetails] + if ($null -eq $CachedEntry.Expires -or $CachedEntry.Expires -le (Get-Date).ToUniversalTime()) { + $script:CippUserRolesStorage.Value.Remove($User.userDetails) + $CachedEntry = $null + } + } + + if ($CachedEntry) { + $Roles = $CachedEntry.Roles } else { # Check table storage cache (persistent cache) try { $swTableLookup = [System.Diagnostics.Stopwatch]::StartNew() $Table = Get-CippTable -TableName cacheAccessUserRoles - $Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'" + $Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-$RoleCacheMinutes).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'" $UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter $swTableLookup.Stop() $UserRoleTimings['TableLookup'] = $swTableLookup.Elapsed.TotalMilliseconds @@ -44,9 +59,12 @@ function Test-CIPPAccessUserRole { Write-Information "Found cached user role for $($User.userDetails)" $Roles = $UserRole.Role | ConvertFrom-Json - # Store in AsyncLocal cache for this request + # Store in the in-memory cache, expiring in step with the table cache if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { - $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + $script:CippUserRolesStorage.Value[$User.userDetails] = @{ + Roles = $Roles + Expires = (Get-Date).ToUniversalTime().AddMinutes($RoleCacheMinutes) + } } } else { try { @@ -114,9 +132,12 @@ function Test-CIPPAccessUserRole { } } - # Store in AsyncLocal cache for this request + # Store in the in-memory cache, expiring in step with the table cache if ($script:CippUserRolesStorage -and $script:CippUserRolesStorage.Value) { - $script:CippUserRolesStorage.Value[$User.userDetails] = $Roles + $script:CippUserRolesStorage.Value[$User.userDetails] = @{ + Roles = $Roles + Expires = (Get-Date).ToUniversalTime().AddMinutes($RoleCacheMinutes) + } } } } diff --git a/Modules/CIPPCore/Public/Authentication/Update-CIPPSSORedirectUri.ps1 b/Modules/CIPPCore/Public/Authentication/Update-CIPPSSORedirectUri.ps1 index 03d113d2a2145..e5c7bd830b6f4 100644 --- a/Modules/CIPPCore/Public/Authentication/Update-CIPPSSORedirectUri.ps1 +++ b/Modules/CIPPCore/Public/Authentication/Update-CIPPSSORedirectUri.ps1 @@ -32,8 +32,7 @@ function Update-CIPPSSORedirectUri { $SSOMultiTenant = $Secret.SSOMultiTenant -eq 'True' } catch { } } else { - $KV = $env:WEBSITE_DEPLOYMENT_ID - $VaultName = if ($KV) { ($KV -split '-')[0] } else { $null } + $VaultName = Get-CippKeyVaultName if ($VaultName) { try { $SSOAppId = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'SSOAppId' -AsPlainText -ErrorAction Stop @@ -95,30 +94,33 @@ function Update-CIPPSSORedirectUri { return } - # Build patch body - $PatchBody = @{} - + # Patch redirect URIs and signInAudience as separate requests. A tenant app-management + # policy can reject an audience change (e.g. downgrading a multi-tenant app to + # single-tenant fails with "SigninAudienceRestrictions with restricted mode can be + # configured only on multi-tenants apps"). Sending them together would let that + # rejection also drop the redirect URI additions, which are needed for sign-in. if ($MissingUris.Count -gt 0) { $UpdatedUris = [System.Collections.Generic.List[string]]::new() $ExistingUris | ForEach-Object { $UpdatedUris.Add($_) } $MissingUris | ForEach-Object { $UpdatedUris.Add($_) } - $PatchBody.web = @{ redirectUris = $UpdatedUris } - } - - if ($AudienceMismatch) { - $PatchBody.signInAudience = $ExpectedAudience - Write-Information "[SSO-Redirect] Correcting signInAudience: $($AppResponse.signInAudience) -> $ExpectedAudience" - } - - $Body = $PatchBody | ConvertTo-Json -Depth 5 - New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($AppResponse.id)" -body $Body -type PATCH -NoAuthCheck $true -AsApp $true - - if ($MissingUris.Count -gt 0) { + $UriBody = @{ web = @{ redirectUris = $UpdatedUris } } | ConvertTo-Json -Depth 5 + New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($AppResponse.id)" -body $UriBody -type PATCH -NoAuthCheck $true -AsApp $true Write-Information "[SSO-Redirect] Added redirect URIs: $($MissingUris -join ', ')" Write-LogMessage -API 'SSO-Redirect' -message "Added redirect URIs: $($MissingUris -join ', ')" -sev Info } + if ($AudienceMismatch) { - Write-LogMessage -API 'SSO-Redirect' -message "Updated signInAudience to $ExpectedAudience (multiTenant=$SSOMultiTenant)" -sev Info + Write-Information "[SSO-Redirect] Correcting signInAudience: $($AppResponse.signInAudience) -> $ExpectedAudience" + try { + $AudienceBody = @{ signInAudience = $ExpectedAudience } | ConvertTo-Json -Compress + New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/applications/$($AppResponse.id)" -body $AudienceBody -type PATCH -NoAuthCheck $true -AsApp $true + Write-LogMessage -API 'SSO-Redirect' -message "Updated signInAudience to $ExpectedAudience (multiTenant=$SSOMultiTenant)" -sev Info + } catch { + # Non-fatal: a tenant app-management policy is blocking the audience change. + # EasyAuth issuer validation already enforces the effective tenant scope, so the + # app registration can stay as-is. Log at Info so warmup doesn't spam warnings. + Write-Information "[SSO-Redirect] signInAudience change to $ExpectedAudience was rejected by tenant policy (leaving app reg as $($AppResponse.signInAudience)): $($_.Exception.Message)" + } } } catch { Write-LogMessage -API 'SSO-Redirect' -message "Failed to update SSO app registration: $_" -LogData (Get-CippException -Exception $_) -sev Warning diff --git a/Modules/CIPPCore/Public/Compare-CIPPDlpCompliancePolicy.ps1 b/Modules/CIPPCore/Public/Compare-CIPPDlpCompliancePolicy.ps1 index eaa6c76bee657..5b8396e9c8455 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPDlpCompliancePolicy.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPDlpCompliancePolicy.ps1 @@ -68,6 +68,9 @@ function ConvertTo-CIPPDlpComparable { $Rules = [ordered]@{} foreach ($Rule in @($RuleSource) | Where-Object { $_ }) { $RuleParams = Format-CIPPCompliancePolicyParams -Source $Rule -AllowedFields $Fields.Rule + # Mirror deploy: keep only AdvancedRule OR the flat condition params, never both, so the same + # side is compared that deploy would actually send (see Resolve-CIPPDlpAdvancedRule). + $RuleParams = Resolve-CIPPDlpAdvancedRule -Source $Rule -RuleParams $RuleParams $RuleName = [string]$RuleParams['Name'] $RuleParams.Remove('Policy') | Out-Null $RuleParams.Remove('Name') | Out-Null @@ -79,6 +82,12 @@ function ConvertTo-CIPPDlpComparable { if ($RuleParams.ContainsKey('IncidentReportContent') -and $RuleParams['IncidentReportContent'] -is [string]) { $RuleParams['IncidentReportContent'] = @($RuleParams['IncidentReportContent'] -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ }) } + # Expand the AdvancedRule JSON string into an object so the canonical comparison string is + # independent of whitespace and key order (the service may reformat the blob it returns). + # Unparseable JSON falls back to raw string comparison. + if ($RuleParams.ContainsKey('AdvancedRule') -and $RuleParams['AdvancedRule'] -is [string]) { + try { $RuleParams['AdvancedRule'] = $RuleParams['AdvancedRule'] | ConvertFrom-Json -ErrorAction Stop } catch {} + } if (-not [string]::IsNullOrWhiteSpace($RuleName)) { $Rules[$RuleName] = $RuleParams } } diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneAssignments.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneAssignments.ps1 index a123691d9d8cd..7c96361eb7bf6 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPIntuneAssignments.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneAssignments.ps1 @@ -80,7 +80,7 @@ function Compare-CIPPIntuneAssignments { $ExpectedGroupIds = @( $ExpectedCustomGroup.Split(',').Trim() | ForEach-Object { $name = $_ - $AllGroupsCache | Where-Object { $_.displayName -like $name } | Select-Object -ExpandProperty id + $AllGroupsCache | Where-Object { $_.displayName -like ($name -replace '\[', '`[' -replace '\]', '`]') } | Select-Object -ExpandProperty id } | Where-Object { $_ } ) $MissingIds = @($ExpectedGroupIds | Where-Object { $_ -notin $ExistingIncludeGroupIds }) @@ -97,7 +97,7 @@ function Compare-CIPPIntuneAssignments { $ExpectedExcludeIds = @( $ExpectedExcludeGroup.Split(',').Trim() | ForEach-Object { $name = $_ - $AllGroupsCache | Where-Object { $_.displayName -like $name } | Select-Object -ExpandProperty id + $AllGroupsCache | Where-Object { $_.displayName -like ($name -replace '\[', '`[' -replace '\]', '`]') } | Select-Object -ExpandProperty id } | Where-Object { $_ } ) $MissingExcludeIds = @($ExpectedExcludeIds | Where-Object { $_ -notin $ExistingExcludeGroupIds }) diff --git a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 index fc9902d80823f..8e476e57da686 100644 --- a/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 +++ b/Modules/CIPPCore/Public/Compare-CIPPIntuneObject.ps1 @@ -35,9 +35,18 @@ function Compare-CIPPIntuneObject { 'isSynced' 'locationInfo', 'templateId', - 'source' + 'source', + 'package', + 'assignments' ) + # App protection templates store apps[] and deployedAppCount, but deployment strips apps + # and the policy read-back never returns either, so they can never match. Scoped to + # AppProtection because Device configs carry legitimate nested 'apps' (e.g. kiosk profiles). + if ($CompareType -contains 'AppProtection') { + $defaultExcludeProperties = $defaultExcludeProperties + @('apps', 'deployedAppCount') + } + $excludeProps = $defaultExcludeProperties + $ExcludeProperties $result = [System.Collections.Generic.List[PSObject]]::new() @@ -173,11 +182,12 @@ function Compare-CIPPIntuneObject { if (ShouldCompareAsUnorderedSet -PropertyPath $PropertyPath) { # For unordered sets, compare contents regardless of order if ($Object1.Count -ne $Object2.Count) { - # Different lengths - report the difference + # Different lengths - report the actual values so a technician + # can see exactly what differs and decide on the action. $result.Add([PSCustomObject]@{ Property = $PropertyPath - ExpectedValue = "Array with $($Object1.Count) items" - ReceivedValue = "Array with $($Object2.Count) items" + ExpectedValue = ($Object1 -join ', ') + ReceivedValue = ($Object2 -join ', ') }) } else { # Same length - check if all items exist in both arrays @@ -448,7 +458,7 @@ function Compare-CIPPIntuneObject { } $values.Add($displayValue) } - $childValue = $values -join ', ' + $childValue = ($values | Sort-Object) -join ', ' $results.Add([PSCustomObject]@{ Key = "GroupChild-$($child.settingDefinitionId)" @@ -464,7 +474,7 @@ function Compare-CIPPIntuneObject { foreach ($simpleValue in $child.simpleSettingCollectionValue) { $values.Add($simpleValue.value) } - $childValue = $values -join ', ' + $childValue = ($values | Sort-Object) -join ', ' $results.Add([PSCustomObject]@{ Key = "GroupChild-$($child.settingDefinitionId)" @@ -765,7 +775,9 @@ function Compare-CIPPIntuneObject { $key } - if ($refRawValue -ne $diffRawValue -or $null -eq $refRawValue -or $null -eq $diffRawValue) { + # Flag when values differ or the setting exists on only one side; a setting present on both sides with equal (even null) values is compliant + $presenceMismatch = ($null -eq $refItem) -xor ($null -eq $diffItem) + if ($refRawValue -ne $diffRawValue -or $presenceMismatch) { $result.Add([PSCustomObject]@{ Property = $label ExpectedValue = $refValue diff --git a/Modules/CIPPCore/Public/Compare-CIPPSensitiveInfoType.ps1 b/Modules/CIPPCore/Public/Compare-CIPPSensitiveInfoType.ps1 new file mode 100644 index 0000000000000..426bec77f51ef --- /dev/null +++ b/Modules/CIPPCore/Public/Compare-CIPPSensitiveInfoType.ps1 @@ -0,0 +1,154 @@ +function ConvertTo-CIPPSitComparable { + <# + .SYNOPSIS + Reduce a SIT rule pack XML to a semantic, comparable structure (ignoring volatile ids/versions). + .DESCRIPTION + A rule pack XML carries GUIDs (RulePack/Publisher/Entity/Regex ids) and a version that change + between deploys and are assigned by Microsoft, so a raw XML compare always looks like drift. This + extracts only the meaningful content per entity - name, description, recommended confidence, + patterns proximity, and each pattern's confidence level with its resolved regex/keyword content - + keyed by entity name. Parsing is namespace-agnostic (local-name()) so the 2011 and 2018 schemas + both work. + .OUTPUTS + Hashtable of entityName -> ordered hashtable { confidence, proximity, description, patterns }. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param([Parameter(Mandatory)][AllowNull()][string]$Xml) + + $result = @{} + if ([string]::IsNullOrWhiteSpace($Xml)) { return $result } + try { [xml]$doc = $Xml } catch { return $result } + + # Resolve referenced detection elements: regex id -> pattern text, keyword id -> sorted terms. + $regexMap = @{} + foreach ($r in $doc.SelectNodes("//*[local-name()='Regex']")) { + if ($r.id) { $regexMap[[string]$r.id] = ([string]$r.InnerText).Trim() } + } + $keywordMap = @{} + foreach ($k in $doc.SelectNodes("//*[local-name()='Keyword']")) { + $terms = @($k.SelectNodes(".//*[local-name()='Term']") | ForEach-Object { ([string]$_.InnerText).Trim() }) | Sort-Object + if ($k.id) { $keywordMap[[string]$k.id] = ($terms -join '|') } + } + + # entity id -> localized name/description + $resMap = @{} + foreach ($res in $doc.SelectNodes("//*[local-name()='Resource']")) { + if (-not $res.idRef) { continue } + $nameNode = $res.SelectSingleNode("*[local-name()='Name']") + $descNode = $res.SelectSingleNode("*[local-name()='Description']") + $resMap[[string]$res.idRef] = @{ + Name = if ($nameNode) { ([string]$nameNode.InnerText).Trim() } else { '' } + Description = if ($descNode) { ([string]$descNode.InnerText).Trim() } else { '' } + } + } + + foreach ($ent in $doc.SelectNodes("//*[local-name()='Entity']")) { + $eid = [string]$ent.id + $name = if ($resMap.ContainsKey($eid) -and $resMap[$eid].Name) { $resMap[$eid].Name } else { $eid } + + $patterns = @(foreach ($p in $ent.SelectNodes("*[local-name()='Pattern']")) { + $matches = @($p.SelectNodes(".//*[@idRef]") | ForEach-Object { + $ref = [string]$_.idRef + if ($regexMap.ContainsKey($ref)) { "regex:$($regexMap[$ref])" } + elseif ($keywordMap.ContainsKey($ref)) { "keyword:$($keywordMap[$ref])" } + else { "ref:$ref" } + }) | Sort-Object + [ordered]@{ level = [string]$p.confidenceLevel; matches = @($matches) } + }) + + $result[$name] = [ordered]@{ + confidence = [string]$ent.recommendedConfidence + proximity = [string]$ent.patternsProximity + description = if ($resMap.ContainsKey($eid)) { $resMap[$eid].Description } else { '' } + patterns = @($patterns) + } + } + return $result +} + +function Compare-CIPPSensitiveInfoType { + <# + .SYNOPSIS + Compare a stored SIT template against the live custom SIT in a tenant and report drift. + .DESCRIPTION + Resolves the template's intended rule pack XML (advanced FileDataBase64, or synthesized from a + simple Pattern), fetches the live SIT's rule pack XML, reduces both to a semantic structure via + ConvertTo-CIPPSitComparable, and diffs each templated entity (matched by name). Returns the state + and the specific differing fields with expected (template) vs current (tenant) values. + .OUTPUTS + PSCustomObject: Name, State ('Missing' | 'BuiltIn' | 'Invalid' | 'InSync' | 'Drift'), Differences. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)] [string] $TenantFilter, + [Parameter(Mandatory)] $Template + ) + + $Name = $Template.Name ?? $Template.name + + # Resolve the template's intended rule pack XML. + $WantXml = $null + if ($Template.FileDataBase64) { + try { $Bytes = [System.Convert]::FromBase64String($Template.FileDataBase64) } catch { $Bytes = $null } + if ($Bytes) { + $WantXml = [System.Text.Encoding]::Unicode.GetString($Bytes) + if ($WantXml -notmatch ' + [CmdletBinding()] + param( + [Parameter(Mandatory)] $InputObject + ) + + $Result = @{ '@odata.type' = '#Exchange.GenericHashTable' } + + if ($InputObject -is [System.Collections.IDictionary]) { + foreach ($Key in @($InputObject.Keys)) { + if ($Key -ne '@odata.type') { $Result[$Key] = $InputObject[$Key] } + } + } elseif ($InputObject -is [System.Collections.IEnumerable] -and $InputObject -isnot [string]) { + foreach ($Entry in $InputObject) { + if ($null -eq $Entry) { continue } + if ($Entry -isnot [string] -and $Entry.PSObject.Properties['Key']) { + $Result[$Entry.Key] = $Entry.Value + } elseif ($Entry -is [System.Collections.IList] -and $Entry.Count -ge 2) { + $Result["$($Entry[0])"] = $Entry[1] + } + } + } else { + foreach ($Prop in $InputObject.PSObject.Properties) { + if ($Prop.Name -ne '@odata.type') { $Result[$Prop.Name] = $Prop.Value } + } + } + + return $Result +} diff --git a/Modules/CIPPCore/Public/ConvertTo-CIPPSensitivityLabelParams.ps1 b/Modules/CIPPCore/Public/ConvertTo-CIPPSensitivityLabelParams.ps1 index 7c3894d872e4a..6cea14dc0e2d7 100644 --- a/Modules/CIPPCore/Public/ConvertTo-CIPPSensitivityLabelParams.ps1 +++ b/Modules/CIPPCore/Public/ConvertTo-CIPPSensitivityLabelParams.ps1 @@ -15,6 +15,11 @@ function ConvertTo-CIPPSensitivityLabelParams { arrays (which are not valid input in their read form). A flat object (manual JSON authored against the deploy schema) has no 'LabelActions' and passes through unchanged. + Applied -AdvancedSettings values (e.g. a custom label color) are only readable through the same + read-only 'Settings' array, so before dropping it the writable advanced settings are lifted into + an 'AdvancedSettings' dictionary that New-/Set-Label accept. An explicit 'AdvancedSettings' value + already on the template wins over captured values. + Deploy-time validation/allowlisting still happens in Set-CIPPSensitivityLabel via Get-CIPPSensitivityLabelField; this function only reshapes. .PARAMETER Label @@ -42,6 +47,39 @@ function ConvertTo-CIPPSensitivityLabelParams { return [pscustomobject]$Flat } + # Writable advanced settings that Get-Label only reports inside the read-only Settings array + # ([key, value] pairs). The rest of Settings is system metadata (displayname, contenttype, + # tooltip, ...) that must not be echoed back to New-/Set-Label. Extend this list as more + # -AdvancedSettings keys gain first-class support. + $WritableAdvancedSettings = @('color') + $CapturedAdvanced = @{} + foreach ($Entry in @($Label.Settings)) { + if ($null -eq $Entry) { continue } + $Key = $null + $Value = $null + if ($Entry -isnot [string] -and $Entry.PSObject.Properties['Key']) { + $Key = $Entry.Key + $Value = $Entry.Value + } elseif ("$Entry" -match '^\[\s*(.+?)\s*,\s*(.*?)\s*\]$') { + # Get-Label serializes each entry as the string '[key, value]' + $Key = $Matches[1] + $Value = $Matches[2] + } + if ($Key -and $Key.ToLower() -in $WritableAdvancedSettings -and -not [string]::IsNullOrWhiteSpace("$Value")) { + $CapturedAdvanced[$Key.ToLower()] = "$Value" + } + } + if ($CapturedAdvanced.Count -gt 0) { + # Explicit AdvancedSettings on the template win over values captured from Settings. + $Explicit = $Flat['AdvancedSettings'] + if ($Explicit -is [System.Collections.IDictionary]) { + foreach ($ExplicitKey in @($Explicit.Keys)) { $CapturedAdvanced[$ExplicitKey] = $Explicit[$ExplicitKey] } + } elseif ($null -ne $Explicit) { + foreach ($ExplicitProp in $Explicit.PSObject.Properties) { $CapturedAdvanced[$ExplicitProp.Name] = $ExplicitProp.Value } + } + $Flat['AdvancedSettings'] = $CapturedAdvanced + } + foreach ($Raw in @($Label.LabelActions)) { if ($null -eq $Raw) { continue } $Action = if ($Raw -is [string]) { $Raw | ConvertFrom-Json } else { $Raw } diff --git a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 index 0b382a26e4315..27d561b4b99eb 100644 --- a/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1 @@ -16,24 +16,10 @@ function New-CippCoreRequest { $HttpTimings = @{} $HttpTotalStopwatch = [System.Diagnostics.Stopwatch]::StartNew() - # Initialize AsyncLocal storage for thread-safe per-invocation context - if (-not $script:CippInvocationIdStorage) { - $script:CippInvocationIdStorage = [System.Threading.AsyncLocal[string]]::new() - } - if (-not $script:CippAllowedTenantsStorage) { - $script:CippAllowedTenantsStorage = [System.Threading.AsyncLocal[object]]::new() - } - if (-not $script:CippAllowedGroupsStorage) { - $script:CippAllowedGroupsStorage = [System.Threading.AsyncLocal[object]]::new() - } - if (-not $script:CippUserRolesStorage) { - $script:CippUserRolesStorage = [System.Threading.AsyncLocal[hashtable]]::new() - } - - # Initialize user roles cache for this request - if (-not $script:CippUserRolesStorage.Value) { - $script:CippUserRolesStorage.Value = @{} - } + # Initialize and reset the per-invocation context slots. This has to happen before anything + # reads them: workers are reused between requests, so whatever the previous invocation left + # behind is still in scope until it is explicitly cleared. + Initialize-CippRequestContext # Set InvocationId in AsyncLocal storage for console logging correlation if ($global:TelemetryClient -and $TriggerMetadata.InvocationId) { @@ -158,13 +144,21 @@ function New-CippCoreRequest { $swGroups.Stop() $HttpTimings['AllowedGroups'] = $swGroups.Elapsed.TotalMilliseconds + # Assign on every path, including the unrestricted one. Only writing the slot when + # access is limited is what allowed a restricted user's scope to survive into the + # next request handled by the same worker, silently filtering results for someone + # entitled to see everything. if ($AllowedTenants -notcontains 'AllTenants') { Write-Warning 'Limiting tenant access' $script:CippAllowedTenantsStorage.Value = $AllowedTenants + } else { + $script:CippAllowedTenantsStorage.Value = $null } if ($AllowedGroups -notcontains 'AllGroups') { Write-Warning 'Limiting group access' $script:CippAllowedGroupsStorage.Value = $AllowedGroups + } else { + $script:CippAllowedGroupsStorage.Value = $null } try { diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 index c1a3be02fde91..ec227aa8af6af 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestion.ps1 @@ -29,7 +29,9 @@ function Start-AuditLogIngestion { if (!$ConfigEntry.excludedTenants) { $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force } else { - $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + # Expand tenant groups in exclusions so group members match on defaultDomainName + $Excluded = $ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue + $ConfigEntry.excludedTenants = if ($Excluded) { @(Expand-CIPPTenantGroups -TenantFilter $Excluded) } else { @() } } $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json $ConfigEntry diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestionV2.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestionV2.ps1 new file mode 100644 index 0000000000000..3dab8b3701149 --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogIngestionV2.ps1 @@ -0,0 +1,80 @@ +function Start-AuditLogIngestionV2 { + <# + .SYNOPSIS + V2 audit-log ingestion timer. Drives both download and processing, decoupled so that pending + logs are processed even when there is nothing new to download. + .DESCRIPTION + Runs offset 15 minutes from the creation timer and fans out two kinds of work: + + 1. Download tenants - AuditLogCoverage rows in state 'Created' (a search was created and is + awaiting download) and due (not in backoff). Each gets a per-tenant orchestrator: + Batch = AuditLogDownloadV2 (download succeeded searches -> CacheWebhooks) + PostExecution = AuditLogProcessV2 (enqueue processing if any cache rows are pending) + + 2. Process-only tenants - tenants that have rows sitting in CacheWebhooks (downloaded but + not yet processed, e.g. left behind by a worker crash mid-processing) but no pending + download. These get a processing orchestrator fanned out DIRECTLY, skipping the no-op + download orchestration. + + This makes processing self-healing: a crashed/partial processing run is retried on the next + cycle off the cache contents, not gated behind a fresh download. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + $Now = (Get-Date).ToUniversalTime() + + # --- Download tenants: searches awaiting download (State = Created, due) --- + $DownloadTenants = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Row in @(Get-CIPPAzDataTableEntity @Ledger -Filter "State eq 'Created'" -Property @('PartitionKey', 'NextAttemptUtc'))) { + if ($Row.NextAttemptUtc -and ([datetimeoffset]$Row.NextAttemptUtc).UtcDateTime -gt $Now) { continue } + if ($Row.PartitionKey) { [void]$DownloadTenants.Add([string]$Row.PartitionKey) } + } + + # --- Process-only tenants: rows pending in the webhook cache (downloaded, not yet processed) --- + $CacheTable = Get-CippTable -TableName 'CacheWebhooks' + $CacheTenants = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Row in @(Get-CIPPAzDataTableEntity @CacheTable -Property @('PartitionKey'))) { + if ($Row.PartitionKey) { [void]$CacheTenants.Add([string]$Row.PartitionKey) } + } + + if ($DownloadTenants.Count -eq 0 -and $CacheTenants.Count -eq 0) { + Write-Information 'AuditLogV2: nothing to download or process' + return + } + + # 1) Download tenants -> download + post-exec processing in one orchestration. + foreach ($TenantFilter in $DownloadTenants) { + if ($PSCmdlet.ShouldProcess($TenantFilter, 'Download + process audit logs')) { + Start-CIPPOrchestrator -InputObject ([PSCustomObject]@{ + OrchestratorName = "AuditLogIngestV2-$TenantFilter" + Batch = @([PSCustomObject]@{ FunctionName = 'AuditLogDownloadV2'; TenantFilter = $TenantFilter }) + PostExecution = @{ FunctionName = 'AuditLogProcessV2'; Parameters = @{ TenantFilter = $TenantFilter } } + SkipLog = $true + }) + } + } + + # 2) Process-only tenants (pending cache, no pending download) -> process directly. + $ProcessOnlyCount = 0 + foreach ($TenantFilter in $CacheTenants) { + if ($DownloadTenants.Contains($TenantFilter)) { continue } + $ProcessOnlyCount++ + if ($PSCmdlet.ShouldProcess($TenantFilter, 'Process pending audit logs')) { + Start-CIPPOrchestrator -InputObject ([PSCustomObject]@{ + OrchestratorName = "AuditLogProcessV2-$TenantFilter" + QueueFunction = [PSCustomObject]@{ FunctionName = 'AuditLogProcessingBatchV2'; Parameters = @{ TenantFilter = $TenantFilter } } + SkipLog = $true + }) + } + } + + Write-Information "AuditLogV2: ingestion fan-out - $($DownloadTenants.Count) download tenant(s), $ProcessOnlyCount process-only tenant(s)" + } catch { + Write-LogMessage -API 'AuditLogV2' -message 'Error in audit log ingestion orchestrator (V2)' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ('AuditLogV2 ingestion error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogPlannerV2.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogPlannerV2.ps1 new file mode 100644 index 0000000000000..4e8ad995b155b --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogPlannerV2.ps1 @@ -0,0 +1,38 @@ +function Start-AuditLogPlannerV2 { + <# + .SYNOPSIS + Single timer entrypoint for the V2 audit-log pipeline. Runs every 15 minutes and drives both + stages: plan + create searches, then download + process. + .DESCRIPTION + Replaces the separate Start-AuditLogSearchCreationV2 and Start-AuditLogIngestionV2 timers with + one planner so the whole pipeline ticks together: + + Stage 1 (create) - Start-AuditLogSearchCreationV2: seeds owed 35-min windows (5-min settle, + ends on the :25/:55 grid so a fresh window is creatable exactly at :00/:30 with no tick + delay) plus 12-hour reconciliation windows, then creates the oldest <= 6 due windows per + tenant with auto-retry disabled and manual 429 back-off. + + Stage 2 (ingest) - Start-AuditLogIngestionV2: downloads searches created in PRIOR ticks that + are now ready, processes them, and re-processes any tenant with leftover cache rows. + + The two stages operate on different windows (stage 1 queues new searches; stage 2 consumes + searches from earlier ticks once Graph has finished them), so running them in one tick simply + pipelines the work. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param() + try { + Start-AuditLogSearchCreationV2 + } catch { + Write-LogMessage -API 'AuditLogV2' -message 'Planner: search creation stage failed' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ('AuditLogV2 planner (create) error: {0}' -f $_.Exception.Message) + } + try { + Start-AuditLogIngestionV2 + } catch { + Write-LogMessage -API 'AuditLogV2' -message 'Planner: ingestion stage failed' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ('AuditLogV2 planner (ingest) error: {0}' -f $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 index bbc057fa17a3d..250da1d8f6934 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreation.ps1 @@ -15,7 +15,9 @@ function Start-AuditLogSearchCreation { if (!$ConfigEntry.excludedTenants) { $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force } else { - $ConfigEntry.excludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json + # Expand tenant groups in exclusions so group members match on defaultDomainName + $Excluded = $ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue + $ConfigEntry.excludedTenants = if ($Excluded) { @(Expand-CIPPTenantGroups -TenantFilter $Excluded) } else { @() } } $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json $ConfigEntry diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreationV2.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreationV2.ps1 new file mode 100644 index 0000000000000..e579ab736eaee --- /dev/null +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-AuditLogSearchCreationV2.ps1 @@ -0,0 +1,125 @@ +function Start-AuditLogSearchCreationV2 { + <# + .SYNOPSIS + V2 audit-log search creation timer. Plans non-overlapping 60-minute windows per tenant in the + AuditLogCoverage ledger and fans out creation only to tenants that owe a window or have a + retry due. + .DESCRIPTION + Replaces Start-AuditLogSearchCreation. Tenant selection is unchanged (WebhookRules Webhookv2, + minus excluded, minus auditing-disabled). The key differences: + * Windows are clock-aligned, 60 minutes, NON-overlapping (tracked in AuditLogCoverage). + * Failed creations are recorded as Planned/Retry ledger rows, so they are retried (and gaps + backfilled) instead of being silently dropped. + * "First check what tenants need searches created" - the timer scans the ledger once and + only fans out per-tenant activities for tenants that owe a window or have a due retry. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param() + try { + # --- Tenant selection (same source as V1) --- + $ConfigTable = Get-CippTable -TableName 'WebhookRules' + $ConfigEntries = Get-CIPPAzDataTableEntity @ConfigTable -Filter "PartitionKey eq 'Webhookv2'" | ForEach-Object { + $ConfigEntry = $_ + if (!$ConfigEntry.excludedTenants) { + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value @() -Force + } else { + # Expand tenant groups in exclusions so group members match on defaultDomainName + $Excluded = $ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue + $ConfigEntry.excludedTenants = if ($Excluded) { @(Expand-CIPPTenantGroups -TenantFilter $Excluded) } else { @() } + } + $ConfigEntry.Tenants = $ConfigEntry.Tenants | ConvertFrom-Json + $ConfigEntry | Add-Member -MemberType NoteProperty -Name 'ExpandedTenants' -Value (Expand-CIPPTenantGroups -TenantFilter ($ConfigEntry.Tenants)).value -Force + $ConfigEntry + } + if (($ConfigEntries | Measure-Object).Count -eq 0) { + Write-Information 'AuditLogV2: no webhook rules defined; nothing to create' + return + } + + $TenantList = Get-Tenants -IncludeErrors + + # Auditing-disabled skip set (reuse existing table + expiry semantics) + $AuditDisabledTable = Get-CIPPTable -TableName 'AuditLogDisabledTenants' + $NowUnix = [int64]([datetimeoffset]::UtcNow.ToUnixTimeSeconds()) + $AuditDisabledTenants = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($DisabledRow in @(Get-CIPPAzDataTableEntity @AuditDisabledTable -Filter "PartitionKey eq 'AuditDisabledTenant'")) { + [int64]$ExpiresAtUnix = 0 + if ([int64]::TryParse([string]$DisabledRow.ExpiresAtUnix, [ref]$ExpiresAtUnix) -and $ExpiresAtUnix -gt $NowUnix) { + [void]$AuditDisabledTenants.Add([string]$DisabledRow.RowKey) + } + } + + $InScope = foreach ($Tenant in $TenantList) { + if ($AuditDisabledTenants.Contains($Tenant.defaultDomainName) -or $AuditDisabledTenants.Contains([string]$Tenant.customerId)) { continue } + $Match = $false + foreach ($ConfigEntry in $ConfigEntries) { + if ($ConfigEntry.excludedTenants.value -contains $Tenant.defaultDomainName) { continue } + if ($ConfigEntry.ExpandedTenants -contains $Tenant.defaultDomainName -or $ConfigEntry.ExpandedTenants -contains 'AllTenants') { $Match = $true; break } + } + if ($Match) { $Tenant } + } + $InScope = @($InScope) + if ($InScope.Count -eq 0) { + Write-Information 'AuditLogV2: no in-scope tenants' + return + } + + # --- Scan ledger once, group by tenant --- + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + # Cover the reconciliation horizon (48h) plus slack so the fan-out check sees existing recon rows. + $HorizonIso = (Get-Date).AddHours(-50).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $AllRows = Get-CIPPAzDataTableEntity @Ledger -Filter "Timestamp ge datetime'$HorizonIso'" + $ByTenant = @{} + foreach ($Row in $AllRows) { + if (-not $ByTenant.ContainsKey($Row.PartitionKey)) { $ByTenant[$Row.PartitionKey] = [System.Collections.Generic.List[object]]::new() } + $ByTenant[$Row.PartitionKey].Add($Row) + } + + $Now = (Get-Date).ToUniversalTime() + $Batch = foreach ($Tenant in $InScope) { + $Rows = if ($ByTenant.ContainsKey($Tenant.defaultDomainName)) { $ByTenant[$Tenant.defaultDomainName] } else { @() } + $Owed = Get-CippAuditLogPlannedWindows -ExistingRows $Rows -Now $Now + $OwedRecon = Get-CippAuditLogReconciliationWindows -ExistingRows $Rows -Now $Now + $DuePlanned = @($Rows | Where-Object { $_.State -eq 'Planned' -and (-not $_.NextAttemptUtc -or ([datetimeoffset]$_.NextAttemptUtc).UtcDateTime -le $Now) }) + if (($Owed.Count -gt 0) -or ($OwedRecon.Count -gt 0) -or ($DuePlanned.Count -gt 0)) { + [PSCustomObject]@{ + FunctionName = 'AuditLogSearchCreationV2' + TenantFilter = $Tenant.defaultDomainName + TenantId = [string]$Tenant.customerId + } + } + } + $Batch = @($Batch) + + if ($Batch.Count -gt 0) { + Write-Information "AuditLogV2: $($Batch.Count) tenant(s) need search creation" + if ($PSCmdlet.ShouldProcess('Start-AuditLogSearchCreationV2', 'Create audit log searches')) { + $InputObject = [PSCustomObject]@{ + OrchestratorName = 'AuditLogSearchCreationV2' + Batch = @($Batch) + SkipLog = $true + } + Start-CIPPOrchestrator -InputObject $InputObject + } + } else { + Write-Information 'AuditLogV2: no tenants need searches this run' + } + + # --- Best-effort retention: drop ledger rows older than 7 days (all states; active windows are < 26h old) --- + try { + $CutoffIso = (Get-Date).AddDays(-7).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') + $Stale = @(Get-CIPPAzDataTableEntity @Ledger -Filter "Timestamp le datetime'$CutoffIso'" -Property PartitionKey, RowKey) + if ($Stale.Count -gt 0) { + Remove-AzDataTableEntity @Ledger -Entity $Stale -Force + Write-Information "AuditLogV2: cleaned $($Stale.Count) stale ledger row(s)" + } + } catch { + Write-Information "AuditLogV2: ledger cleanup skipped - $($_.Exception.Message)" + } + } catch { + Write-LogMessage -API 'AuditLogV2' -message 'Error creating audit log searches (V2)' -sev Error -LogData (Get-CippException -Exception $_) + Write-Information ('AuditLogV2 create error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + } +} diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBTestsRun.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBTestsRun.ps1 index 4e08a43c16c19..944cd07190f38 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBTestsRun.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-CIPPDBTestsRun.ps1 @@ -15,7 +15,12 @@ function Start-CIPPDBTestsRun { [string]$TenantFilter = 'allTenants', [Parameter(Mandatory = $false)] - [switch]$Force + [switch]$Force, + + # Optional subset of suites to run (e.g. 'Custom'). Omit to run every suite. + # Suite names must match the ValidateSet in Invoke-CIPPTestCollection. + [Parameter(Mandatory = $false)] + [string[]]$Suites ) Write-Information "Starting tests run for tenant: $TenantFilter" @@ -64,11 +69,16 @@ function Start-CIPPDBTestsRun { # The tenants below were already filtered by data presence above, so we pass # SkipDbCheck=$true to avoid a redundant CountsOnly round-trip per tenant. $Batch = foreach ($Tenant in $AllTenantsList) { - @{ + $ListItem = @{ FunctionName = 'CIPPTestsList' TenantFilter = $Tenant SkipDbCheck = $true } + # Propagate an optional suite filter so Phase 1 emits only the requested suites. + if ($Suites) { + $ListItem.Suites = @($Suites) + } + $ListItem } Write-Information "Built batch of $($Batch.Count) tenant test list activities" diff --git a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 index b4110b8b18ba0..14c29bc7e4a62 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Orchestrator Functions/Start-UserTasksOrchestrator.ps1 @@ -115,7 +115,14 @@ function Start-UserTasksOrchestrator { } if ($task.Tenant -eq 'AllTenants') { - $ExcludedTenants = $task.excludedTenants -split ',' + $ExcludedTenants = @($task.excludedTenants -split ',' | Where-Object { $_ }) + if ($task.excludedTenantGroups) { + # Expand excluded tenant groups at runtime so membership changes are honored + $ExcludedGroups = $task.excludedTenantGroups | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($ExcludedGroups) { + $ExcludedTenants = @($ExcludedTenants + (Expand-CIPPTenantGroups -TenantFilter $ExcludedGroups).value | Where-Object { $_ }) + } + } Write-Host "Excluded Tenants from this task: $ExcludedTenants" $AllTenantCommands = foreach ($Tenant in $TenantList | Where-Object { $_.defaultDomainName -notin $ExcludedTenants }) { $NewParams = $task.Parameters.Clone() @@ -148,7 +155,14 @@ function Start-UserTasksOrchestrator { # Expand the tenant group to individual tenants $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $TenantFilterForExpansion - $ExcludedTenants = $task.excludedTenants -split ',' + $ExcludedTenants = @($task.excludedTenants -split ',' | Where-Object { $_ }) + if ($task.excludedTenantGroups) { + # Expand excluded tenant groups at runtime so membership changes are honored + $ExcludedGroups = $task.excludedTenantGroups | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($ExcludedGroups) { + $ExcludedTenants = @($ExcludedTenants + (Expand-CIPPTenantGroups -TenantFilter $ExcludedGroups).value | Where-Object { $_ }) + } + } Write-Host "Excluded Tenants from this task: $ExcludedTenants" $GroupTenantCommands = foreach ($ExpandedTenant in $ExpandedTenants | Where-Object { $_.value -notin $ExcludedTenants }) { diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 index 4484f851a9fe8..342cb828a1b17 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-CIPPStatsTimer.ps1 @@ -48,6 +48,17 @@ function Start-CIPPStatsTimer { $driftStandardsCount = Get-CIPPStatsDriftStandardsCount $mobileEnrollment = Get-CIPPStatsMobileEnrollment + # Feature flags + $FeatureFlags = @{} + Get-CIPPFeatureFlag | Select-Object -Property Id, Enabled | ForEach-Object { + $FeatureFlags[$_.Id] = $_.Enabled + } + + # SSO migration status + $MigrationTable = Get-CIPPTable -tablename 'SSOMigration' + $MigrationConfig = Get-CIPPAzDataTableEntity @MigrationTable -Filter "PartitionKey eq 'SSO' and RowKey eq 'MigrationConfig'" -ErrorAction SilentlyContinue + $MigrationStatus = $MigrationConfig.Status + $SendingObject = [PSCustomObject]@{ rgid = $env:WEBSITE_SITE_NAME SetupComplete = $SetupComplete @@ -77,6 +88,10 @@ function Start-CIPPStatsTimer { PWPush = $RawExt.PWPush.Enabled CFZTNA = $RawExt.CFZTNA.Enabled GitHub = $RawExt.GitHub.Enabled + BestPracticeAnalyser = $FeatureFlags.BestPracticeAnalyser + SuperAdminNG = $FeatureFlags.SuperAdminNG + MCPServer = $FeatureFlags.MCPServer + SSOMigrationStatus = $MigrationStatus } | ConvertTo-Json try { diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-ContainerUpdateCheck.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-ContainerUpdateCheck.ps1 index bd3b2a1338a34..8024d39304edc 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-ContainerUpdateCheck.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-ContainerUpdateCheck.ps1 @@ -12,10 +12,15 @@ function Start-ContainerUpdateCheck { if ($PSCmdlet.ShouldProcess('Start-ContainerUpdateCheck', 'Check for container image updates')) { $SettingsTable = Get-CippTable -tablename 'ContainerUpdateSettings' - $Settings = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 - - if (-not $Settings -or $Settings.CheckInterval -eq '0' -or [string]::IsNullOrWhiteSpace($Settings.CheckInterval)) { - Write-Information 'Container update check: disabled or not configured' + # Reconcile the stored check result with the running build first — a restart may + # have applied a previously detected update, and this must clear the stale + # "update available" flag even when checks are disabled or not yet due. Sync also + # resolves defaults for never-saved fields (auto-restart on, hourly, 23:00), so + # only an explicitly saved interval of '0' disables checking. + $Settings = Sync-CippContainerUpdateState + + if (-not $Settings -or $Settings.CheckInterval -eq '0') { + Write-Information 'Container update check: disabled' return } @@ -153,10 +158,12 @@ function Start-ContainerUpdateCheck { } $RemoteVersion = $manifest.annotations.'org.opencontainers.image.version' - if (-not $RemoteVersion -and $manifest.config.digest) { + $RemoteBuildDate = $manifest.annotations.'org.opencontainers.image.created' + if ((-not $RemoteVersion -or -not $RemoteBuildDate) -and $manifest.config.digest) { try { $config = Invoke-RestMethod -Uri "https://ghcr.io/v2/$imagePath/blobs/$($manifest.config.digest)" -Method GET -Headers $authHeader -ErrorAction Stop - $RemoteVersion = $config.config.Labels.'org.opencontainers.image.version' + if (-not $RemoteVersion) { $RemoteVersion = $config.config.Labels.'org.opencontainers.image.version' } + if (-not $RemoteBuildDate) { $RemoteBuildDate = $config.config.Labels.'org.opencontainers.image.created' } } catch { Write-Information "Could not read image config labels: $($_.Exception.Message)" } @@ -171,14 +178,16 @@ function Start-ContainerUpdateCheck { $UpdateEntity = @{ PartitionKey = 'Settings' RowKey = 'UpdateConfig' - AutoUpdate = [string]($Settings.AutoUpdate ?? 'false') - CheckInterval = [string]($Settings.CheckInterval ?? '0') - CheckTime = [string]($Settings.CheckTime ?? '') + AutoUpdate = [string]($Settings.AutoUpdate ?? 'true') + CheckInterval = [string]($Settings.CheckInterval ?? '1h') + CheckTime = [string]($Settings.CheckTime ?? '23') LastCheck = [string][int64](([DateTimeOffset]::UtcNow).ToUnixTimeSeconds()) UpdateAvailable = [string]$UpdateAvailable RunningVersion = [string]($RunningVersion ?? '') RemoteVersion = [string]($RemoteVersion ?? '') RemoteDigest = [string]($RemoteDigest ?? '') + RemoteBuildDate = [string]($RemoteBuildDate ?? '') + CheckedTag = [string]($CheckTag ?? '') } Add-CIPPAzDataTableEntity @SettingsTable -Entity $UpdateEntity -Force | Out-Null diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 index 037203bb99520..77a45fc69813e 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UpdateTokensTimer.ps1 @@ -23,7 +23,7 @@ function Start-UpdateTokensTimer { Write-LogMessage -API 'Update Tokens' -message 'Could not update refresh token. Will try again in 7 days.' -sev 'CRITICAL' } } else { - $KV = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $KV = Get-CippKeyVaultName if ($Refreshtoken) { Set-CippKeyVaultSecret -VaultName $KV -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Refreshtoken -AsPlainText -Force) } else { @@ -42,6 +42,7 @@ function Start-UpdateTokensTimer { $AppRegistration = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$AppId')?`$select=id,passwordCredentials,servicePrincipalLockConfiguration" -NoAuthCheck $true -AsApp $true -ErrorAction Stop # sort by latest expiration date and get the first one $LastPasswordCredential = $AppRegistration.passwordCredentials | Sort-Object -Property endDateTime -Descending | Select-Object -First 1 + $PasswordCredentials = $AppRegistration.passwordCredentials | Sort-Object -Property endDateTime -Descending try { $AppPolicyStatus = Update-AppManagementPolicy @@ -60,24 +61,39 @@ function Start-UpdateTokensTimer { } if ($AppSecret) { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { - $Table = Get-CIPPTable -tablename 'DevSecrets' - $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" - $Secret.ApplicationSecret = $AppSecret.secretText - Add-AzDataTableEntity @Table -Entity $Secret -Force - } else { - Set-CippKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $Secret.ApplicationSecret = $AppSecret.secretText + Add-AzDataTableEntity @Table -Entity $Secret -Force + } else { + Set-CippKeyVaultSecret -VaultName $KV -Name 'ApplicationSecret' -SecretValue (ConvertTo-SecureString -String $AppSecret.secretText -AsPlainText -Force) + } + Write-LogMessage -API 'Update Tokens' -message "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." -sev 'INFO' + } catch { + # Storing the new secret failed. It exists on the app registration but not where CIPP reads + # it, and as the newest credential it would suppress regeneration on the next run - leaving + # the stored secret permanently stale. Roll the new secret back off the app registration so + # state stays consistent and regeneration is retried on the next run. + Write-LogMessage -API 'Update Tokens' -message "Failed to store new application secret for $AppId. Rolling back the generated secret, see Log Data for details. Will try again in 7 days." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + try { + New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($AppRegistration.id)/removePassword" -Body "{`"keyId`":`"$($AppSecret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + Write-Information "Rolled back unstored application secret with keyId $($AppSecret.keyId)." + } catch { + Write-LogMessage -API 'Update Tokens' -message "Failed to roll back unstored application secret with keyId $($AppSecret.keyId) for $AppId, see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + $AppSecret = $null } - Write-LogMessage -API 'Update Tokens' -message "New application secret generated for $AppId. Expiration date: $($AppSecret.endDateTime)." -sev 'INFO' } # Clean up expired application secrets - $ExpiredSecrets = $PasswordCredentials.passwordCredentials | Where-Object { $_.endDateTime -lt (Get-Date).ToUniversalTime() } + $ExpiredSecrets = $PasswordCredentials | Where-Object { $_.endDateTime -lt (Get-Date).ToUniversalTime() } if ($ExpiredSecrets.Count -gt 0) { Write-Information "Found $($ExpiredSecrets.Count) expired application secrets for $AppId. Removing them." foreach ($Secret in $ExpiredSecrets) { try { - New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($PasswordCredentials.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/applications/$($AppRegistration.id)/removePassword" -Body "{`"keyId`":`"$($Secret.keyId)`"}" -NoAuthCheck $true -AsApp $true -ErrorAction Stop Write-Information "Removed expired application secret with keyId $($Secret.keyId)." } catch { Write-LogMessage -API 'Update Tokens' -message "Error removing expired application secret with keyId $($Secret.keyId), see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) @@ -106,6 +122,18 @@ function Start-UpdateTokensTimer { Write-LogMessage -API 'Update Tokens' -message 'Error updating application secret, will try again in 7 days' -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) } + # Create or renew the SAM certificate when missing or within 30 days of expiry + try { + $CertResult = Update-CIPPSAMCertificate -ErrorAction Stop + if ($CertResult.Renewed) { + Write-Information "SAM certificate renewed. Thumbprint: $($CertResult.Thumbprint), expires: $($CertResult.NotAfter), storage mode: $($CertResult.StorageMode)" + } + } catch { + Write-Warning "Error updating SAM certificate $($_.Exception.Message)." + Write-Information ($_.InvocationInfo.PositionMessage) + Write-LogMessage -API 'Update Tokens' -message 'Error updating SAM certificate, will try again in 7 days' -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + # Get new refresh token for each direct added tenant $TenantList = Get-Tenants -IncludeAll | Where-Object { $_.Excluded -eq $false -and $_.delegatedPrivilegeStatus -eq 'directTenant' } if ($TenantList.Count -eq 0) { diff --git a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UserSyncTimer.ps1 b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UserSyncTimer.ps1 index 435d3a3d4a017..89710f3e8bf37 100644 --- a/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UserSyncTimer.ps1 +++ b/Modules/CIPPCore/Public/Entrypoints/Timer Functions/Start-UserSyncTimer.ps1 @@ -20,8 +20,6 @@ function Start-UserSyncTimer { $ApiName = 'UserSync' try { - Write-LogMessage -API $ApiName -tenant 'none' -message 'Starting user sync from partner tenant.' -sev Info - # Load the role-to-group mappings $AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups $AccessGroups = @(Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'") @@ -69,12 +67,6 @@ function Start-UserSyncTimer { } } - if ($UserRoleMap.Count -eq 0 -and $RoleGroupIds.Count -gt 0) { - Write-LogMessage -API $ApiName -tenant 'none' -message 'No users found in any role groups.' -sev Info - } elseif ($RoleGroupIds.Count -eq 0) { - Write-LogMessage -API $ApiName -tenant 'none' -message 'No Entra groups mapped to roles — will clean up any stale auto-provisioned users.' -sev Info - } - # Load existing allowedUsers table $UsersTable = Get-CippTable -tablename 'allowedUsers' $ExistingUsers = @(Get-CIPPAzDataTableEntity @UsersTable | Where-Object { -not $_.RowKey.StartsWith('_') }) @@ -91,7 +83,6 @@ function Start-UserSyncTimer { } $Now = (Get-Date).ToUniversalTime().ToString('o') - $UpsertCount = 0 $RemoveCount = 0 $EntitiesToUpsert = [System.Collections.Generic.List[object]]::new() $EntitiesToRemove = [System.Collections.Generic.List[object]]::new() @@ -134,7 +125,6 @@ function Start-UserSyncTimer { } $EntitiesToUpsert.Add($Entity) - $UpsertCount++ } # Reconcile existing users that are NOT in any mapped role group @@ -205,8 +195,22 @@ function Start-UserSyncTimer { } } - # Apply upserts first (write canonical rows), then removals (drop duplicates/stale rows) + # Apply upserts first (write canonical rows), then removals (drop duplicates/stale rows). + # Only count an upsert as a change when the role data actually differs from the + # existing canonical row — LastSync alone changing every run isn't a real change. + $ChangedCount = 0 foreach ($Entity in $EntitiesToUpsert) { + $Canonical = $null + if ($ExistingLookup.ContainsKey($Entity.RowKey)) { + $Canonical = $ExistingLookup[$Entity.RowKey] | Where-Object { $_.RowKey -ceq $Entity.RowKey } | Select-Object -First 1 + } + if (-not $Canonical -or + $Canonical.Roles -ne $Entity.Roles -or + $Canonical.AutoRoles -ne $Entity.AutoRoles -or + $Canonical.ManualRoles -ne $Entity.ManualRoles -or + $Canonical.Source -ne $Entity.Source) { + $ChangedCount++ + } Add-CIPPAzDataTableEntity @UsersTable -Entity $Entity -Force } foreach ($Entity in $EntitiesToRemove) { @@ -217,7 +221,10 @@ function Start-UserSyncTimer { # Invalidate CRAFT's in-memory user cache so changes apply try { [Craft.Services.AuthBridge]::InvalidateUsers() } catch {} - Write-LogMessage -API $ApiName -tenant 'none' -message "User sync completed: $UpsertCount users synced, $RemoveCount duplicate/stale rows removed." -sev Info + # Only log when something actually changed — no noise on steady-state runs. + if ($ChangedCount -gt 0 -or $RemoveCount -gt 0) { + Write-LogMessage -API $ApiName -tenant 'none' -message "User sync completed: $ChangedCount users added/updated, $RemoveCount duplicate/stale rows removed." -sev Info + } } catch { $ErrorData = Get-CippException -Exception $_ diff --git a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 index 0c59d0696f0d8..240e77e0aec6d 100644 --- a/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 +++ b/Modules/CIPPCore/Public/Functions/Get-CIPPTenantAlignment.ps1 @@ -228,7 +228,10 @@ function Get-CIPPTenantAlignment { $TagValue = if ($Tag.value) { $Tag.value } else { $Tag } $TagTemplate = if ($TagValue -and $TemplatesByPackage.ContainsKey($TagValue)) { $TemplatesByPackage[$TagValue] } else { @() } $TagTemplate | ForEach-Object { - $TagStandardId = "standards.IntuneTemplate.$($_.GUID)" + # RowKey, not the GUID column: the standards engine deploys tag members with + # TemplateList.value = RowKey and writes the compare row under that id, so the + # expected id must match it. The GUID column can be missing or stale. + $TagStandardId = "standards.IntuneTemplate.$($_.RowKey)" [PSCustomObject]@{ StandardId = $TagStandardId ReportingEnabled = $IntuneReportingEnabled @@ -260,7 +263,9 @@ function Get-CIPPTenantAlignment { $TagValue = if ($Tag.value) { $Tag.value } else { $Tag } $TagTemplate = if ($CATemplatesByPackage.ContainsKey($TagValue)) { $CATemplatesByPackage[$TagValue] } else { @() } $TagTemplate | ForEach-Object { - $TagStandardId = "standards.ConditionalAccessTemplate.$($_.GUID)" + # RowKey, not the GUID column - must match the id the standards engine + # deploys with and writes the compare row under (see Intune block above) + $TagStandardId = "standards.ConditionalAccessTemplate.$($_.RowKey)" [PSCustomObject]@{ StandardId = $TagStandardId ReportingEnabled = $CAReportingEnabled @@ -270,6 +275,21 @@ function Get-CIPPTenantAlignment { } } } + # Handle Reusable Settings templates — TemplateList is multi-select, one key per template id + elseif ($StandardKey -eq 'ReusableSettingsTemplate' -and $StandardConfig) { + foreach ($RSTemplate in @($StandardConfig)) { + $RSActions = if ($RSTemplate.action) { $RSTemplate.action } else { @() } + $RSReportingEnabled = ($RSActions | Where-Object { $_.value -and ($_.value.ToLower() -eq 'report' -or $_.value.ToLower() -eq 'remediate') }).Count -gt 0 + foreach ($RSTemplateId in @($RSTemplate.TemplateList.value)) { + if ($RSTemplateId) { + [PSCustomObject]@{ + StandardId = "standards.ReusableSettingsTemplate.$RSTemplateId" + ReportingEnabled = $RSReportingEnabled + } + } + } + } + } # Handle QuarantineTemplate — each policy is keyed by hex-encoded display name elseif ($StandardKey -eq 'QuarantineTemplate' -and $StandardConfig -is [array]) { foreach ($QTemplate in $StandardConfig) { diff --git a/Modules/CIPPCore/Public/Functions/Sync-CippContainerUpdateState.ps1 b/Modules/CIPPCore/Public/Functions/Sync-CippContainerUpdateState.ps1 new file mode 100644 index 0000000000000..83a4f1b274874 --- /dev/null +++ b/Modules/CIPPCore/Public/Functions/Sync-CippContainerUpdateState.ps1 @@ -0,0 +1,70 @@ +function Sync-CippContainerUpdateState { + <# + .SYNOPSIS + Resolve container update settings and reconcile the stored check result with the running build. + + .DESCRIPTION + Returns the effective container update settings. Fields that have never been saved resolve + to the defaults: auto-restart enabled, check every hour, preferred time 23:00. Explicitly + saved values are respected — including CheckInterval '0' (disabled) and a CheckTime saved + as an empty string, which means "no preferred time"; only a missing field falls back to + the default. Both the Status endpoint and the update-check timer consume this, so the + defaults apply identically to both. + + The ContainerUpdateSettings table is only written when an update check runs, so after a + restart that applied an update the table keeps reporting the previous build's state — + "update available" with the old running version — until the next check. This compares the + stored result against the running APP_VERSION/IMAGE_TAG and clears or recomputes the flag + locally, without a registry call. + #> + [CmdletBinding()] + param() + + $SettingsTable = Get-CippTable -tablename 'ContainerUpdateSettings' + $Settings = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 + + # Effective schedule settings — defaults apply only to never-saved fields + $AutoUpdate = if ([string]::IsNullOrWhiteSpace([string]$Settings.AutoUpdate)) { 'true' } else { [string]$Settings.AutoUpdate } + $CheckInterval = if ([string]::IsNullOrWhiteSpace([string]$Settings.CheckInterval)) { '1h' } else { [string]$Settings.CheckInterval } + $CheckTime = if ($null -eq $Settings.CheckTime) { '23' } else { [string]$Settings.CheckTime } + + $RunningVersion = $env:APP_VERSION + $StoredRunning = [string]($Settings.RunningVersion ?? '') + $StoredRemote = [string]($Settings.RemoteVersion ?? '') + $CheckedTag = [string]($Settings.CheckedTag ?? '') + $UpdateAvailable = [string]($Settings.UpdateAvailable ?? 'false') + + $NeedsWrite = $false + if ($Settings -and $RunningVersion -and $StoredRunning -and $StoredRunning -ne $RunningVersion) { + # The container restarted onto a different build since the last check. + $RunningTag = $env:IMAGE_TAG + if ($CheckedTag -and $RunningTag -and $CheckedTag -ne $RunningTag) { + # The last check ran against a different channel tag — its result no longer applies. + $UpdateAvailable = 'False' + } else { + $UpdateAvailable = [string][bool]($StoredRemote -and $StoredRemote -ne $RunningVersion) + } + Write-Information "Container update state reconciled: running build changed '$StoredRunning' -> '$RunningVersion', UpdateAvailable=$UpdateAvailable" + $StoredRunning = $RunningVersion + $NeedsWrite = $true + } + + $Entity = @{ + PartitionKey = 'Settings' + RowKey = 'UpdateConfig' + AutoUpdate = $AutoUpdate + CheckInterval = $CheckInterval + CheckTime = $CheckTime + LastCheck = [string]($Settings.LastCheck ?? '') + UpdateAvailable = $UpdateAvailable + RunningVersion = $StoredRunning + RemoteVersion = $StoredRemote + RemoteDigest = [string]($Settings.RemoteDigest ?? '') + RemoteBuildDate = [string]($Settings.RemoteBuildDate ?? '') + CheckedTag = $CheckedTag + } + if ($NeedsWrite) { + Add-CIPPAzDataTableEntity @SettingsTable -Entity $Entity -Force | Out-Null + } + return [pscustomobject]$Entity +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAppApprovalPermissions.ps1 b/Modules/CIPPCore/Public/Get-CIPPAppApprovalPermissions.ps1 new file mode 100644 index 0000000000000..9de4c53e6ea93 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPAppApprovalPermissions.ps1 @@ -0,0 +1,51 @@ +function Get-CIPPAppApprovalPermissions { + <# + .SYNOPSIS + Resolves the effective permissions for an App Approval template. + .DESCRIPTION + App Approval templates persist a copy of the permission set at the time the template was saved. + That copy goes stale the moment the linked permission set is edited, so when a template links to + a permission set the set is treated as the source of truth. Templates without a PermissionSetId + (older or hand-built ones) fall back to the copy stored on the template. + .PARAMETER TemplateId + RowKey of the AppApprovalTemplate to resolve. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TemplateId + ) + + $TemplateTable = Get-CIPPTable -TableName 'templates' + $Filter = "RowKey eq '$TemplateId' and PartitionKey eq 'AppApprovalTemplate'" + $Template = (Get-CIPPAzDataTableEntity @TemplateTable -Filter $Filter).JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + + if (!$Template) { + Write-Information "App approval template $TemplateId not found" + return $null + } + + $Permissions = $Template.Permissions + + if ($Template.PermissionSetId) { + $PermissionsTable = Get-CIPPTable -TableName 'AppPermissions' + $SetFilter = "PartitionKey eq 'Templates' and RowKey eq '$($Template.PermissionSetId)'" + $PermissionSet = Get-CIPPAzDataTableEntity @PermissionsTable -Filter $SetFilter + + if ($PermissionSet.Permissions) { + $SetPermissions = $PermissionSet.Permissions | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($SetPermissions) { + $Permissions = $SetPermissions + } else { + Write-Information "Permission set $($Template.PermissionSetId) for template $TemplateId could not be parsed, falling back to the permissions stored on the template" + } + } else { + Write-Information "Permission set $($Template.PermissionSetId) for template $TemplateId not found, falling back to the permissions stored on the template" + } + } + + return [PSCustomObject]@{ + ApplicationId = $Template.AppId + Permissions = $Permissions + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 index cc70d3e0a5b5e..8a0f581f748c2 100644 --- a/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPAuthentication.ps1 @@ -8,7 +8,8 @@ function Get-CIPPAuthentication { $Variables = @('ApplicationID', 'ApplicationSecret', 'TenantID', 'RefreshToken') try { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $IsDevMode = $env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true' + if ($IsDevMode) { $Table = Get-CIPPTable -tablename 'DevSecrets' $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" if (!$Secret) { @@ -21,12 +22,91 @@ function Get-CIPPAuthentication { } Write-Host "Got secrets from dev storage. ApplicationID: $env:ApplicationID" } else { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName $Variables | ForEach-Object { Set-Item -Path env:$_ -Value (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $_ -AsPlainText -ErrorAction Stop) -Force } } + # TenantID must be the tenant GUID: a domain name (contoso.onmicrosoft.com) + # works for token requests but breaks API integrations that compare or store + # tenant ids. Resolve a domain to its GUID via the unauthenticated OpenID + # metadata endpoint. Skip the deployment template's placeholder value — + # fresh deployments hold 'tenantId' until the setup wizard writes real + # secrets (same placeholder set as Initialize-CIPPAuth). + $GuidPattern = '^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$' + $PlaceholderPattern = '^(LongApplicationId|AppSecret|RefreshToken|tenantId)$' + if ($env:TenantID -and $env:TenantID -notmatch $GuidPattern -and $env:TenantID -notmatch $PlaceholderPattern) { + $StoredTenantID = $env:TenantID + try { + $OpenIdConfig = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$StoredTenantID/v2.0/.well-known/openid-configuration" -ErrorAction Stop + $ResolvedTenantID = ($OpenIdConfig.issuer -split '/')[3] + if ($ResolvedTenantID -notmatch $GuidPattern) { + throw "OpenID metadata for '$StoredTenantID' did not contain a tenant GUID (issuer: $($OpenIdConfig.issuer))" + } + $env:TenantID = $ResolvedTenantID + Write-LogMessage -message "The TenantID secret is set to domain name '$StoredTenantID' - resolved to tenant GUID $ResolvedTenantID." -Sev 'Warning' -API 'CIPP Authentication' + + # Fix the stored secret so every future load gets the GUID directly. + # Best-effort: this session already has the resolved value. + if ($IsDevMode) { + try { + $Secret | Add-Member -MemberType NoteProperty -Name 'TenantID' -Value $ResolvedTenantID -Force + $null = Add-AzDataTableEntity @Table -Entity $Secret -Force + Write-LogMessage -message "Updated the TenantID in the DevSecrets table from '$StoredTenantID' to tenant GUID $ResolvedTenantID." -Sev 'Info' -API 'CIPP Authentication' + } catch { + Write-LogMessage -message 'Could not update the TenantID in the DevSecrets table - it will be re-resolved on every authentication load.' -Sev 'Warning' -API 'CIPP Authentication' -LogData (Get-CippException -Exception $_) + } + } elseif ($keyvaultname) { + try { + $null = Set-CippKeyVaultSecret -VaultName $keyvaultname -Name 'TenantID' -SecretValue (ConvertTo-SecureString -String $ResolvedTenantID -AsPlainText -Force) -ErrorAction Stop + Write-LogMessage -message "Updated the 'TenantID' Key Vault secret from '$StoredTenantID' to tenant GUID $ResolvedTenantID." -Sev 'Info' -API 'CIPP Authentication' + } catch { + Write-LogMessage -message "Could not update the 'TenantID' Key Vault secret to the tenant GUID - it will be re-resolved on every authentication load until the secret is updated manually." -Sev 'Warning' -API 'CIPP Authentication' -LogData (Get-CippException -Exception $_) + } + } + } catch { + Write-LogMessage -message "The TenantID secret ('$StoredTenantID') is not a GUID and could not be resolved to one. API integrations may misbehave until the 'tenantid' Key Vault secret is set to the tenant GUID." -Sev 'Error' -API 'CIPP Authentication' -LogData (Get-CippException -Exception $_) + } + } + + # Set before certificate handling: Update-CIPPSAMCertificate goes through + # Get-GraphToken, which re-enters this function when SetFromProfile is unset $env:SetFromProfile = $true + + # Preload the SAM certificate PFX alongside the other credentials, provisioning it + # when it does not exist yet. Non-fatal: auth must succeed even when certificate + # handling fails; the weekly token update retries provisioning. + try { + if ($IsDevMode) { + if ($Secret.SAMCertificate) { + $env:SAMCertificate = $Secret.SAMCertificate + } + } else { + try { + $SAMCertificate = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name 'SAMCertificate' -AsPlainText -ErrorAction Stop + if ($SAMCertificate) { + $env:SAMCertificate = $SAMCertificate + } + } catch { + Write-Information "SAM certificate not found in storage: $($_.Exception.Message)" + } + } + + if (-not $env:SAMCertificate -and $env:SAMCertProvisionAttempted -ne 'true') { + # First run on this instance: provision the certificate now, at most once per + # process. The guard also breaks a recursion loop: Update-CIPPSAMCertificate + # calls Get-GraphToken, which re-enters this function when the AppCache + # ApplicationId does not match the environment. + # Set-CIPPSAMCertificate refreshes $env:SAMCertificate on success. + $env:SAMCertProvisionAttempted = 'true' + Write-Information 'No SAM certificate found, provisioning one now' + $CertResult = Update-CIPPSAMCertificate -ErrorAction Stop + Write-LogMessage -message "Provisioned SAM certificate during authentication load. Thumbprint: $($CertResult.Thumbprint), storage mode: $($CertResult.StorageMode)" -Sev 'Info' -API 'CIPP Authentication' + } + } catch { + Write-LogMessage -message 'Could not preload or provision the SAM certificate. It will be retried by the weekly token update.' -Sev 'Warning' -API 'CIPP Authentication' -LogData (Get-CippException -Exception $_) + } + Write-LogMessage -message 'Reloaded authentication data from KeyVault' -Sev 'debug' -API 'CIPP Authentication' return $true diff --git a/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 b/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 index 01def39a8b870..da15f05e62a8b 100644 --- a/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPAzDatatableEntity.ps1 @@ -7,9 +7,11 @@ function Get-CIPPAzDataTableEntity { $First, $Skip, $Sort, - $Count + $Count, + [int]$MaxRetries = 3 ) + $PSBoundParameters['MaxRetries'] = $MaxRetries $Results = Get-AzDataTableEntity @PSBoundParameters $mergedResults = @{} $rootEntities = @{} # Keyed by "$PartitionKey|$RowKey" diff --git a/Modules/CIPPCore/Public/Get-CIPPCVEReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPCVEReport.ps1 new file mode 100644 index 0000000000000..5cc40daccbe68 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPCVEReport.ps1 @@ -0,0 +1,186 @@ +function Get-CIPPCVEReport { + <# + .SYNOPSIS + Generates a CVE report from the CIPP Reporting database + + .DESCRIPTION + Retrieves Defender CVE data for a tenant from the reporting database + Optimized for high-performance cross-referencing and memory efficiency. + + .PARAMETER TenantFilter + The tenant to generate the report for, or 'AllTenants' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + # Retrieve Exceptions from Exception database + $CveExceptionsTable = Get-CIPPTable -TableName 'CveExceptions' + $AllExceptions = Get-CIPPAzDataTableEntity @CveExceptionsTable + $ExceptionsByCve = @{} + + $RawCveData = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefenderCVEs' | Where-Object { $_.RowKey -ne 'DefenderCVEs-Count' } + $AllCachedCves = $RawCveData.Data | ConvertFrom-Json + + # Filter results by Tenant + $RawCveItems = [System.Collections.Generic.List[object]]::new() + + if ($TenantFilter -eq 'AllTenants') { + # Validate against active tenants to ensure we don't return orphaned data + $TenantList = Get-Tenants -IncludeErrors + foreach ($Item in $AllCachedCves) { + if ($TenantList.defaultDomainName -contains $Item.customerId) { + [void]$RawCveItems.Add($Item) + } + } + } + else { + $TenantList = Get-Tenants -TenantFilter $TenantFilter + $RawCveItems.AddRange(@($AllCachedCves)) + } + + if ($RawCveItems.Count -eq 0) { + return @() + } + + # Build filtered exception items + foreach ($Ex in $AllExceptions) { + if ($TenantList.defaultDomainName -contains $Ex.customerId -or $Ex.customerId -eq 'ALL') { + if (-not $ExceptionsByCve.ContainsKey($Ex.cveId)) { + $ExceptionsByCve[$Ex.cveId] = [System.Collections.Generic.List[object]]::new() + } + + [void]$ExceptionsByCve[$Ex.cveId].Add([PSCustomObject]@{ + cveId = $Ex.cveId + customerId = $Ex.customerId + exceptionType = $Ex.exceptionType + exceptionSource = $Ex.exceptionSource + exceptionComment = $Ex.exceptionComment + exceptionCreatedBy = $Ex.exceptionCreatedBy + exceptionDate = $Ex.exceptionReadableDate + exceptionExpiry = $Ex.exceptionExpiry + }) + } + } + + # Process raw CVE items + $CveMasterTable = @{} + + foreach ($Item in $RawCveItems) { + $CveId = $Item.PartitionKey + + if (-not $CveMasterTable.ContainsKey($CveId)) { + $CveMasterTable[$CveId] = @{ + cveId = $CveId + vulnerabilitySeverityLevel = $Item.vulnerabilitySeverityLevel + exploitabilityLevel = $Item.exploitabilityLevel + softwareName = $Item.softwareName + softwareVendor = $Item.softwareVendor + softwareVersion = $Item.softwareVersion + lastUpdated = $Item.lastUpdated + TotalDeviceCount = 0 + AffectedTenantsList = [System.Collections.Generic.List[object]]::new() + AffectedDevicesList = [System.Collections.Generic.List[object]]::new() + DiskPathList = [System.Collections.Generic.List[object]]::new() + RegistryPathList = [System.Collections.Generic.List[object]]::new() + ExceptionMatchCount = 0 + TotalTenantGroupCount = 0 + ExceptionSources = [System.Collections.Generic.HashSet[string]]::new() + } + } + + $CveGroup = $CveMasterTable[$CveId] + $CveGroup.TotalTenantGroupCount++ + + [void]$CveGroup.AffectedTenantsList.Add(@{ customerId = $Item.customerId }) + + # Unpack the device JSON details from the row + if ($Item.deviceDetailsJson) { + $Devices = ConvertFrom-Json $Item.deviceDetailsJson | Sort-Object -Property deviceName -Unique + foreach ($Dev in $Devices) { + [void]$CveGroup.AffectedDevicesList.Add(@{ deviceName = $Dev.deviceName }) + if ($Dev.registryPaths) { + [void]$CveGroup.RegistryPathList.Add(@{ deviceName = $Dev.deviceName + registryPaths = $Dev.registryPaths + }) + } + if ($Dev.diskPaths) { + [void]$CveGroup.DiskPathList.Add(@{ deviceName = $Dev.deviceName + diskPaths = $Dev.diskPaths + }) + } + $CveGroup.TotalDeviceCount ++ + } + } + } + + # Combine filtered results + $SortedCves = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($CveKey in $CveMasterTable.Keys) { + $Target = $CveMasterTable[$CveKey] + $ExceptionStatus = 'None' + $HasException = $false + $Exceptions = @{} + $ExceptionType = '' + $ExceptionComment = '' + $ExceptionCreatedBy = '' + $ExceptionDate = '' + $ExceptionExpiry = '' + + if ($ExceptionsByCve.ContainsKey($CveKey)) { + $Exceptions = @($ExceptionsByCve[$CveKey]) + $HasException = $true + $ExceptionStatus = if ($Exceptions.customerId -contains "ALL") { "All" } else { "Partial" } + $ExceptionType = @{ customerId = $Exceptions.customerId + exceptionType = $Exceptions.exceptionType + } + $ExceptionComment = @{ customerId = $Exceptions.customerId + exceptionComment = $Exceptions.exceptionComment + } + $ExceptionCreatedBy = @{ customerId = $Exceptions.customerId + exceptionCreatedBy = $Exceptions.exceptionCreatedBy + } + $ExceptionDate = @{ customerId = $Exceptions.customerId + exceptionDate = $Exceptions.exceptionDate + } + $ExceptionExpiry = @{ customerId = $Exceptions.customerId + exceptionExpiry = $Exceptions.exceptionExpiry + } + } + + [void]$SortedCves.Add([PSCustomObject]@{ + cveId = $Target.cveId + vulnerabilitySeverityLevel = $Target.vulnerabilitySeverityLevel + exploitabilityLevel = $Target.exploitabilityLevel + softwareName = $Target.softwareName + softwareVendor = $Target.softwareVendor + softwareVersion = $Target.softwareVersion + deviceCount = $Target.TotalDeviceCount + tenantCount = $Target.TotalTenantGroupCount + registryPaths = $Target.RegistryPathList + diskPaths = $Target.DiskPathList + exceptionStatus = $ExceptionStatus + hasException = $HasException + affectedTenants = $Target.AffectedTenantsList + affectedDevices = $Target.AffectedDevicesList + exceptionType = $ExceptionType + exceptionComment = $ExceptionComment + exceptionCreatedBy = $ExceptionCreatedBy + exceptionDate = $ExceptionDate + exceptionExpiry = $ExceptionExpiry + cacheTimeStamp = $Target.lastUpdated + }) + } + + return $SortedCves | Sort-Object -Property cveId + + } + catch { + Write-LogMessage -API 'CVEReport' -tenant $TenantFilter -message "Failed to generate CVE report: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPDlpComplianceFieldList.ps1 b/Modules/CIPPCore/Public/Get-CIPPDlpComplianceFieldList.ps1 index d73119667d103..f3e73e05d5e02 100644 --- a/Modules/CIPPCore/Public/Get-CIPPDlpComplianceFieldList.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPDlpComplianceFieldList.ps1 @@ -32,32 +32,41 @@ function Get-CIPPDlpComplianceFieldList { 'ModernGroupLocation', 'ModernGroupLocationException' ) - # Note: DLP rules have no 'Mode' parameter (that is policy-level). 'Policy' is the parent reference - # added at deploy time; it is not a comparable setting. - $Rule = @( - 'Name', 'Policy', 'Comment', 'Disabled', + # Simple-mode condition/exception parameters, kept as their own list because they are mutually + # exclusive with AdvancedRule on New-/Set-DlpComplianceRule: a rule built with Purview's Advanced + # Rule editor carries its entire condition tree in the single AdvancedRule JSON blob, and sending + # any of these alongside it is rejected (see Resolve-CIPPDlpAdvancedRule). + $RuleConditions = @( 'ContentContainsSensitiveInformation', 'ExceptIfContentContainsSensitiveInformation', - 'ContentPropertyContainsWords', 'BlockAccess', 'BlockAccessScope', - 'NotifyUser', 'NotifyEmailCustomText', 'NotifyEmailCustomSubject', - 'NotifyPolicyTipCustomText', 'GenerateAlert', 'AlertProperties', - 'GenerateIncidentReport', 'IncidentReportContent', - 'AccessScope', 'From', 'FromMemberOf', 'FromAddressContainsWords', - 'FromAddressMatchesPatterns', 'SentTo', 'SentToMemberOf', - 'RecipientDomainIs', 'AnyOfRecipientAddressContainsWords', - 'AnyOfRecipientAddressMatchesPatterns', 'AnyOfRecipientAddressDomainIs', + 'ContentPropertyContainsWords', 'AccessScope', + 'From', 'FromMemberOf', 'FromAddressContainsWords', 'FromAddressMatchesPatterns', + 'SentTo', 'SentToMemberOf', 'RecipientDomainIs', + 'AnyOfRecipientAddressContainsWords', 'AnyOfRecipientAddressMatchesPatterns', + 'AnyOfRecipientAddressDomainIs', 'ExceptIfFrom', 'ExceptIfFromMemberOf', 'ExceptIfFromAddressContainsWords', 'ExceptIfFromAddressMatchesPatterns', - 'AddRecipients', 'BlockMessage', 'GenerateAlertOn', 'IncidentReportTo', - 'ReportSeverityLevel', 'RuleErrorAction', 'ContentExtensionMatchesWords', 'DocumentNameMatchesPatterns', 'DocumentNameMatchesWords', 'DocumentSizeOver', 'ContentCharacterSetContainsWords', 'ContentFileTypeMatches' ) + # Note: DLP rules have no 'Mode' parameter (that is policy-level). 'Policy' is the parent reference + # added at deploy time; it is not a comparable setting. + $Rule = @( + 'Name', 'Policy', 'Comment', 'Disabled', 'AdvancedRule', + 'BlockAccess', 'BlockAccessScope', + 'NotifyUser', 'NotifyEmailCustomText', 'NotifyEmailCustomSubject', + 'NotifyPolicyTipCustomText', 'GenerateAlert', 'AlertProperties', + 'GenerateIncidentReport', 'IncidentReportContent', + 'AddRecipients', 'BlockMessage', 'GenerateAlertOn', 'IncidentReportTo', + 'ReportSeverityLevel', 'RuleErrorAction' + ) + $RuleConditions + return [pscustomobject]@{ - Policy = $Policy - Rule = $Rule - Location = @($Policy | Where-Object { $_ -like '*Location*' }) + Policy = $Policy + Rule = $Rule + RuleConditions = $RuleConditions + Location = @($Policy | Where-Object { $_ -like '*Location*' }) # Valid -Mode input values for New-/Set-DlpCompliancePolicy. Transient/output-only states such as # 'PendingDeletion' are NOT accepted as input and must be dropped before deploy. ValidPolicyModes = @('Enable', 'TestWithNotifications', 'TestWithoutNotifications', 'Disable') diff --git a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 index f877a2a4af800..48fa3e511dfaf 100644 --- a/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPDrift.ps1 @@ -49,13 +49,18 @@ function Get-CIPPDrift { $IntuneTemplatesByGuid = @{} $AllIntuneTemplates = foreach ($RawTemplate in $RawIntuneTemplates) { try { - $JSONData = $RawTemplate.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue - $data = $JSONData.RAWJson | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue + $JSONData = $RawTemplate.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 $RawTemplate.RowKey -Force $IntuneTemplatesByGuid[$RawTemplate.RowKey] = $data + # Built-in templates are seeded with RowKey = '.IntuneTemplate.json'; also index + # by the bare guid so display-name lookups that extract the guid from a standard key hit + if ($RawTemplate.RowKey -match '^([0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})\.' -and -not $IntuneTemplatesByGuid.ContainsKey($Matches[1])) { + $IntuneTemplatesByGuid[$Matches[1]] = $data + } $data } catch { # Skip invalid templates @@ -80,12 +85,32 @@ function Get-CIPPDrift { $data = $RawTemplate.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue $data | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $RawTemplate.RowKey -Force $CATemplatesByGuid[$RawTemplate.RowKey] = $data + # Built-in templates are seeded with RowKey = '.CATemplate.json'; also index + # by the bare guid so display-name lookups that extract the guid from a standard key hit + if ($RawTemplate.RowKey -match '^([0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})\.' -and -not $CATemplatesByGuid.ContainsKey($Matches[1])) { + $CATemplatesByGuid[$Matches[1]] = $data + } $data } catch { # Skip invalid templates } } + # Load reusable settings templates for display name lookup + $RawReusableSettingTemplates = Get-CIPPAzDataTableEntity @IntuneTable -Filter "PartitionKey eq 'IntuneReusableSettingTemplate'" + $ReusableSettingTemplatesByGuid = @{} + foreach ($RawTemplate in $RawReusableSettingTemplates) { + try { + $data = $RawTemplate.JSON | ConvertFrom-Json -Depth 100 -ErrorAction SilentlyContinue + $ReusableSettingTemplatesByGuid[$RawTemplate.RowKey] = [PSCustomObject]@{ + displayName = $data.DisplayName ?? $data.displayName ?? $RawTemplate.RowKey + description = $data.Description ?? $data.description + } + } catch { + # Skip invalid templates + } + } + try { $AlignmentData = Get-CIPPTenantAlignment -TenantFilter $TenantFilter -TemplateId $TemplateId | Where-Object -Property standardType -EQ 'drift' @@ -108,6 +133,13 @@ function Get-CIPPDrift { } $Results = [System.Collections.Generic.List[object]]::new() + # Tracks every StandardName that is still valid (live deviations + standards present in the + # template, whether assigned directly or via a package) so stale tenantDrift rows can be pruned. + $ValidDriftKeys = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + # Policy rows are only pruned when the matching Graph collection succeeded, so a transient + # failure or missing license never wipes accepted/customer-specific statuses. + $IntunePoliciesCollected = $false + $CAPoliciesCollected = $false foreach ($Alignment in $AlignmentData) { # Initialize deviation collections $StandardsDeviations = [System.Collections.Generic.List[object]]::new() @@ -145,6 +177,15 @@ function Get-CIPPDrift { $standardDescription = $Template.description } } + # Handle Reusable Settings templates + if ($ComparisonItem.StandardName -like 'standards.ReusableSettingsTemplate.*') { + $CompareGuid = $ComparisonItem.StandardName.Substring('standards.ReusableSettingsTemplate.'.Length) + if ($CompareGuid -and $ReusableSettingTemplatesByGuid.ContainsKey($CompareGuid)) { + $Template = $ReusableSettingTemplatesByGuid[$CompareGuid] + $displayName = "Reusable Setting - $($Template.displayName)" + $standardDescription = $Template.description + } + } # Handle QuarantineTemplate — suffix is hex-encoded display name, decode it if ($ComparisonItem.StandardName -like 'standards.QuarantineTemplate.*') { $HexEncodedName = $ComparisonItem.StandardName.Substring('standards.QuarantineTemplate.'.Length) @@ -158,6 +199,7 @@ function Get-CIPPDrift { } $reason = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].Reason } $User = if ($ExistingDriftStates.ContainsKey($ComparisonItem.StandardName)) { $ExistingDriftStates[$ComparisonItem.StandardName].User } + $IsLicenseMissing = $ComparisonItem.ComplianceStatus -eq 'License Missing' $StandardsDeviations.Add([PSCustomObject]@{ standardName = $ComparisonItem.StandardName standardDisplayName = $displayName @@ -167,7 +209,8 @@ function Get-CIPPDrift { Status = $Status Reason = $reason lastChangedByUser = $User - LicenseAvailable = $ComparisonItem.LicenseAvailable + ComplianceStatus = $ComparisonItem.ComplianceStatus + LicenseAvailable = if ($IsLicenseMissing) { $false } else { $ComparisonItem.LicenseAvailable } CurrentValue = $ComparisonItem.CurrentValue ExpectedValue = $ComparisonItem.ExpectedValue }) @@ -241,6 +284,7 @@ function Get-CIPPDrift { } } } + $IntunePoliciesCollected = $true } catch { Write-Warning "Failed to get Intune policies: $($_.Exception.Message)" } @@ -257,6 +301,7 @@ function Get-CIPPDrift { ) $CAGraphRequest = New-GraphBulkRequest -Requests $CARequests -tenantid $TenantFilter -asapp $true $TenantCAPolicies = ($CAGraphRequest | Where-Object { $_.id -eq 'policies' }).body.value + $CAPoliciesCollected = $true } catch { Write-Warning "Failed to get Conditional Access policies: $($_.Exception.Message)" $TenantCAPolicies = @() @@ -290,9 +335,9 @@ function Get-CIPPDrift { $CATemplateIds.Add($Template.TemplateList.value) } if ($Template.'TemplateList-Tags') { - $TagValue = if ($Template.'TemplateList-Tags'.value) { $Template.'TemplateList-Tags'.value } else { $null } - if ($TagValue) { - $ResolvedCATagTemplates = if ($CATemplatesByPackage.ContainsKey($TagValue)) { $CATemplatesByPackage[$TagValue] } else { @() } + foreach ($Tag in $Template.'TemplateList-Tags') { + $TagValue = if ($Tag.value) { $Tag.value } else { $Tag } + $ResolvedCATagTemplates = if ($TagValue -and $CATemplatesByPackage.ContainsKey($TagValue)) { $CATemplatesByPackage[$TagValue] } else { @() } foreach ($ResolvedTemplate in $ResolvedCATagTemplates) { if ($ResolvedTemplate.RowKey -and $ResolvedTemplate.RowKey -notin $CATemplateIds) { $CATemplateIds.Add($ResolvedTemplate.RowKey) @@ -332,12 +377,23 @@ function Get-CIPPDrift { $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) { + # Compare displayName-to-displayName and name-to-name (plus the cross pairings, + # since some policy types are captured under one property but deployed under the + # other) but require BOTH sides of each pairing to be non-empty before treating it + # as a match. Most Intune policy types (compliance policies, device configurations, + # group policy configs, etc.) only expose displayName and have no .name property at + # all, so comparing raw .name values directly (as before) compared $null -eq $null, + # which is $true in PowerShell - causing every tenant policy to falsely "match" the + # first template as soon as any template lacked a .name property, suppressing all + # tenant-only deviations. Note: templates always get a .displayName forced onto them + # (see Add-Member above) even for name-only policy types like Settings Catalog + # (deviceManagement/configurationPolicies), so the name-to-name pairing must still be + # compared directly from the raw properties - collapsing to a single "effective name + # preferring displayName" per side would silently break matching for those policies. + if (($TemplatePolicy.displayName -and $TenantPolicy.Policy.displayName -and $TemplatePolicy.displayName -eq $TenantPolicy.Policy.displayName) -or + ($TemplatePolicy.name -and $TenantPolicy.Policy.name -and $TemplatePolicy.name -eq $TenantPolicy.Policy.name) -or + ($TemplatePolicy.displayName -and $TenantPolicy.Policy.name -and $TemplatePolicy.displayName -eq $TenantPolicy.Policy.name) -or + ($TemplatePolicy.name -and $TenantPolicy.Policy.displayName -and $TemplatePolicy.name -eq $TenantPolicy.Policy.displayName)) { $PolicyFound = $true break } @@ -368,6 +424,11 @@ function Get-CIPPDrift { # Check for extra Conditional Access policies not in template foreach ($TenantCAPolicy in $TenantCAPolicies) { + # SharePoint auto-creates '[SharePoint admin center]...' CA policies when unmanaged + # device access is restricted (Set-SPOTenant -ConditionalAccessPolicy, e.g. via the + # unmanagedSync standard). They are system-managed, cannot be templated and come + # back when deleted, so they are never a deviation. + if (([string]$TenantCAPolicy.displayName).StartsWith('[SharePoint admin center]')) { continue } $PolicyFound = $false foreach ($TemplateCAPolicy in $TemplateCATemplates) { @@ -406,6 +467,17 @@ function Get-CIPPDrift { $AllDeviations.AddRange($StandardsDeviations) $AllDeviations.AddRange($PolicyDeviations) + # Record which drift keys are still valid: live deviations and every standard in the + # template (compliant ones keep their row so an accepted status survives re-drift). + foreach ($Deviation in $AllDeviations) { + $KeyName = [string]$Deviation.standardName + if (-not [string]::IsNullOrWhiteSpace($KeyName)) { $null = $ValidDriftKeys.Add($KeyName) } + } + foreach ($ComparisonItem in $Alignment.ComparisonDetails) { + $KeyName = [string]$ComparisonItem.StandardName + if (-not [string]::IsNullOrWhiteSpace($KeyName)) { $null = $ValidDriftKeys.Add($KeyName) } + } + # Persist newly detected deviations to the tenantDrift table so the summary page can count them $NewDriftEntities = [System.Collections.Generic.List[object]]::new() foreach ($Deviation in $AllDeviations) { @@ -438,14 +510,19 @@ function Get-CIPPDrift { } } + # License-missing standards are excluded from the deviation buckets so the counts match + # the alignment score, which tracks them separately; they surface via licenseMissingDeviations. + $LicenseMissingDeviations = $AllDeviations | Where-Object { $_.ComplianceStatus -eq 'License Missing' } + $CountableDeviations = $AllDeviations | Where-Object { $_.ComplianceStatus -ne 'License Missing' } + # 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' } + $NewDeviations = $CountableDeviations | Where-Object { $_.Status -eq 'New' } + $AcceptedDeviations = $CountableDeviations | Where-Object { $_.Status -eq 'Accepted' } + $DeniedDeviations = $CountableDeviations | Where-Object { $_.Status -like 'Denied*' } + $CustomerSpecificDeviations = $CountableDeviations | Where-Object { $_.Status -eq 'CustomerSpecific' } # Current deviations are New + Denied (not accepted or customer specific) - $CurrentDeviations = $AllDeviations | Where-Object { $_.Status -in @('New', 'Denied') } + $CurrentDeviations = $CountableDeviations | Where-Object { $_.Status -in @('New', 'Denied') } $Result = [PSCustomObject]@{ tenantFilter = $TenantFilter @@ -457,11 +534,13 @@ function Get-CIPPDrift { deniedDeviationsCount = $DeniedDeviations.Count customerSpecificDeviationsCount = $CustomerSpecificDeviations.Count newDeviationsCount = $NewDeviations.Count + licenseMissingDeviationsCount = $LicenseMissingDeviations.Count alignedCount = $Alignment.CompliantStandards - $AcceptedDeviations.Count - $CustomerSpecificDeviations.Count currentDeviations = @($CurrentDeviations) acceptedDeviations = @($AcceptedDeviations) customerSpecificDeviations = @($CustomerSpecificDeviations) deniedDeviations = @($DeniedDeviations) + licenseMissingDeviations = @($LicenseMissingDeviations) allDeviations = @($AllDeviations) latestDataCollection = $Alignment.LatestDataCollection driftSettings = $AlignmentData @@ -470,6 +549,32 @@ function Get-CIPPDrift { $Results.Add($Result) } + # Prune stale tenantDrift rows so the alignment score only counts real deviations. + # A row goes stale when its policy was deleted/recreated in the tenant, or its template was + # removed from the drift standard (directly or via a package). Policy rows require a + # successful Graph collection this run before they are eligible for deletion. + $StaleDriftEntities = foreach ($Entity in $DriftEntities) { + $EntityName = [string]$Entity.StandardName + if ([string]::IsNullOrWhiteSpace($EntityName) -or $ValidDriftKeys.Contains($EntityName)) { continue } + if ($EntityName -like 'IntuneTemplates.*') { + if ($IntunePoliciesCollected) { $Entity } + } elseif ($EntityName -like 'ConditionalAccessTemplates.*') { + if ($CAPoliciesCollected) { $Entity } + } else { + $Entity + } + } + if ($StaleDriftEntities) { + try { + foreach ($StaleEntity in $StaleDriftEntities) { + Remove-AzDataTableEntity @DriftTable -Entity $StaleEntity + } + Write-Information "Removed $(@($StaleDriftEntities).Count) stale drift deviation entries for $TenantFilter" + } catch { + Write-Warning "Failed to remove stale drift deviation entries for $($TenantFilter): $($_.Exception.Message)" + } + } + return @($Results) } catch { diff --git a/Modules/CIPPCore/Public/Get-CIPPIntuneApplicationReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPIntuneApplicationReport.ps1 index a53717c8bb595..d6f53a245e65e 100644 --- a/Modules/CIPPCore/Public/Get-CIPPIntuneApplicationReport.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPIntuneApplicationReport.ps1 @@ -65,7 +65,7 @@ function Get-CIPPIntuneApplicationReport { } '#microsoft.graph.exclusionGroupAssignmentTarget' { $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName - if ($groupName) { $AppExclude.Add($groupName) } + if ($groupName) { $AppExclude.Add("$groupName$intentSuffix") } } } } diff --git a/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 index 9d9143b631512..dfa8a52eec933 100644 --- a/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPIntunePolicy.ps1 @@ -429,6 +429,55 @@ function Get-CIPPIntunePolicy { return $policies } } + 'Intents' { + $PlatformType = 'deviceManagement' + $TemplateTypeURL = 'intents' + + if ($DisplayName) { + $policies = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $tenantFilter + $policy = $policies | Where-Object -Property displayName -EQ $DisplayName | Sort-Object -Property lastModifiedDateTime -Descending | Select-Object -First 1 + if ($policy) { + $settings = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/settings" -tenantid $tenantFilter + $policyDetails = [PSCustomObject]@{ + displayName = $policy.displayName + description = $policy.description + templateId = $policy.templateId + settings = @($settings) + } + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policy + } elseif ($PolicyId) { + $policy = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')" -tenantid $tenantFilter + if ($policy) { + $settings = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$PolicyId')/settings" -tenantid $tenantFilter + $policyDetails = [PSCustomObject]@{ + displayName = $policy.displayName + description = $policy.description + templateId = $policy.templateId + settings = @($settings) + } + $policyJson = ConvertTo-Json -InputObject $policyDetails -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) { + $settings = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL('$($policy.id)')/settings" -tenantid $tenantFilter + $policyDetails = [PSCustomObject]@{ + displayName = $policy.displayName + description = $policy.description + templateId = $policy.templateId + settings = @($settings) + } + $policyJson = ConvertTo-Json -InputObject $policyDetails -Depth 100 -Compress + $policy | Add-Member -MemberType NoteProperty -Name 'cippconfiguration' -Value $policyJson -Force + } + return $policies + } + } default { return $null } diff --git a/Modules/CIPPCore/Public/Get-CIPPIntuneTemplateType.ps1 b/Modules/CIPPCore/Public/Get-CIPPIntuneTemplateType.ps1 new file mode 100644 index 0000000000000..43d8fb1a40f6c --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPIntuneTemplateType.ps1 @@ -0,0 +1,46 @@ +function Get-CIPPIntuneTemplateType { + <# + .SYNOPSIS + Resolves the policy type of a stored Intune template. + + .DESCRIPTION + Returns the template's recorded Type when it has one. Templates imported before Type was + stored have none, so the type is inferred from the shape of the raw policy payload instead. + Returns $null when the type is neither recorded nor inferable, which means the template + needs re-importing. + + .PARAMETER Type + The template's recorded Type, if any. + + .PARAMETER RawJson + The raw policy JSON to infer from when Type is empty. + + .EXAMPLE + Get-CIPPIntuneTemplateType -Type $Template.Type -RawJson $Template.RAWJson + #> + [CmdletBinding()] + [OutputType([string])] + param( + [string]$Type, + $RawJson + ) + + if ($Type) { + return $Type + } + + try { + $ParsedRaw = $RawJson | ConvertFrom-Json -ErrorAction SilentlyContinue + $ODataType = $ParsedRaw.'@odata.type' + + if ($null -ne $ParsedRaw.settings -and $null -ne $ParsedRaw.technologies) { return 'Catalog' } + if ($null -ne $ParsedRaw.scheduledActionsForRule -or $ODataType -match 'CompliancePolicy') { return 'deviceCompliancePolicies' } + if ($ODataType -match 'windowsDriverUpdateProfile') { return 'windowsDriverUpdateProfiles' } + if ($ODataType -match 'ManagedApp|managedAppProtection') { return 'AppProtection' } + if ($ODataType -match 'deviceConfiguration|#microsoft\.graph\.\w+Configuration$') { return 'Device' } + } catch { + return $null + } + + return $null +} diff --git a/Modules/CIPPCore/Public/Get-CIPPMSPAppInstallCommand.ps1 b/Modules/CIPPCore/Public/Get-CIPPMSPAppInstallCommand.ps1 new file mode 100644 index 0000000000000..86da343f15a58 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPMSPAppInstallCommand.ps1 @@ -0,0 +1,113 @@ +function Get-CIPPMSPAppInstallCommand { + <# + .SYNOPSIS + Builds the install/uninstall command lines for an MSP RMM app for a single tenant. + .DESCRIPTION + Shared by Invoke-AddMSPApp (manual/queue deploy) and New-CIPPIntuneAppDeployment + (the 'Deploy Intune Application Template' standard). Each parameter value may be: + - a flat string, optionally containing %CIPP variables% that resolve per-tenant + (Application Template shape), or + - an object keyed by tenant customerId (legacy per-tenant deploy shape). + Values are resolved for the tenant, run through Get-CIPPTextReplacement so any + %variables% are substituted with the tenant's value, then escaped with + ConvertTo-CIPPSafePwshArg before being placed on the command line. + .PARAMETER RmmName + The MSP tool identifier (datto, syncro, Huntress, automate, cwcommand, ninja, NCentral). + .PARAMETER Params + The params object from the app config / request body. + .PARAMETER Tenant + The tenant object, requires customerId and defaultDomainName. + .PARAMETER PackageName + Package name for ninja/NCentral installs (not stored under params). + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$RmmName, + + $Params, + + [Parameter(Mandatory = $true)] + $Tenant, + + [string]$PackageName + ) + + $InstallParams = [PSCustomObject]$Params + + # Resolve a raw parameter value for this tenant: pick the per-tenant keyed value when the + # value is an object (legacy shape), otherwise use it as-is (template shape), then replace + # any %CIPP variables% using the tenant context. Returns the raw (unescaped) string. + function Resolve-MSPValue { + param($Value) + if ($null -eq $Value) { return '' } + if ($Value -is [string]) { + $Resolved = $Value + } elseif ($Value -is [System.Collections.IDictionary]) { + $Resolved = [string]$Value[$Tenant.customerId] + } elseif ($Value -is [pscustomobject]) { + $Resolved = [string]$Value.$($Tenant.customerId) + } else { + $Resolved = [string]$Value + } + if ($Resolved -match '%') { + $Resolved = Get-CIPPTextReplacement -TenantFilter $Tenant.defaultDomainName -Text $Resolved + } + return $Resolved + } + + $DetectionScriptContent = $null + + switch ($RmmName) { + 'datto' { + $DattoUrl = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.DattoURL) + $DattoGuid = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.DattoGUID) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $DattoUrl -GUID $DattoGuid" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'ninja' { + $NinjaPackage = ConvertTo-CIPPSafePwshArg -Value ([string]$PackageName) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $NinjaPackage" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'Huntress' { + $HuntressOrgKey = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.Orgkey) + $HuntressAccountKey = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.AccountKey) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -OrgKey $HuntressOrgKey -acctkey $HuntressAccountKey" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Uninstall' + } + 'syncro' { + $SyncroUrl = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.ClientURL) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $SyncroUrl" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'NCentral' { + $NCentralPackage = ConvertTo-CIPPSafePwshArg -Value ([string]$PackageName) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $NCentralPackage" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + 'automate' { + $ServerRaw = Resolve-MSPValue $InstallParams.Server + $AutomateServer = ConvertTo-CIPPSafePwshArg -Value $ServerRaw + $AutomateInstallerToken = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.InstallerToken) + $AutomateLocationId = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.LocationID) + $installCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Server $AutomateServer -InstallerToken $AutomateInstallerToken -LocationID $AutomateLocationId" + $uninstallCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1 -Server $AutomateServer" + $DetectionScriptContent = (Get-Content 'AddMSPApp\automate.detection.ps1' -Raw) -replace '##SERVER##', $ServerRaw + } + 'cwcommand' { + $CwClientUrl = ConvertTo-CIPPSafePwshArg -Value (Resolve-MSPValue $InstallParams.ClientURL) + $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Url $CwClientUrl" + $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' + } + default { + throw "Unknown MSP app type '$RmmName'" + } + } + + return [PSCustomObject]@{ + InstallCommandLine = $installCommandLine + UninstallCommandLine = $uninstallCommandLine + DetectionScriptContent = $DetectionScriptContent + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPOfficeAppBody.ps1 b/Modules/CIPPCore/Public/Get-CIPPOfficeAppBody.ps1 new file mode 100644 index 0000000000000..0939c2fa9ce77 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPOfficeAppBody.ps1 @@ -0,0 +1,119 @@ +function Get-CIPPOfficeAppBody { + <# + .SYNOPSIS + Builds the Graph officeSuiteApp body for a Microsoft 365 Apps deployment. + .DESCRIPTION + Shared by Invoke-AddOfficeApp (manual and template deploys) and New-CIPPIntuneAppDeployment + (queue and standards deploys) so every path produces an identical body. Handles the three + shapes an Office config can take: + 1. A pre-built IntuneBody, stored when a template is saved from an already deployed app. + 2. A custom Office configuration XML. + 3. The individual fields from the Office app form / application template wizard. + .PARAMETER Config + The Office app configuration. Either the request body from the Office app form or the + config stored in an application template. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $Config + ) + + $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' + } + + # A template saved from an existing app carries the full body: reuse it, minus the read-only + # properties Graph rejects on create. + if ($Config.IntuneBody) { + $IntuneBody = $Config.IntuneBody + if ($IntuneBody -is [string]) { + $IntuneBody = $IntuneBody | ConvertFrom-Json -Depth 100 + } else { + # Copy first so we never strip properties off the caller's stored template config. + $IntuneBody = $IntuneBody | ConvertTo-Json -Depth 100 | ConvertFrom-Json -Depth 100 + } + + $ReadOnlyProps = @( + 'id', 'createdDateTime', 'lastModifiedDateTime', 'uploadState', 'publishingState', + 'isAssigned', 'roleScopeTagIds', 'dependentAppCount', 'supersedingAppCount', + 'supersededAppCount', 'committedContentVersion', 'fileName', 'size', + 'assignments@odata.context', 'assignments', 'AppAssignment', 'AppExclude' + ) + foreach ($Prop in $ReadOnlyProps) { + if ($IntuneBody.PSObject.Properties[$Prop]) { + $IntuneBody.PSObject.Properties.Remove($Prop) + } + } + return $IntuneBody + } + + if ($Config.useCustomXml -and $Config.customXml) { + return [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($Config.customXml)) + 'largeIcon' = $LargeIcon + } + } + + # Standard configuration built from the individual form fields. Multi-select fields arrive as + # {label, value} objects from the frontend, but templates and API callers may send plain + # strings, so accept both. + $ExcludedAppNames = @($Config.excludedApps | ForEach-Object { + if ($_ -is [string]) { $_ } else { $_.value } + } | Where-Object { $_ }) + $Languages = @($Config.languages | ForEach-Object { + if ($_ -is [string]) { $_ } else { $_.value } + } | Where-Object { $_ }) + $UpdateChannel = if ($Config.updateChannel.value) { $Config.updateChannel.value } else { $Config.updateChannel } + + $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 $ExcludedAppNames) { + $ExcludedApps.$ExcludedApp = $true + } + + return [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]$Config.AcceptLicense + 'excludedApps' = $ExcludedApps + 'officePlatformArchitecture' = if ($Config.arch) { 'x64' } else { 'x86' } + 'officeSuiteAppDefaultFileFormat' = 'OfficeOpenXMLFormat' + 'localesToInstall' = $Languages + 'shouldUninstallOlderVersionsOfOffice' = [bool]$Config.RemoveVersions + 'updateChannel' = $UpdateChannel + 'useSharedComputerActivation' = [bool]$Config.SharedComputerActivation + 'productIds' = @('o365ProPlusRetail') + 'largeIcon' = $LargeIcon + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSAMCertificate.ps1 b/Modules/CIPPCore/Public/Get-CIPPSAMCertificate.ps1 new file mode 100644 index 0000000000000..776d81380351e --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSAMCertificate.ps1 @@ -0,0 +1,98 @@ +function Get-CIPPSAMCertificate { + <# + .SYNOPSIS + Retrieves the SAM certificate from Key Vault or the DevSecrets table + + .DESCRIPTION + Loads the stored SAM certificate PFX and materializes it as an X509Certificate2 with + its private key, for use with Get-GraphTokenFromCert. The read path is storage-mode + agnostic: a Key Vault certificate's private key is exposed through the secrets endpoint + under the same name, so a single secret GET covers both the certificate and the + secret-fallback storage modes. Read-only - never creates or renews a certificate. + + .PARAMETER Name + Storage name of the certificate. Defaults to SAMCertificate. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives via Get-CippKeyVaultName. + + .PARAMETER SkipCache + Bypass the in-memory certificate cache and fetch from storage. + + .EXAMPLE + $SAMCert = Get-CIPPSAMCertificate + Get-GraphTokenFromCert -TenantId $env:TenantID -AppId $env:ApplicationID -Certificate $SAMCert.Certificate + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string]$Name = 'SAMCertificate', + + [Parameter(Mandatory = $false)] + [string]$VaultName, + + [switch]$SkipCache + ) + + # Serve from cache when fresh (1 hour TTL) + if (-not $SkipCache -and $script:SAMCertificateCache.$Name -and $script:SAMCertificateCache.$Name.FetchedAt -gt (Get-Date).AddHours(-1)) { + return $script:SAMCertificateCache.$Name.Result + } + + if (-not $SkipCache -and $Name -eq 'SAMCertificate' -and $env:SAMCertificate) { + # Preloaded by Get-CIPPAuthentication at startup (and refreshed by Set-CIPPSAMCertificate) + $PfxBase64 = $env:SAMCertificate + } elseif ($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'" + $PfxBase64 = $Secret.$Name + } else { + try { + $PfxBase64 = Get-CippKeyVaultSecret -VaultName $VaultName -Name $Name -AsPlainText -ErrorAction Stop + } catch { + # A missing secret means the certificate has not been created yet (bootstrap pending) + if ($_.Exception.Message -match 'SecretNotFound|404') { + return $null + } + throw + } + } + + if ([string]::IsNullOrEmpty($PfxBase64)) { + return $null + } + + $PfxBytes = [Convert]::FromBase64String($PfxBase64) + try { + # Ephemeral avoids writing key files to disk on the Linux consumption plan + $Certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new( + $PfxBytes, + [string]::Empty, + [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::EphemeralKeySet + ) + } catch { + # EphemeralKeySet is not supported on all platforms (e.g. macOS local dev) + $Certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new( + $PfxBytes, + [string]::Empty, + [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable + ) + } + + $Result = [PSCustomObject]@{ + Certificate = $Certificate + Thumbprint = $Certificate.Thumbprint + NotBefore = $Certificate.NotBefore.ToUniversalTime() + NotAfter = $Certificate.NotAfter.ToUniversalTime() + } + + if (-not $script:SAMCertificateCache) { + $script:SAMCertificateCache = [HashTable]::Synchronized(@{}) + } + $script:SAMCertificateCache.$Name = @{ + Result = $Result + FetchedAt = Get-Date + } + + return $Result +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSPODeletedSites.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPODeletedSites.ps1 new file mode 100644 index 0000000000000..696adeb0ec1d3 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSPODeletedSites.ps1 @@ -0,0 +1,60 @@ +function Get-CIPPSPODeletedSites { + <# + .SYNOPSIS + List deleted SharePoint sites (tenant recycle bin) via CSOM + + .DESCRIPTION + Retrieves the deleted site collections still restorable from the SharePoint tenant recycle + bin using the CSOM GetDeletedSitePropertiesFromSharePoint method, following the same paging + pattern as Get-CIPPSPOSite. + + .PARAMETER TenantFilter + Tenant to query + + .EXAMPLE + Get-CIPPSPODeletedSites -TenantFilter 'contoso.onmicrosoft.com' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $AdminUrl = $SharePointInfo.AdminUrl + $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + + $AllSites = [System.Collections.Generic.List[object]]::new() + $StartIndex = $null + + do { + $StartIndexParameter = if ($null -ne $StartIndex) { + "$([System.Security.SecurityElement]::Escape($StartIndex))" + } else { + '' + } + $XML = @" +$StartIndexParameter +"@ + + $Results = New-GraphPostRequest -scope "$AdminUrl/.default" -tenantid $TenantFilter -Uri "$AdminUrl/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + + $CsomError = ($Results | Where-Object { $_.ErrorInfo } | Select-Object -First 1).ErrorInfo.ErrorMessage + if ($CsomError) { throw $CsomError } + + $SiteCollection = $Results | Where-Object { $_._Child_Items_ } + if ($SiteCollection) { + foreach ($Site in $SiteCollection._Child_Items_) { + [void]$AllSites.Add($Site) + } + $StartIndex = $SiteCollection.NextStartIndexFromSharePoint + } else { + $StartIndex = $null + } + } while ($StartIndex) + + return $AllSites +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSPOExternalUsers.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPOExternalUsers.ps1 new file mode 100644 index 0000000000000..522f788fed179 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSPOExternalUsers.ps1 @@ -0,0 +1,56 @@ +function Get-CIPPSPOExternalUsers { + <# + .SYNOPSIS + List the SharePoint tenant external users store via CSOM + + .DESCRIPTION + Enumerates every external user SharePoint Online knows about (the store behind + Get-SPOExternalUser), using the CSOM Office365Tenant.GetExternalUsers method against the + admin endpoint. This includes legacy email-authenticated guests (urn:spo:guest) that have + no backing Entra object, and B2B guests whose Entra user may since have been deleted. + + .PARAMETER TenantFilter + Tenant to query + + .EXAMPLE + Get-CIPPSPOExternalUsers -TenantFilter 'contoso.onmicrosoft.com' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $AdminUrl = $SharePointInfo.AdminUrl + $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + + $AllUsers = [System.Collections.Generic.List[object]]::new() + $Position = 0 + $PageSize = 50 + + do { + # Office365Tenant (TenantManagement) constructor -> GetExternalUsers(position, pageSize, filter, sortOrder) + $XML = @" +$Position$PageSize0 +"@ + + $Results = New-GraphPostRequest -scope "$AdminUrl/.default" -tenantid $TenantFilter -Uri "$AdminUrl/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + + $CsomError = ($Results | Where-Object { $_.ErrorInfo } | Select-Object -First 1).ErrorInfo.ErrorMessage + if ($CsomError) { throw $CsomError } + + $ResultObject = $Results | Where-Object { $null -ne $_.TotalUserCount } | Select-Object -First 1 + $Batch = @($ResultObject.ExternalUserCollection._Child_Items_) + foreach ($User in $Batch) { + [void]$AllUsers.Add($User) + } + $Position = $ResultObject.UserCollectionPosition + # Continue while SPO reports more users beyond the current position. + } while ($Batch.Count -eq $PageSize -and $Position -ge 0 -and $AllUsers.Count -lt [int]$ResultObject.TotalUserCount) + + return $AllUsers +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSPOSite.ps1 b/Modules/CIPPCore/Public/Get-CIPPSPOSite.ps1 index 3f4a118c1f9ee..8f35bca98ef3a 100644 --- a/Modules/CIPPCore/Public/Get-CIPPSPOSite.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPSPOSite.ps1 @@ -10,9 +10,16 @@ function Get-CIPPSPOSite { .PARAMETER TenantFilter Tenant to query + .PARAMETER SiteUrl + When provided, fetches the properties of this single site (CSOM GetSitePropertiesByUrl) + instead of enumerating every site in the tenant. + .EXAMPLE Get-CIPPSPOSite -TenantFilter 'contoso.onmicrosoft.com' + .EXAMPLE + Get-CIPPSPOSite -TenantFilter 'contoso.onmicrosoft.com' -SiteUrl 'https://contoso.sharepoint.com/sites/MySite' + .FUNCTIONALITY Internal @@ -20,12 +27,27 @@ function Get-CIPPSPOSite { [CmdletBinding()] param( [Parameter(Mandatory = $true)] - [string]$TenantFilter + [string]$TenantFilter, + [string]$SiteUrl ) $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter $AdminUrl = $SharePointInfo.AdminUrl + if ($SiteUrl) { + # Single-site fast path: Tenant Constructor -> GetSitePropertiesByUrl -> Query all properties + $XML = @" +$([System.Security.SecurityElement]::Escape($SiteUrl))true +"@ + $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + $Results = New-GraphPostRequest -scope "$AdminUrl/.default" -tenantid $TenantFilter -Uri "$AdminUrl/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + $Site = $Results | Where-Object { $_._ObjectType_ -match 'SiteProperties' } | Select-Object -First 1 + if (-not $Site) { + throw "Could not retrieve site properties for $SiteUrl" + } + return $Site + } + $XML = @' false '@ diff --git a/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 b/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 index db3dec2f84f8e..cca9fe00b2a65 100644 --- a/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPSchemaExtensions.ps1 @@ -8,6 +8,9 @@ function Get-CIPPSchemaExtensions { # Get definitions file $SchemaDefinitionsPath = Join-Path $env:CIPPRootPath 'Config\schemaDefinitions.json' + # Graph only allows the status to move forward through this lifecycle + $StatusOrder = @{ InDevelopment = 0; Available = 1; Deprecated = 2 } + # check CustomData table for schema extensions $CustomDataTable = Get-CippTable -tablename 'CustomData' try { @@ -47,7 +50,7 @@ function Get-CIPPSchemaExtensions { if (Compare-Object -ReferenceObject ($SchemaDefinition.properties | Sort-Object name | Select-Object name, type) -DifferenceObject ($Schema.properties | Sort-Object name | Select-Object name, type)) { $Patch.properties = $SchemaDefinition.properties } - if ($Schema.status -ne $SchemaDefinition.status) { + if ($StatusOrder[$SchemaDefinition.status] -gt $StatusOrder[$Schema.status]) { $Patch.status = $SchemaDefinition.status } if ($Schema.targetTypes -ne $SchemaDefinition.targetTypes) { @@ -84,6 +87,7 @@ function Get-CIPPSchemaExtensions { } $PatchJson = ConvertTo-Json -Depth 5 -InputObject $Patch $null = New-GraphPOSTRequest -type PATCH -Uri "https://graph.microsoft.com/v1.0/schemaExtensions/$($Schema.id)" -Body $PatchJson -AsApp $true -NoAuthCheck $true + $Schema = New-GraphGETRequest -uri "https://graph.microsoft.com/v1.0/schemaExtensions/$($Schema.id)" -AsApp $true -NoAuthCheck $true } try { $OldSchema = $SchemaExtensions | Where-Object { $Schema.id -match $_.RowKey } diff --git a/Modules/CIPPCore/Public/Get-CIPPSharePointErrorMessage.ps1 b/Modules/CIPPCore/Public/Get-CIPPSharePointErrorMessage.ps1 new file mode 100644 index 0000000000000..731371f37d7b1 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSharePointErrorMessage.ps1 @@ -0,0 +1,80 @@ +function Get-CIPPSharePointErrorMessage { + <# + .SYNOPSIS + Turn a raw SharePoint REST error into something an admin can act on + + .DESCRIPTION + The SharePoint REST API returns failures as an OData JSON envelope, so surfacing + $_.Exception.Message directly puts a wall of JSON in front of the admin: + + {"odata.error":{"code":"-2146232832, Microsoft.SharePoint.SPException","message":{ + "lang":"en-US","value":"The specified user i:0#.f|membership|someone@contoso.com + could not be found."}}} + + This unwraps that envelope to the human-readable value, and replaces the failures whose + real cause is not what the message says with an explanation of what actually went wrong. + + The important one is 'could not be found' (-2146232832) on ensureuser. SharePoint reports + it as a missing user, but for a member account it almost always means the account has no + SharePoint Online licence: SharePoint will not materialise a site user for someone who + cannot use SharePoint. Guests resolve fine without a licence, which is why this only bites + on internal accounts. The same error is also returned briefly for a group created moments + ago that has not replicated from Entra yet, hence the -IsGroup wording. + + Returns the explanation on its own, without naming the principal, so callers keep control + of the surrounding sentence. Several of them are parsed by their caller in turn (the + SharePoint template deploy checks results for 'Failed for'), so the prefix has to stay + with the caller rather than move in here. + + .PARAMETER ErrorMessage + The raw exception message from the SharePoint REST call + + .PARAMETER IsGroup + Treat the principal as a group, which changes the likely cause of a resolution failure + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [AllowEmptyString()] + [AllowNull()] + [string]$ErrorMessage, + + [switch]$IsGroup + ) + + if ([string]::IsNullOrWhiteSpace($ErrorMessage)) { return 'Unknown error.' } + + # Unwrap the OData envelope when there is one; otherwise keep the message as-is. + $Detail = $ErrorMessage + if ($ErrorMessage -match '"odata\.error"') { + try { + $Parsed = $ErrorMessage | ConvertFrom-Json -ErrorAction Stop + $Value = $Parsed.'odata.error'.message.value + if ($Value) { $Detail = [string]$Value } + } catch { + # Not valid JSON after all (truncated, or wrapped in other text). Pull the value + # out with a pattern instead so the admin still gets the readable part. + if ($ErrorMessage -match '"value"\s*:\s*"((?:[^"\\]|\\.)*)"') { + $Detail = $Matches[1] -replace '\\"', '"' -replace '\\\\', '\' + } + } + } + + # ensureuser could not resolve the principal. + if ($Detail -match 'could not be found' -or $ErrorMessage -match '-2146232832') { + if ($IsGroup.IsPresent) { + return 'could not be resolved in SharePoint. If the group was just created it may not have replicated from Entra yet, so waiting a few minutes and retrying usually resolves it.' + } + return 'could not be resolved in SharePoint. This normally means the account has no SharePoint Online licence, which SharePoint reports as the user not existing. Assign a licence that includes SharePoint and try again. Guest accounts do not need one.' + } + + # Failures worth naming rather than passing through raw. + if ($Detail -match 'Access denied|not have permission') { + return 'access denied. The CIPP application needs the SharePoint application permission consented for this tenant, and the site must not be locked read-only.' + } + if ($Detail -match 'does not exist|List does not exist') { + return 'the site or library no longer exists. It may have been deleted or renamed since the list was loaded.' + } + + return $Detail +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSharedMailboxAccountEnabledReport.ps1 b/Modules/CIPPCore/Public/Get-CIPPSharedMailboxAccountEnabledReport.ps1 new file mode 100644 index 0000000000000..72c961f2a8cb5 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSharedMailboxAccountEnabledReport.ps1 @@ -0,0 +1,100 @@ +function Get-CIPPSharedMailboxAccountEnabledReport { + <# + .SYNOPSIS + Generates the "shared mailbox with enabled account" report from the CIPP Reporting database + + .DESCRIPTION + Reproduces the live Invoke-ListSharedMailboxAccountEnabled payload entirely from cached data, + joining the cached 'Mailboxes' dataset (to identify SharedMailbox recipients) with the cached + 'Users' dataset (for accountEnabled / assignedLicenses / onPremisesSyncEnabled) by UPN. Only + shared mailboxes whose user account is enabled are returned. No dedicated cache writer is needed — + both source datasets are already populated on the scheduled cache cycle. + + .PARAMETER TenantFilter + The tenant to generate the report for. 'AllTenants' fans out across every tenant present in the + Mailboxes cache. + + .EXAMPLE + Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter 'contoso.onmicrosoft.com' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + # Handle AllTenants by recursing per tenant present in the Mailboxes cache + if ($TenantFilter -eq 'AllTenants') { + $AllMailboxItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'Mailboxes' + $Tenants = @($AllMailboxItems | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $TenantList = Get-Tenants -IncludeErrors + $Tenants = $Tenants | Where-Object { $TenantList.defaultDomainName -contains $_ } + + $AllResults = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Tenant in $Tenants) { + try { + $TenantResults = Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $Tenant + foreach ($Result in $TenantResults) { + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $AllResults.Add($Result) + } + } catch { + Write-LogMessage -API 'SharedMailboxAccountEnabledReport' -tenant $Tenant -message "Failed to get report for tenant: $($_.Exception.Message)" -sev Warning + } + } + return $AllResults + } + + # Mailboxes cache identifies which mailboxes are shared (recipientTypeDetails) and the join key (UPN) + $MailboxItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Mailboxes' | Where-Object { $_.RowKey -ne 'Mailboxes-Count' } + if (-not $MailboxItems) { + throw 'No mailbox data found in reporting database. Sync the report data first.' + } + + # Users cache carries the account/license fields the live endpoint pulls from Graph /users + $UserItems = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' | Where-Object { $_.RowKey -ne 'Users-Count' } + + # Most-recent cache timestamp across both source datasets + $CacheTimestamp = (@($MailboxItems) + @($UserItems) | Where-Object { $_.Timestamp } | Sort-Object Timestamp -Descending | Select-Object -First 1).Timestamp + + # Build a UPN -> user lookup (hashtable string keys are case-insensitive, matching UPN semantics) + $UserByUPN = @{} + foreach ($Item in $UserItems) { + $User = $Item.Data | ConvertFrom-Json + if ($User.userPrincipalName) { + $UserByUPN[$User.userPrincipalName] = $User + } + } + + $Results = [System.Collections.Generic.List[PSCustomObject]]::new() + foreach ($Item in $MailboxItems) { + $Mailbox = $Item.Data | ConvertFrom-Json + if ($Mailbox.recipientTypeDetails -ne 'SharedMailbox') { continue } + + $User = $UserByUPN[$Mailbox.UPN] + if (-not $User -or -not $User.accountEnabled) { continue } + + # Match the live Invoke-ListSharedMailboxAccountEnabled shape exactly. 'id' must be the user's + # object id — the page's "Block Sign In" action posts it to ExecDisableUser. + $Results.Add([PSCustomObject]@{ + UserPrincipalName = $User.userPrincipalName + displayName = $User.displayName + givenName = $User.givenName + surname = $User.surname + accountEnabled = $User.accountEnabled + assignedLicenses = $User.assignedLicenses + id = $User.id + onPremisesSyncEnabled = $User.onPremisesSyncEnabled + CacheTimestamp = $CacheTimestamp + }) + } + + return $Results + + } catch { + Write-LogMessage -API 'SharedMailboxAccountEnabledReport' -tenant $TenantFilter -message "Failed to generate shared mailbox account enabled report: $($_.Exception.Message)" -sev Error + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-CIPPSitSinglePackXml.ps1 b/Modules/CIPPCore/Public/Get-CIPPSitSinglePackXml.ps1 new file mode 100644 index 0000000000000..96b22868a3228 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPSitSinglePackXml.ps1 @@ -0,0 +1,92 @@ +function Get-CIPPSitSinglePackXml { + <# + .SYNOPSIS + Reduce a (possibly multi-SIT) rule pack XML to a standalone pack containing just one SIT. + .DESCRIPTION + Custom regex SITs each get their own pack, but document-fingerprint SITs all share the one fixed + "Document Fingerprint Rule Package". To template just one SIT, this keeps the target entity and the + transitive closure of everything it references (by idRef / linkedProcessorIdRef), and removes every + other entity, its detection elements, and its Resource - then assigns a fresh RulePack id so the + result deploys as a new custom pack. + + Subtractive (rather than rebuilding) so the original structure is preserved exactly, including the + fingerprint shape where the Affinity entity is nested inside a wrapper. + Works for regex (Entity -> Pattern -> Regex/Keyword) and fingerprint (Affinity -> Evidence -> + Fingerprint -> AdvancedFingerprint) alike. Namespace-agnostic. + .PARAMETER PackXml + The full rule pack XML (e.g. from Get-DlpSensitiveInformationTypeRulePackage). + .PARAMETER EntityId + The SIT entity id (the SIT's Id). If blank, resolved from EntityName via the Resource. + .PARAMETER EntityName + The SIT name, used to resolve the entity id when EntityId is blank. + .OUTPUTS + A single-SIT rule pack XML string (utf-16 declared). + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][string]$PackXml, + [string]$EntityId, + [string]$EntityName + ) + + [xml]$doc = $PackXml + + # Resolve the entity id from the SIT name if needed (Resource.Name -> Resource.idRef). + if ([string]::IsNullOrWhiteSpace($EntityId) -and $EntityName) { + foreach ($res in $doc.SelectNodes("//*[local-name()='Resource']")) { + $nm = $res.SelectSingleNode("*[local-name()='Name']") + if ($nm -and ([string]$nm.InnerText).Trim() -eq $EntityName) { $EntityId = [string]$res.idRef; break } + } + } + if ([string]::IsNullOrWhiteSpace($EntityId)) { throw 'Could not resolve the SIT entity id.' } + + # Map every element that carries an id (anywhere - entities can be nested in a Version wrapper). + $byId = @{} + foreach ($el in $doc.SelectNodes("//*[@id]")) { $byId[[string]$el.id] = $el } + if (-not $byId.ContainsKey($EntityId)) { throw "Entity '$EntityId' not found in the rule package." } + + # Transitive closure of ids the target entity needs. + $keep = New-Object 'System.Collections.Generic.HashSet[string]' + [void]$keep.Add($EntityId) + $stack = New-Object System.Collections.Stack + $stack.Push($byId[$EntityId]) + while ($stack.Count -gt 0) { + $el = $stack.Pop() + $walk = New-Object System.Collections.Stack + $walk.Push($el) + while ($walk.Count -gt 0) { + $n = $walk.Pop() + foreach ($a in @($n.Attributes)) { + if ($a.Name -in @('idRef', 'linkedProcessorIdRef')) { + $rid = [string]$a.Value + if ($byId.ContainsKey($rid) -and -not $keep.Contains($rid)) { + [void]$keep.Add($rid) + $stack.Push($byId[$rid]) + } + } + } + foreach ($ch in $n.ChildNodes) { if ($ch.NodeType -eq 'Element') { $walk.Push($ch) } } + } + } + + # Remove other entities, the detection elements they (and not the target) own, and other Resources. + $toRemove = New-Object System.Collections.ArrayList + foreach ($e in $doc.SelectNodes("//*[local-name()='Entity' or local-name()='Affinity']")) { + if ([string]$e.id -ne $EntityId) { [void]$toRemove.Add($e) } + } + foreach ($e in $doc.SelectNodes("//*[local-name()='Regex' or local-name()='Keyword' or local-name()='Fingerprint' or local-name()='AdvancedFingerprint']")) { + if (-not $keep.Contains([string]$e.id)) { [void]$toRemove.Add($e) } + } + foreach ($r in $doc.SelectNodes("//*[local-name()='Resource']")) { + if ([string]$r.idRef -ne $EntityId) { [void]$toRemove.Add($r) } + } + foreach ($node in $toRemove) { [void]$node.ParentNode.RemoveChild($node) } + + # Fresh RulePack id so this deploys as a new custom pack (not the fixed managed pack id). + $rulePack = $doc.SelectSingleNode("//*[local-name()='RulePack']") + if ($rulePack -and $rulePack.Attributes['id']) { $rulePack.id = (New-Guid).Guid } + + return '' + $doc.DocumentElement.OuterXml +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTestData.ps1 b/Modules/CIPPCore/Public/Get-CIPPTestData.ps1 index f3b6d1b8f06cb..ed6568c6d364b 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTestData.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTestData.ps1 @@ -4,15 +4,66 @@ function Get-CIPPTestData { Cached wrapper around New-CIPPDbRequest for test functions .DESCRIPTION - Returns cached tenant data during test suite execution. The cache is - backed by CIPP.TestDataCache (static ConcurrentDictionary in C#) so - it is shared across all PowerShell runspaces within the worker process. + Returns cached tenant data during test suite execution. The cache is backed by + CIPP.TestDataCache (static ConcurrentDictionary in C#) so it is shared across all + PowerShell runspaces within the worker process. + + RECORDS ARE FIELD-PROJECTED. Only the fields listed for $Type in + Get-CippTestDataFieldManifest are materialized. Reading an unlisted field returns $null + with no error, so the test emits a wrong verdict silently. If you add a field read to a + test, add it to the manifest first. A type absent from the manifest is fetched whole, + which is the safe default. + + Projection is record-level: a kept field keeps its entire subtree, so + `$policy.conditions.users.includeRoles` only requires 'conditions'. + + Records are PSCustomObject and must stay so. Hashtable output changes scalar semantics + ($x[0] becomes a key lookup returning $null; $x.Count returns the record's field count + instead of 1) and only when a pipeline yields exactly one record — data-dependent, and + easily missed in testing. .PARAMETER TenantFilter The tenant domain or GUID to filter by .PARAMETER Type The data type to retrieve (e.g., Users, Groups, ConditionalAccessPolicies) + + .PARAMETER Fields + Optional. Override the manifest for this call: keep only these top-level fields. Prefer + the manifest; this is for one-off and diagnostic callers, not tests. + + The field set is part of the cache key — it must be, or callers asking for the same + tenant+type with different lists would receive each other's projection. Distinct lists + therefore fragment the cache: the same rows parsed once per list, all alive together for + the TTL. Per-call-site lists measured several times worse than one shared per-type entry. + Fields belong to the type — see Get-CippTestDataFieldManifest. + + .PARAMETER NoProjection + Return every field, ignoring the manifest. + + Required for the custom-script sandbox (Get-CippSandboxData): those scripts are + customer-authored, so the fields they read are unknowable and a manifest built from our + own tests would silently hand them incomplete records. Any caller fetching data on behalf + of code we did not write must pass this. + + .EXAMPLE + Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + Normal use: the manifest decides the fields. This is what tests should do. + + .EXAMPLE + Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' -NoProjection + Every field. For callers serving code we did not author. + + .NOTES + Verifying a change: "0 errored" proves nothing, because the failure modes here are silent + — a broken test still reports success. Diff test verdicts against a baseline, across more + than one tenant: a bug that needs exactly one matching record will not show on a tenant + that has two. + + Useful endpoints: ExecTestRun then ListTests for verdicts; ListDBCache to confirm a field + exists and its real casing before adding it to the manifest (type=_availableTypes lists + the types); ListWorkerHealth?Action=CacheDiag for entries, hit rate and a per-type + breakdown whose keys carry the projected field list. #> [CmdletBinding()] param( @@ -20,7 +71,13 @@ function Get-CIPPTestData { [string]$TenantFilter, [Parameter(Mandatory = $false)] - [string]$Type + [string]$Type, + + [Parameter(Mandatory = $false)] + [string[]]$Fields, + + [Parameter(Mandatory = $false)] + [switch]$NoProjection ) # Enforce tenant lock when running inside custom script execution @@ -32,14 +89,36 @@ function Get-CIPPTestData { throw 'TenantFilter is required.' } - $CacheKey = '{0}|{1}' -f $TenantFilter, $Type + # Resolve the field set: an explicit -Fields wins, otherwise consult the per-type manifest. + # -NoProjection suppresses both (the sandbox path must never receive projected records). + $EffectiveFields = if ($NoProjection) { + $null + } elseif ($Fields) { + $Fields + } else { + Get-CippTestDataFieldManifest -Type $Type + } + + # Normalize the field set (sorted + de-duplicated) so that callers asking for the same + # fields in a different order share one cache entry instead of parsing twice. + $NormalizedFields = if ($EffectiveFields) { @($EffectiveFields | Sort-Object -Unique) } else { $null } + + $CacheKey = if ($NormalizedFields) { + '{0}|{1}|{2}' -f $TenantFilter, $Type, ($NormalizedFields -join ',') + } else { + '{0}|{1}' -f $TenantFilter, $Type + } $CachedValue = $null if ([CIPP.TestDataCache]::TryGet($CacheKey, [ref]$CachedValue)) { return $CachedValue } - $Data = New-CIPPDbRequest -TenantFilter $TenantFilter -Type $Type + $Data = if ($NormalizedFields) { + New-CIPPDbRequest -TenantFilter $TenantFilter -Type $Type -Fields $NormalizedFields + } else { + New-CIPPDbRequest -TenantFilter $TenantFilter -Type $Type + } [CIPP.TestDataCache]::Set($CacheKey, $Data) diff --git a/Modules/CIPPCore/Public/Get-CIPPTestResultsTenants.ps1 b/Modules/CIPPCore/Public/Get-CIPPTestResultsTenants.ps1 new file mode 100644 index 0000000000000..fbf099fff32a2 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CIPPTestResultsTenants.ps1 @@ -0,0 +1,166 @@ +function Get-CIPPTestResultsTenants { + <# + .SYNOPSIS + Retrieves CIPP test results across one, many, or all tenants with flexible filtering. + + .DESCRIPTION + Queries the shared CippTestResults table server-side (partition / row / status / type / + risk / category) so a single test can be compared across every tenant in one call. This is + the cross-tenant counterpart to Get-CIPPTestResults (which is scoped to a single tenant). + + Custom test rows are enriched with their definition (Description / ReturnType / + MarkdownTemplate) from the CustomPowershellScripts table so the off-canvas detail renders + identically to the per-tenant dashboard. Every row is stamped with its tenant identity + (Tenant / TenantId / TenantName) and a serialisable LastRun timestamp for display. + + .PARAMETER TenantFilter + One or more tenant domains. Omit, or pass 'AllTenants' / 'allTenants', to query every tenant. + + .PARAMETER TestId + One or more test IDs (the row's RowKey), e.g. 'CustomScript-'. + + .PARAMETER Status + One or more statuses to filter on (Passed / Failed / Investigate / Skipped / Informational). + + .PARAMETER TestType + Restrict to a single test type (Identity / Devices / Custom). + + .PARAMETER Risk + Restrict to a single risk level (High / Medium / Low). + + .PARAMETER Category + Restrict to a single category. + + .EXAMPLE + Get-CIPPTestResultsTenants -TestId 'CustomScript-1234' -TestType 'Custom' + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [string[]]$TenantFilter, + + [Parameter(Mandatory = $false)] + [string[]]$TestId, + + [Parameter(Mandatory = $false)] + [string[]]$Status, + + [Parameter(Mandatory = $false)] + [string]$TestType, + + [Parameter(Mandatory = $false)] + [string]$Risk, + + [Parameter(Mandatory = $false)] + [string]$Category + ) + + $Table = Get-CippTable -tablename 'CippTestResults' + + # Build a single OData filter so all narrowing happens server-side. A cross-partition scan + # (no PartitionKey clause) is acceptable here because it is always bounded by a RowKey/Status/ + # TestType clause when driven from the UI. + $FilterParts = [System.Collections.Generic.List[string]]::new() + + $AllTenants = (-not $TenantFilter) -or ($TenantFilter -contains 'AllTenants') -or ($TenantFilter -contains 'allTenants') + if (-not $AllTenants) { + $TenantClause = (@($TenantFilter | Where-Object { $_ }) | ForEach-Object { "PartitionKey eq '$_'" }) -join ' or ' + if ($TenantClause) { $FilterParts.Add("($TenantClause)") } + } + if ($TestId) { + $TestClause = (@($TestId | Where-Object { $_ }) | ForEach-Object { "RowKey eq '$_'" }) -join ' or ' + if ($TestClause) { $FilterParts.Add("($TestClause)") } + } + if ($Status) { + $StatusClause = (@($Status | Where-Object { $_ }) | ForEach-Object { "Status eq '$_'" }) -join ' or ' + if ($StatusClause) { $FilterParts.Add("($StatusClause)") } + } + if ($TestType) { $FilterParts.Add("TestType eq '$TestType'") } + if ($Risk) { $FilterParts.Add("Risk eq '$Risk'") } + if ($Category) { $FilterParts.Add("Category eq '$Category'") } + + $Filter = $FilterParts -join ' and ' + + $GetParams = @{} + if ($Filter) { $GetParams.Filter = $Filter } + $Results = @(Get-CIPPAzDataTableEntity @Table @GetParams) + + if ($Results.Count -eq 0) { return @() } + + # Map tenant domain (PartitionKey) -> tenant identity for display and access control. + $TenantLookup = @{} + try { + foreach ($Tenant in (Get-Tenants -IncludeErrors)) { + if ($Tenant.defaultDomainName) { + $TenantLookup[$Tenant.defaultDomainName] = $Tenant + } + } + } catch { + Write-Warning "Get-CIPPTestResultsTenants: failed to load tenant list: $($_.Exception.Message)" + } + + # Enrich Custom rows with their definition (latest version per ScriptGuid), mirroring the + # per-tenant enrichment in Invoke-ListTests so the shared off-canvas renders identically. + $CustomMeta = @{} + if (@($Results | Where-Object { $_.TestType -eq 'Custom' }).Count -gt 0) { + $ScriptTable = Get-CippTable -tablename 'CustomPowershellScripts' + $Scripts = @(Get-CIPPAzDataTableEntity @ScriptTable -Filter "PartitionKey eq 'CustomScript'") + $LatestByGuid = @{} + foreach ($Script in $Scripts) { + if (-not $Script.ScriptGuid) { continue } + $Existing = $LatestByGuid[$Script.ScriptGuid] + if (-not $Existing -or [int]$Script.Version -gt [int]$Existing.Version) { + $LatestByGuid[$Script.ScriptGuid] = $Script + } + } + foreach ($Script in $LatestByGuid.Values) { + # Treat a missing Enabled property as enabled, matching Invoke-CIPPTestCollection. + # A disabled (or deleted) script can still have stale results in the table; surfacing + # this lets the UI show that the data no longer reflects an active test. + $EnabledProp = $Script.PSObject.Properties['Enabled'] + $CustomMeta[$Script.ScriptGuid] = [PSCustomObject]@{ + ScriptName = $Script.ScriptName ?? '' + Description = $Script.Description ?? '' + ReturnType = $Script.ReturnType ?? 'JSON' + MarkdownTemplate = $Script.MarkdownTemplate ?? '' + Enabled = (-not $EnabledProp) -or [bool]$EnabledProp.Value + } + } + } + + foreach ($Result in $Results) { + $TenantInfo = $TenantLookup[$Result.PartitionKey] + $Result | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Result.PartitionKey -Force + $Result | Add-Member -NotePropertyName 'TenantId' -NotePropertyValue ($TenantInfo.customerId ?? '') -Force + $Result | Add-Member -NotePropertyName 'TenantName' -NotePropertyValue ($TenantInfo.displayName ?? $Result.PartitionKey) -Force + + # Surface the Azure entity timestamp as a stable, serialisable last-run field. + $LastRun = $Result.Timestamp + if ($LastRun -is [DateTimeOffset]) { + $LastRun = $LastRun.UtcDateTime.ToString('o') + } elseif ($LastRun) { + $LastRun = [string]$LastRun + } + $Result | Add-Member -NotePropertyName 'LastRun' -NotePropertyValue $LastRun -Force + + if ($Result.TestType -eq 'Custom') { + $ScriptGuid = ($Result.RowKey -replace '^CustomScript-', '') + if (-not [string]::IsNullOrWhiteSpace($ScriptGuid) -and $CustomMeta.ContainsKey($ScriptGuid)) { + $Meta = $CustomMeta[$ScriptGuid] + $Result | Add-Member -NotePropertyName 'Description' -NotePropertyValue $Meta.Description -Force + $Result | Add-Member -NotePropertyName 'ReturnType' -NotePropertyValue $Meta.ReturnType -Force + $Result | Add-Member -NotePropertyName 'MarkdownTemplate' -NotePropertyValue $Meta.MarkdownTemplate -Force + $Result | Add-Member -NotePropertyName 'Enabled' -NotePropertyValue $Meta.Enabled -Force + if ([string]::IsNullOrWhiteSpace($Result.Name) -and $Meta.ScriptName) { + $Result | Add-Member -NotePropertyName 'Name' -NotePropertyValue $Meta.ScriptName -Force + } + } else { + # Result exists but the script no longer does (deleted). The data is stale — flag + # it as not enabled so the column stays populated and truthful. + $Result | Add-Member -NotePropertyName 'Enabled' -NotePropertyValue $false -Force + } + } + } + + return $Results +} diff --git a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 index f96bef07090cc..a89ce2bee2662 100644 --- a/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 +++ b/Modules/CIPPCore/Public/Get-CIPPTextReplacement.ps1 @@ -16,6 +16,16 @@ function Get-CIPPTextReplacement { $Text, [switch]$EscapeForJson ) + # Escapes a replacement value so it can be safely spliced into a serialized JSON + # string literal. Handles quotes, backslashes, newlines, tabs and control chars. + function ConvertTo-CIPPJsonEscapedString { + param($Value) + if ($null -eq $Value) { return '' } + $Encoded = [string]$Value | ConvertTo-Json -Compress + # Strip the surrounding quotes ConvertTo-Json adds, leaving just the escaped body. + return $Encoded.Substring(1, $Encoded.Length - 2) + } + if ($Text -isnot [string]) { return , $Text } @@ -29,6 +39,8 @@ function Get-CIPPTextReplacement { '%serial%', '%systemroot%', '%systemdrive%', + '%system32%', + '%osdrive%', '%temp%', '%tenantid%', '%tenantfilter%', @@ -68,7 +80,7 @@ function Get-CIPPTextReplacement { if (-not $Var.PSObject.Properties['Value']) { continue } $Val = $Var.Value if ($EscapeForJson.IsPresent) { - $Val = $Val -replace '(?-'. Use the known offload suffix as the + # node name (Get-CippOffloadSuffix), NOT the second dash segment - a dashed main-app name + # (e.g. 'compaction-01-z2ir2') would otherwise yield a wrong node like '01'. + $AvailableNodes = $Nodes | Where-Object { (Test-CippOffloadFunctionApp -SiteName $_.RowKey) -and $_.Version -eq $MainFunctionVersion } | ForEach-Object { Get-CippOffloadSuffix -SiteName $_.RowKey } + + # Get node name for the current app: the offload suffix, or 'http' for the main app. + $Node = Get-CippOffloadSuffix -SiteName $FunctionName + if (-not $Node) { $Node = 'http' } diff --git a/Modules/CIPPCore/Public/Get-CippCustomDataAttributes.ps1 b/Modules/CIPPCore/Public/Get-CippCustomDataAttributes.ps1 index 90a8469c53547..8ed8727c6e1ce 100644 --- a/Modules/CIPPCore/Public/Get-CippCustomDataAttributes.ps1 +++ b/Modules/CIPPCore/Public/Get-CippCustomDataAttributes.ps1 @@ -17,12 +17,12 @@ function Get-CippCustomDataAttributes { if ($CustomData) { if ($Type -eq 'SchemaExtension') { $Name = $CustomData.id - foreach ($TargetObject in $CustomData.targetTypes) { + foreach ($Target in $CustomData.targetTypes) { foreach ($Property in $CustomData.properties) { [PSCustomObject]@{ name = '{0}.{1}' -f $Name, $Property.name type = $Type - targetObject = $TargetObject + targetObject = $Target dataType = $Property.type isMultiValued = $false } @@ -30,11 +30,11 @@ function Get-CippCustomDataAttributes { } } elseif ($Type -eq 'DirectoryExtension') { $Name = $CustomDataEntity.RowKey - foreach ($TargetObject in $CustomData.targetObjects) { + foreach ($Target in $CustomData.targetObjects) { [PSCustomObject]@{ name = $Name type = $Type - targetObject = $TargetObject + targetObject = $Target dataType = $CustomData.dataType isMultiValued = $CustomData.isMultiValued } diff --git a/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 index 0b5b026df61aa..78b144efa856c 100644 --- a/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 +++ b/Modules/CIPPCore/Public/Get-CippDbRoleMembers.ps1 @@ -1,4 +1,47 @@ function Get-CippDbRoleMembers { + <# + .SYNOPSIS + Resolve the members of a directory role from cached PIM + directoryRole data. + + .DESCRIPTION + Merges three sources into one member list, de-duplicated by principal id: + Active - PIM roleAssignmentScheduleInstances with assignmentType 'Assigned' + Eligible - PIM roleEligibilitySchedules (can activate, not currently active) + Direct - directoryRole membership assigned outside PIM + + A principal may be a user, a servicePrincipal, or a group — use '@odata.type' to tell + them apart. userPrincipalName is null for anything that isn't a user, and appId is + populated only for servicePrincipals. + + .PARAMETER TenantFilter + The tenant to resolve members for. + + .PARAMETER RoleTemplateId + The role's TEMPLATE id (e.g. Global Administrator = 62e90394-69f5-4237-9190-012177145e10). + + NOT the directoryRole instance id. PIM's roleDefinitionId carries template ids, so passing + an instance id (Roles.id) matches nothing and silently returns an empty list. When starting + from a Get-CippDbRole record, pass $Role.roleTemplateId — never $Role.id. + + .OUTPUTS + PSCustomObject per member: + id - principal object id + displayName - principal display name + userPrincipalName - users only; null for servicePrincipals and groups + appId - servicePrincipals only; null otherwise + '@odata.type' - '#microsoft.graph.user' | '...servicePrincipal' | '...group' + AssignmentType - 'Active' | 'Eligible' | 'Direct' + EndDateTime - when the assignment expires; null when it does not + IsPermanent - $true when the assignment has no expiry + + .NOTES + Depends on the cached records carrying an expanded 'principal' object — the Graph APIs + return only principalId by default, so the collectors request $expand=principal. Without + it every displayName/userPrincipalName here is null. + + .FUNCTIONALITY + Internal + #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] @@ -27,8 +70,12 @@ function Get-CippDbRoleMembers { id = $member.principalId displayName = $member.principal.displayName userPrincipalName = $member.principal.userPrincipalName + appId = $member.principal.appId '@odata.type' = $member.principal.'@odata.type' AssignmentType = 'Active' + EndDateTime = $member.endDateTime + # A PIM assignment with no endDateTime never expires. + IsPermanent = ($null -eq $member.endDateTime) } $AllMembers.Add($memberObj) } @@ -39,8 +86,12 @@ function Get-CippDbRoleMembers { id = $member.principalId displayName = $member.principal.displayName userPrincipalName = $member.principal.userPrincipalName + appId = $member.principal.appId '@odata.type' = $member.principal.'@odata.type' AssignmentType = 'Eligible' + # Eligibilities carry their expiry under scheduleInfo, not endDateTime. + EndDateTime = $member.scheduleInfo.expiration.endDateTime + IsPermanent = ($member.scheduleInfo.expiration.type -eq 'noExpiration') } $AllMembers.Add($memberObj) } @@ -52,8 +103,12 @@ function Get-CippDbRoleMembers { id = $member.id displayName = $member.displayName userPrincipalName = $member.userPrincipalName + appId = $member.appId '@odata.type' = $member.'@odata.type' AssignmentType = 'Direct' + # directoryRole membership assigned outside PIM has no expiry. + EndDateTime = $null + IsPermanent = $true } $AllMembers.Add($memberObj) } diff --git a/Modules/CIPPCore/Public/Get-CippKeyVaultName.ps1 b/Modules/CIPPCore/Public/Get-CippKeyVaultName.ps1 new file mode 100644 index 0000000000000..f538397e20e53 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippKeyVaultName.ps1 @@ -0,0 +1,55 @@ +function Get-CippKeyVaultName { + <# + .SYNOPSIS + Returns the name of the CIPP Azure Key Vault for the current instance. + + .DESCRIPTION + The Key Vault is named after the main App Service instance, so its name equals + $env:WEBSITE_SITE_NAME on the main app. + + Two things have to be handled: + + 1. Dashed instance names. Earlier code derived the vault name as + ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0], which keeps only the segment before + the first dash. That silently truncated any instance name containing a dash - + e.g. 'compaction-01-z2ir2' became 'compaction' - so every secret call was pointed + at a vault that does not exist (404). The full name must be kept intact. + + 2. Offloaded function apps. When function offloading is enabled, extra Function Apps + are deployed alongside the main app and share its Key Vault. They are named + '-' (e.g. 'compaction-01-z2ir2-standards'). Those apps must + resolve the SAME vault as the main app, so a known offload suffix is stripped from + the end of the site name. Only the fixed offload suffixes are stripped, never an + arbitrary trailing segment, so a legitimate dashed vault name is left intact. + + This is the single source of truth for the vault name so those bugs cannot reappear + per call site. + + .EXAMPLE + $VaultName = Get-CippKeyVaultName + #> + [CmdletBinding()] + [OutputType([string])] + param() + + # Primary: the App Service site name IS the vault name (on the main app). + # Fallback: the full deployment id. Never split on '-' (that is the truncation bug this + # helper exists to prevent); a dashed vault name must be kept whole. + $Name = if (-not [string]::IsNullOrWhiteSpace($env:WEBSITE_SITE_NAME)) { + $env:WEBSITE_SITE_NAME + } elseif (-not [string]::IsNullOrWhiteSpace($env:WEBSITE_DEPLOYMENT_ID)) { + $env:WEBSITE_DEPLOYMENT_ID + } else { + return $null + } + + # If running on an offloaded app ('-'), strip the known suffix so it + # resolves the SAME vault as the main app. Get-CippOffloadSuffix is the single source of + # truth for the suffix list. + $Suffix = Get-CippOffloadSuffix -SiteName $Name + if ($Suffix) { + $Name = $Name -replace "-$([regex]::Escape($Suffix))$", '' + } + + return $Name +} diff --git a/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 index b4d032f2c6774..c88ba805076ef 100644 --- a/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 +++ b/Modules/CIPPCore/Public/Get-CippKeyVaultSecret.ps1 @@ -37,10 +37,9 @@ function Get-CippKeyVaultSecret { try { # Derive vault name if not provided if (-not $VaultName) { - if ($env:WEBSITE_DEPLOYMENT_ID) { - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - } else { - throw 'VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set' + $VaultName = Get-CippKeyVaultName + if (-not $VaultName) { + throw 'VaultName not provided and could not be derived (WEBSITE_SITE_NAME / WEBSITE_DEPLOYMENT_ID not set)' } } @@ -61,6 +60,10 @@ function Get-CippKeyVaultSecret { break } catch { $lastError = $_ + # 404 is definitive - the secret does not exist and retrying cannot change that + if ($_.Exception.Message -match '404|SecretNotFound') { + throw "Failed to retrieve secret '$Name' from vault '$VaultName': $($_.Exception.Message)" + } if ($i -lt ($maxRetries - 1)) { Start-Sleep -Seconds $retryDelay $retryDelay *= 2 # Exponential backoff diff --git a/Modules/CIPPCore/Public/Get-CippOffloadSuffix.ps1 b/Modules/CIPPCore/Public/Get-CippOffloadSuffix.ps1 new file mode 100644 index 0000000000000..fc828ca8d9a7f --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippOffloadSuffix.ps1 @@ -0,0 +1,49 @@ +function Get-CippOffloadSuffix { + <# + .SYNOPSIS + Returns the offload-app suffix for a function app name, or $null when it is not an + offloaded app. + + .DESCRIPTION + When function offloading is enabled, extra Function Apps are deployed alongside the + main app and share its resources (Key Vault, etc.). They are named + '-' - e.g. 'compaction-01-z2ir2-standards'. + + This is the SINGLE SOURCE OF TRUTH for the known offload suffixes so that vault-name + derivation ([[Get-CippKeyVaultName]]) and offload detection stay in sync. Matching is + anchored to the end and requires a whole '-' segment, so a legitimate dashed + main-app name (e.g. 'compaction-01-z2ir2', which contains dashes but is NOT offloaded) + is never misdetected. + + Keep $OffloadSuffixes in sync with the deployment's offload app names. + + .PARAMETER SiteName + Function app name to inspect. Defaults to $env:WEBSITE_SITE_NAME (the current app). + + .EXAMPLE + Get-CippOffloadSuffix -SiteName 'compaction-01-z2ir2-standards' # -> 'standards' + + .EXAMPLE + Get-CippOffloadSuffix -SiteName 'compaction-01-z2ir2' # -> $null + #> + [CmdletBinding()] + [OutputType([string])] + param( + [Parameter(Mandatory = $false)] + [AllowNull()] + [AllowEmptyString()] + [string]$SiteName = $env:WEBSITE_SITE_NAME + ) + + $OffloadSuffixes = @('proc', 'auditlog', 'standards', 'usertasks') + + if ([string]::IsNullOrWhiteSpace($SiteName)) { return $null } + + foreach ($Suffix in $OffloadSuffixes) { + if ($SiteName -match "-$([regex]::Escape($Suffix))$") { + return $Suffix + } + } + + return $null +} diff --git a/Modules/CIPPCore/Public/Get-CippSandboxData.ps1 b/Modules/CIPPCore/Public/Get-CippSandboxData.ps1 index daa7b4a32e143..1d5112b92963f 100644 --- a/Modules/CIPPCore/Public/Get-CippSandboxData.ps1 +++ b/Modules/CIPPCore/Public/Get-CippSandboxData.ps1 @@ -70,7 +70,7 @@ function Get-CippSandboxData { $Key = if ($Type) { $Type } else { '' } if (-not $Data.ContainsKey($Key)) { - $Data[$Key] = @(Get-CIPPTestData -TenantFilter $TenantFilter -Type $Type) + $Data[$Key] = @(Get-CIPPTestData -TenantFilter $TenantFilter -Type $Type -NoProjection) } } diff --git a/Modules/CIPPCore/Public/Get-CippTestDataFieldManifest.ps1 b/Modules/CIPPCore/Public/Get-CippTestDataFieldManifest.ps1 new file mode 100644 index 0000000000000..41905a55f7a71 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-CippTestDataFieldManifest.ps1 @@ -0,0 +1,165 @@ +function Get-CippTestDataFieldManifest { + <# + .SYNOPSIS + Per-type field manifest for Get-CIPPTestData projection. + + .DESCRIPTION + Returns the union of top-level fields that every consumer of a given CippReportingDB type + reads, or $null for types that must be fetched whole. + + ADDING OR CHANGING A FIELD READ IN A TEST? ADD IT HERE FIRST. Get-CIPPTestData only + materializes what is listed here; reading an unlisted field returns $null with no error, + and the test emits a wrong compliance verdict silently. + + Rules for editing this table: + + * Top-level names only. Projection is record-level: a kept field keeps its ENTIRE subtree. + For `$policy.conditions.users.includeRoles` you add 'conditions' — never 'users'. + * When in doubt, add it. Over-inclusion costs a little memory; omission corrupts results. + * Matching is case-insensitive, and tests rely on it — some read a field using different + casing than the stored JSON. Use the real JSON casing here; do not "fix" the test. + * A type absent from this table is fetched whole — the safe default. A new type, or a + field nobody listed, degrades to pre-projection behaviour rather than corrupting a + verdict. Deliberately absent are types whose tests discover column names at runtime by + reflecting over the record, and types small enough that projecting buys nothing. + * Verify with a verdict diff across more than one tenant — see Get-CIPPTestData .NOTES. + "0 errored" proves nothing; the failure mode is silent. + + CONSUMERS THAT ARE NOT TEST FILES — easy to miss, since no test names these fields: + + Get-CippDbRole ......... Roles + Get-CippDbRoleMembers .. RoleAssignmentScheduleInstances, RoleEligibilitySchedules, + Roles — including the 'principal' subtree, which no test + mentions; omitting it blanks every role member across the + privileged-access tests + Test-E8AsrRule ......... IntuneConfigurationPolicies — the field contract for the E8 ASR + tests, which read nothing themselves + + Any new helper calling Get-CIPPTestData belongs on that list. + + WHY PER-TYPE, NOT PER-CALL-SITE: the field set is part of the Get-CIPPTestData cache key, + so per-caller lists fragment the cache — the same rows parsed once per distinct list, all + alive together for the TTL. Many call sites share few types, and they mostly want the same + large subtrees, so fragmenting measured several times worse than one shared entry. + + .PARAMETER Type + The CippReportingDB data type. + + .OUTPUTS + [string[]] of field names, or $null meaning "no projection — return every field". + + .EXAMPLE + Get-CippTestDataFieldManifest -Type 'Users' + Callers do not normally invoke this — Get-CIPPTestData consults it automatically by type. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + [OutputType([string[]])] + param( + [Parameter(Mandatory = $false, Position = 0)] + [string]$Type + ) + + if ([string]::IsNullOrWhiteSpace($Type)) { return $null } + + if (-not $script:CippTestDataFieldManifest) { + # Deliberately ABSENT (=> fetched whole), do not "helpfully" add them: + # CopilotUsageUserDetail, CopilotUserCountSummary, CopilotUserCountTrend — their tests + # discover column names at runtime by reflecting over the record, so no field list + # can be known ahead of time (CopilotReady015/016/017). + # ExoGlobalQuarantinePolicy — ORCA107 annotates the record via `Select-Object *`, and + # the type is tiny, so projecting buys nothing. + $script:CippTestDataFieldManifest = @{ + 'AdminConsentRequestPolicy' = @('isEnabled', 'reviewers', 'notifyReviewers', 'remindersEnabled', 'requestDurationInDays') + 'Apps' = @('id', 'appId', 'displayName', 'keyCredentials', 'passwordCredentials', 'signInAudience', 'servicePrincipalLockConfiguration', 'owners', 'web', 'spa', 'publicClient') + 'AppsAndServices' = @('id', 'isOfficeStoreEnabled', 'isAppAndServicesTrialEnabled') + 'AuthenticationFlowsPolicy' = @('selfServiceSignUp') + 'AuthenticationMethodsPolicy' = @('authenticationMethodConfigurations', 'policyMigrationState', 'reportSuspiciousActivitySettings', 'systemCredentialPreferences') + 'AuthenticationStrengths' = @('id', 'displayName', 'policyType', 'allowedCombinations') + 'AuthorizationPolicy' = @('defaultUserRolePermissions', 'guestUserRoleId', 'allowInvitesFrom', 'allowedToUseSSPR', 'allowedToSignUpEmailBasedSubscriptions', 'allowEmailVerifiedUsersToJoinOrganization', 'permissionGrantPolicyIdsAssignedToDefaultUserRole', 'allowUserConsentForRiskyApps', 'allowedToCreateTenants') + 'B2BManagementPolicy' = @('allowInvitesFrom', 'invitationsAllowedAndBlockedDomainsPolicy', 'definition') + 'CASMailbox' = @('Identity', 'DisplayName', 'SmtpClientAuthenticationDisabled') + 'ConditionalAccessPolicies' = @('id', 'displayName', 'state', 'conditions', 'grantControls', 'sessionControls', 'createdDateTime', 'modifiedDateTime') + 'CopilotReadinessActivity' = @('userPrincipalName', 'usesOutlookEmail', 'usesTeamsMeetings', 'usesTeamsChat', 'usesOfficeDocs', 'onQualifiedUpdateChannel', 'hasCopilotLicenseAssigned') + 'CrossTenantAccessPolicy' = @('id', 'b2bCollaborationOutbound', 'b2bDirectConnectOutbound', 'tenantRestrictions') + 'CsExternalAccessPolicy' = @('EnableFederationAccess', 'EnableTeamsConsumerAccess') + 'CsTeamsAppPermissionPolicy' = @('Identity', 'GlobalCatalogAppsType', 'DefaultCatalogAppsType') + 'CsTeamsClientConfiguration' = @('AllowDropbox', 'AllowBox', 'AllowGoogleDrive', 'AllowShareFile', 'AllowEgnyte', 'AllowEmailIntoChannel') + 'CsTeamsMeetingPolicy' = @('AllowAnonymousUsersToJoinMeeting', 'AllowAnonymousUsersToStartMeeting', 'AutoAdmittedUsers', 'AllowPSTNUsersToBypassLobby', 'MeetingChatEnabledType', 'DesignatedPresenterRoleMode', 'AllowExternalParticipantGiveRequestControl', 'AllowExternalNonTrustedMeetingChat', 'AllowCloudRecording') + 'CsTeamsMessagingPolicy' = @('UseB2BInvitesToAddExternalUsers', 'AllowSecurityEndUserReporting') + 'CsTenantFederationConfiguration' = @('AllowFederatedUsers', 'AllowedDomains', 'AllowTeamsConsumer') + 'DefaultAppManagementPolicy' = @('isEnabled', 'applicationRestrictions', 'servicePrincipalRestrictions') + 'DeviceRegistrationPolicy' = @('azureADJoin', 'userDeviceQuota', 'localAdminPassword', 'multiFactorAuthConfiguration') + 'DeviceSettings' = @('secureByDefault') + 'DirectoryRecommendations' = @('status', 'priority', 'displayName', 'impactType', 'lastModifiedDateTime', 'insights', 'recommendationType', 'applicationDisplayName', 'applicationId') + 'DlpCompliancePolicies' = @('Name', 'DisplayName', 'Mode', 'Enabled', 'TeamsLocation', 'TeamsLocationException', 'Workload', 'EnforcementPlanes') + 'Domains' = @('id', 'passwordValidityPeriodInDays', 'authenticationType') + 'ExoAcceptedDomains' = @('DomainName', 'DomainType', 'SendingFromDomainDisabled') + 'ExoAdminAuditLogConfig' = @('UnifiedAuditLogIngestionEnabled', 'AdminAuditLogEnabled') + 'ExoAntiPhishPolicies' = @('Name', 'Identity', 'Enabled', 'PhishThresholdLevel', 'EnableMailboxIntelligence', 'EnableMailboxIntelligenceProtection', 'EnableSpoofIntelligence', 'TargetedUserProtectionAction', 'TargetedDomainProtectionAction', 'MailboxIntelligenceProtectionAction', 'AuthenticationFailAction', 'EnableFirstContactSafetyTips', 'EnableSimilarUsersSafetyTips', 'EnableSimilarDomainsSafetyTips', 'EnableUnusualCharactersSafetyTips', 'EnableUnauthenticatedSender', 'ExcludedSenders', 'ExcludedDomains', 'RecipientDomainIs', 'HonorDmarcPolicy') + 'ExoAtpPolicyForO365' = @('EnableATPForSPOTeamsODB', 'EnableSafeDocs', 'AllowSafeDocsOpen') + 'ExoDkimSigningConfig' = @('Domain', 'Enabled', 'Selector1CNAME', 'Selector2CNAME') + 'ExoHostedContentFilterPolicy' = @('Name', 'Identity', 'AllowedSenders', 'AllowedSenderDomains', 'EnableSafeList', 'SpamAction', 'HighConfidenceSpamAction', 'BulkSpamAction', 'PhishSpamAction', 'HighConfidencePhishAction', 'RecipientDomainIs', 'BulkThreshold', 'MarkAsSpamBulkMail', 'QuarantineRetentionPeriod', 'InlineSafetyTipsEnabled', 'IPAllowList', 'PhishZapEnabled', 'SpamZapEnabled', + 'IncreaseScoreWithImageLinks', 'IncreaseScoreWithNumericIps', 'IncreaseScoreWithRedirectToOtherPort', 'IncreaseScoreWithBizOrInfoUrls', 'MarkAsSpamEmptyMessages', 'MarkAsSpamJavaScriptInHtml', 'MarkAsSpamFramesInHtml', 'MarkAsSpamObjectTagsInHtml', 'MarkAsSpamEmbedTagsInHtml', 'MarkAsSpamFormTagsInHtml', 'MarkAsSpamWebBugsInHtml', 'MarkAsSpamSensitiveWordList', 'MarkAsSpamFromAddressAuthFail', 'MarkAsSpamNdrBackscatter', 'MarkAsSpamSpfRecordHardFail') + 'ExoHostedOutboundSpamFilterPolicy' = @('Identity', 'IsDefault', 'RecipientLimitExternalPerHour', 'RecipientLimitInternalPerHour', 'RecipientLimitPerDay', 'ActionWhenThresholdReached', 'NotifyOutboundSpam', 'NotifyOutboundSpamRecipients', 'BccSuspiciousOutboundMail', 'BccSuspiciousOutboundAdditionalRecipients', 'AutoForwardingMode') + 'ExoInboundConnector' = @('Identity', 'Enabled', 'SenderDomains', 'EFSkipLastIP', 'EFSkipIPs', 'EFTestMode', 'EFUsers') + 'ExoMalwareFilterPolicies' = @('Name', 'Identity', 'IsDefault', 'EnableFileFilter', 'FileTypes', 'EnableInternalSenderAdminNotifications', 'InternalSenderAdminAddress', 'ZapEnabled', 'Action', 'RecipientDomainIs') + 'ExoOrganizationConfig' = @('CustomerLockBoxEnabled', 'BookingsEnabled', 'AuditDisabled', 'ExternalInOutlookEnabled', 'ExternalInOutlook', 'OAuth2ClientProfileEnabled', 'MailTipsAllTipsEnabled', 'MailTipsExternalRecipientsTipsEnabled', 'MailTipsGroupMetricsEnabled', 'MailTipsLargeAudienceThreshold', 'RejectDirectSend') + 'ExoPresetSecurityPolicy' = @('Identity', 'State', 'ImpersonationProtectionState', 'EnableMailboxIntelligence', 'EnableMailboxIntelligenceProtection', 'EnableSimilarUsersSafetyTips', 'EnableSimilarDomainsSafetyTips', 'EnableUnusualCharactersSafetyTips') + 'ExoProtectionAlert' = @('Name', 'Disabled') + 'ExoRemoteDomain' = @('Name', 'DomainName', 'AutoForwardEnabled') + 'ExoSafeAttachmentPolicies' = @('Name', 'Identity', 'Enable', 'Action', 'RecipientDomainIs') + 'ExoSafeLinksPolicies' = @('Name', 'Identity', 'EnableSafeLinksForEmail', 'EnableSafeLinksForTeams', 'EnableSafeLinksForOffice', 'TrackClicks', 'TrackUserClicks', 'AllowClickThrough', 'ScanUrls', 'EnableForInternalSenders', 'DeliverMessageAfterScan', 'DisableUrlRewrite', 'RecipientDomainIs', 'IsBuiltInProtection') + 'ExoSharingPolicy' = @('Name', 'Enabled', 'Domains') + 'ExoTenantAllowBlockList' = @('Action', 'ListType', 'Value') + 'ExoTransportConfig' = @('SmtpClientAuthenticationDisabled') + 'ExoTransportRules' = @('Name', 'State', 'Priority', 'SetSCL', 'SetSpamConfidenceLevel', 'SetHeaderName', 'SetHeaderValue', 'SenderDomainIs') + 'FormsSettings' = @('isInOrgFormsPhishingScanEnabled') + 'Groups' = @('id', 'displayName', 'mail', 'visibility', 'groupTypes', 'members', 'isAssignableToRole') + 'Guests' = @('id', 'displayName', 'userPrincipalName', 'accountEnabled', 'signInActivity', 'createdDateTime', 'sponsors') + # URLName is added by the collector (Add-Member), not returned by Graph. It carries the + # Graph resource each policy came from (iosManagedAppProtection / + # androidManagedAppProtection / targetedManagedAppConfiguration) and is the only + # platform discriminator on these records — @odata.type is not preserved in the cache. + 'IntuneAppProtectionManagedAppPolicies' = @('URLName', 'displayName', 'assignments') + 'IntuneConfigurationPolicies' = @('name', 'platforms', 'technologies', 'templateReference', 'settings', 'assignments') + 'IntuneDeviceCompliancePolicies' = @('@odata.type', 'displayName', 'assignments', 'osMinimumVersion', 'bitLockerEnabled', 'storageRequireEncryption') + 'IntuneDeviceConfigurations' = @('@odata.type', 'displayName', 'assignments', 'qualityUpdatesDeferralPeriodInDays', 'fileVaultEnabled', 'wiFiSecurityType') + 'IntuneDeviceEnrollmentConfigurations' = @('@odata.type', 'displayName', 'priority', 'deviceEnrollmentConfigurationType', 'assignments', 'androidForWorkRestriction', 'androidRestriction', 'iosRestriction', 'macOSRestriction', 'windowsRestriction') + 'LicenseOverview' = @('License', 'TotalLicenses', 'CountUsed', 'ServicePlans', 'AssignedUsers', 'TermInfo') + 'Mailboxes' = @('UPN', 'UserPrincipalName', 'displayName', 'recipientTypeDetails', 'ExternalDirectoryObjectId', 'AuditEnabled', 'AuditOwner', 'AuditBypassEnabled', 'WhenSoftDeleted', 'LitigationHoldEnabled', 'LicensedForLitigationHold', 'ComplianceTagHoldApplied', 'RetentionPolicy', 'InPlaceHolds') + 'ManagedDevices' = @('deviceName', 'lastSyncDateTime', 'operatingSystem', 'osVersion') + 'MDEOnboarding' = @('partnerState') + 'MFAState' = @('UPN', 'userPrincipalName', 'DisplayName', 'AccountEnabled', 'UserType', 'IsAdmin', 'isLicensed', 'PerUser', 'PerUserMFAState', 'CoveredByCA', 'CoveredBySD', 'MFARegistration', 'MFACapable', 'MFAMethods') + 'NamedLocations' = @('@odata.type', 'displayName', 'isTrusted') + 'OfficeActivations' = @('userPrincipalName', 'userActivationCounts') + 'Organization' = @('onPremisesSyncEnabled', 'onPremisesLastSyncDateTime') + 'OwaMailboxPolicy' = @('Identity', 'IsDefault', 'PersonalAccountsEnabled', 'PersonalAccountCalendarsEnabled', 'AdditionalStorageProvidersAvailable') + 'ReportSubmissionPolicy' = @('ReportJunkToCustomizedAddress', 'ReportPhishToCustomizedAddress', 'ReportChatMessageEnabled', 'ReportChatMessageToCustomizedAddressEnabled') + 'RiskDetections' = @('riskState', 'riskLevel', 'riskEventType', 'riskDetail', 'userPrincipalName', 'userDisplayName', 'detectedDateTime', 'activityDateTime') + 'RiskyServicePrincipals' = @('id', 'appId', 'displayName', 'servicePrincipalType', 'riskState', 'riskLevel', 'riskLastUpdatedDateTime') + 'RiskyUsers' = @('id', 'userPrincipalName', 'riskState', 'riskLevel', 'riskDetail', 'riskLastUpdatedDateTime') + # 'principal' is NOT read by any test file — Get-CippDbRoleMembers reads + # $member.principal.displayName/.userPrincipalName. Omitting it would silently blank + # every role member across the CIS/E8/ZTNA privileged-access tests. + 'RoleAssignmentScheduleInstances' = @('roleDefinitionId', 'assignmentType', 'memberType', 'endDateTime', 'principalId', 'principal') + 'RoleEligibilitySchedules' = @('roleDefinitionId', 'principalId', 'principal', 'scheduleInfo') + # policyId, not id: this type is sourced from roleManagementPolicyAssignments (only the + # assignment carries roleDefinitionId) and the policy is flattened up one level. + 'RoleManagementPolicies' = @('policyId', 'scopeId', 'scopeType', 'roleDefinitionId', 'rules', 'effectiveRules') + 'Roles' = @('id', 'displayName', 'roleTemplateId', 'members') + 'SecureScore' = @('currentScore', 'maxScore', 'createdDateTime', 'controlScores') + 'SensitivityLabels' = @('name', 'PolicyName', 'IsValid', 'isActive', 'sensitivity', 'parent', 'hasProtection') + 'ServicePrincipalRiskDetections' = @('servicePrincipalId', 'servicePrincipalDisplayName', 'appId', 'activity', 'riskState', 'riskLevel', 'riskEventType', 'detectedDateTime', 'lastUpdatedDateTime') + 'ServicePrincipals' = @('id', 'appId', 'displayName', 'accountEnabled', 'keyCredentials', 'passwordCredentials', 'appOwnerOrganizationId', 'servicePrincipalType', 'replyUrls', 'owners', 'appRoleAssignmentRequired', 'preferredSingleSignOnMode') + 'Settings' = @('id', 'templateId', 'displayName', 'values', 'isOfficeStoreEnabled', 'isAppAndServicesTrialEnabled', 'isInOrgFormsPhishingScanEnabled') + 'SPOTenant' = @('LegacyAuthProtocolsEnabled', 'EnableAzureADB2BIntegration', 'SharingCapability', 'OneDriveSharingCapability', 'PreventExternalUsersFromResharing', 'SharingDomainRestrictionMode', 'SharingAllowedDomainList', 'SharingBlockedDomainList', 'DefaultSharingLinkType', 'DefaultLinkPermission', 'ExternalUserExpirationRequired', 'ExternalUserExpireInDays', 'EmailAttestationRequired', 'EmailAttestationReAuthDays', 'DisallowInfectedFileDownload') + 'UserRegistrationDetails' = @('id', 'userPrincipalName', 'userDisplayName', 'isMfaCapable', 'isMfaRegistered', 'methodsRegistered') + 'Users' = @('id', 'userPrincipalName', 'displayName', 'accountEnabled', 'userType', 'onPremisesSyncEnabled', 'assignedLicenses', 'assignedPlans', 'signInActivity', 'passwordPolicies') + } + } + + return $script:CippTestDataFieldManifest[$Type] +} diff --git a/Modules/CIPPCore/Public/Get-DefenderCves.ps1 b/Modules/CIPPCore/Public/Get-DefenderCves.ps1 new file mode 100644 index 0000000000000..0a36aa2930663 --- /dev/null +++ b/Modules/CIPPCore/Public/Get-DefenderCves.ps1 @@ -0,0 +1,127 @@ +function get-DefenderCVEs { + <# + .SYNOPSIS + Caches all vulnerabilities devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache vulnerabilities for + + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter + ) + + try { + $AllVulns = Get-DefenderTvmRaw -TenantId $TenantFilter -MaxPages 0 + + if (-not $AllVulns) { + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "No vulnerability data returned from Defender TVM" -sev 'Warning' + return + } + + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Retrieved $($AllVulns.Count) CVE records from Defender TVM" -sev 'Info' + try{ + # Initialize a tracker for this tenant session + $CveAggregator = @{} + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Aggregator Failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + try{ + # Group the raw TVM records into unified CVE buckets + foreach ($Vuln in $AllVulns) { + $CveId = $Vuln.cveId + try{ + if (-not $CveAggregator.ContainsKey($CveId)) { + # Establish global CVE & software properties for this specific tenant + $CveAggregator[$CveId] = @{ + cveId = $CveId + customerId = $TenantFilter + softwareVendor = $Vuln.softwareVendor ?? '' + softwareName = $Vuln.softwareName ?? '' + vulnerabilitySeverityLevel = $Vuln.vulnerabilitySeverityLevel ?? '' + recommendedSecurityUpdate = $Vuln.recommendedSecurityUpdate ?? '' + recommendedSecurityUpdateUrl = $Vuln.recommendedSecurityUpdateUrl ?? '' + exploitabilityLevel = $Vuln.exploitabilityLevel ?? '' + + # Arrays to collect device metadata efficiently + AffectedDevices = [System.Collections.Generic.List[object]]::new() + } + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Failed to establish global: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + try{ + # Extract properties specific to this device instance + $DevicePayload = @{ + deviceId = ($Vuln.deviceId -join ',') ?? '' + deviceName = ($Vuln.deviceName -join ',') ?? '' + osVersion = $Vuln.osVersion ?? '' + softwareVersion = ($Vuln.softwareVersion -join ',') ?? '' + diskPaths = if ($Vuln.diskPaths) { $Vuln.diskPaths -join ';' } else { '' } + registryPaths = if ($Vuln.registryPaths) { $Vuln.registryPaths -join ';' } else { '' } + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Failed to extract: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + # Append to our tracking list + [void]$CveAggregator[$CveId].AffectedDevices.Add($DevicePayload) + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Allover Build: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + + $Entities = [System.Collections.Generic.List[object]]::new() + + foreach ($CveKey in $CveAggregator.Keys) { + $CveData = $CveAggregator[$CveKey] + + # Flatten or convert device info arrays into a compact, compressed JSON string + $CompactDeviceJson = $CveData.AffectedDevices | ConvertTo-Json -Compress + + [void]$Entities.Add(@{ + PartitionKey = $CveKey + RowKey = $TenantFilter # RowKey becomes just the Tenant, ensuring 1 row per CVE per Tenant + customerId = $TenantFilter + cveId = $CveKey + softwareVendor = $CveData.softwareVendor + softwareName = $CveData.softwareName + vulnerabilitySeverityLevel = $CveData.vulnerabilitySeverityLevel + recommendedSecurityUpdate = $CveData.recommendedSecurityUpdate + recommendedSecurityUpdateUrl = $CveData.recommendedSecurityUpdateUrl + exploitabilityLevel = $CveData.exploitabilityLevel + + # Meta aggregation counts + deviceCount = $CveData.AffectedDevices.Count + + # All individual device variations compressed safely inside a single field + deviceDetailsJson = $CompactDeviceJson + + lastUpdated = [string]$(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + }) + } + + if ($Entities.Count -eq 0) { + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "No valid CVE records to cache" -sev 'Warning' + return + } + + $SuccessCount = 0 + $FailCount = 0 + + $UniqueCves = ($Entities | Select-Object -ExpandProperty cveId -Unique).Count + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "Retrieved $UniqueCves Unique CVEs" -sev 'Info' + + return $Entities + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'DefenderCVEs' -tenant $TenantFilter -message "CVE Cache Refresh failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw + } +} diff --git a/Modules/CIPPCore/Public/Get-DefenderTvmRaw.ps1 b/Modules/CIPPCore/Public/Get-DefenderTvmRaw.ps1 new file mode 100644 index 0000000000000..7e1b567738dba --- /dev/null +++ b/Modules/CIPPCore/Public/Get-DefenderTvmRaw.ps1 @@ -0,0 +1,65 @@ +function Get-DefenderTvmRaw { + <# + .SYNOPSIS + Fetch Defender TVM SoftwareVulnerabilitiesByMachine with paging. + .PARAMETER TenantId + Microsoft Entra tenant id to query. + .PARAMETER MaxPages + Optional page cap (0 = no cap). + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][string]$TenantId, + [int]$MaxPages = 0 + ) + + $scope = 'https://api.securitycenter.microsoft.com/.default' + $uri = 'https://api.securitycenter.microsoft.com/api/machines/SoftwareVulnerabilitiesByMachine' + $all = New-Object System.Collections.Generic.List[object] + $page = 0 + + try { + do { + Write-LogMessage -API 'DefenderTVM' -tenant $TenantId -message "Fetching page $($page + 1)" -Sev 'Debug' + + $resp = New-GraphGetRequest -tenantid $TenantId -uri $uri -scope $scope + + if ($resp -is [System.Collections.IDictionary]) { + if ($resp.ContainsKey('value')) { + $rows = $resp.value + $nextLink = $resp.'@odata.nextLink' + if ($rows) { $all.AddRange($rows) } + $uri = $nextLink + Write-LogMessage -API 'DefenderTVM' -tenant $TenantId -message "Page $($page + 1): $($rows.Count) records" -Sev 'Debug' + } + else { + $all.Add($resp) + $uri = $null + } + } + elseif ($resp -is [System.Collections.IEnumerable] -and $resp -isnot [string]) { + $all.AddRange($resp) + $uri = $null + } + else { + $all.Add($resp) + $uri = $null + } + + $page++ + + if ($page -gt 100) { + Write-LogMessage -API 'DefenderTVM' -tenant $TenantId -message "Reached 100 page safety limit — stopping" -Sev 'Warning' + break + } + + } while ($uri -and ($MaxPages -eq 0 -or $page -lt $MaxPages)) + + Write-LogMessage -API 'DefenderTVM' -tenant $TenantId -message "Defender TVM fetch complete: $($all.Count) records across $page page(s)" -Sev 'Info' + return $all + } + catch { + Write-LogMessage -API 'DefenderTVM' -tenant $TenantId -message "Error on page $page`: $($_.Exception.Message)" -Sev 'Error' + throw + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Clear-CippTokenCache.ps1 b/Modules/CIPPCore/Public/GraphHelper/Clear-CippTokenCache.ps1 new file mode 100644 index 0000000000000..214ec8cf304b4 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Clear-CippTokenCache.ps1 @@ -0,0 +1,51 @@ +function Clear-CippTokenCache { + <# + .SYNOPSIS + Invalidates cached Graph tokens so the next request acquires a fresh one. + + .DESCRIPTION + Cached access tokens carry the scopes that were consented at the time they were + issued. After a consent change (CPV refresh/reset, permission update, SAM app + change) a cached token still presents the OLD scopes, so calls keep failing with + "Insufficient permission(s)" until the entry expires on its own. Call this + immediately after any consent change. + + Safe to call when the CIPP.CIPPTokenCache type is unavailable (e.g. running + outside the Craft host) - it becomes a no-op. + + .PARAMETER TenantFilter + Tenant (GUID) whose cached tokens should be dropped. Omit to clear every entry. + + .EXAMPLE + Clear-CippTokenCache -TenantFilter $TenantFilter + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [string] $TenantFilter + ) + + if ($null -eq ('CIPP.CIPPTokenCache' -as [type])) { + Write-Verbose 'CIPP.CIPPTokenCache is not available; skipping token cache invalidation.' + return 0 + } + + $Target = if ($TenantFilter) { $TenantFilter } else { 'all tenants' } + if (-not $PSCmdlet.ShouldProcess($Target, 'Invalidate cached Graph tokens')) { return 0 } + + try { + $Removed = if ($TenantFilter) { + [CIPP.CIPPTokenCache]::RemoveByTenant($TenantFilter) + } else { + [CIPP.CIPPTokenCache]::Clear() + } + Write-Information "Invalidated $Removed cached token(s) for $Target." + return $Removed + } catch { + # Never let cache invalidation break the consent flow that called it. + Write-Warning "Could not invalidate the token cache for $Target : $($_.Exception.Message)" + return 0 + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 index 7cdc576078d09..6db6c9566848b 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequest.ps1 @@ -5,7 +5,7 @@ function Get-AuthorisedRequest { Internal #> [CmdletBinding()] - Param( + param( [string]$TenantID, [string]$Uri ) @@ -13,7 +13,7 @@ function Get-AuthorisedRequest { $TenantID = $env:TenantID } - if ($Uri -like 'https://graph.microsoft.com/beta/contracts*' -or $Uri -like '*/customers/*' -or $Uri -eq 'https://graph.microsoft.com/v1.0/me/sendMail' -or $Uri -like '*/tenantRelationships/*' -or $Uri -like '*/security/partner/*') { + if ($Uri -like 'https://graph.microsoft.com/beta/contracts*' -or $Uri -like '*/customers/*' -or $Uri -eq 'https://graph.microsoft.com/v1.0/me/sendMail' -or $Uri -like '*/tenantRelationships/*' -or $Uri -like '*/security/partner/*' -or $Uri -like '*/organization') { return $true } $Tenant = Get-Tenants -IncludeErrors -TenantFilter $TenantID | Where-Object { $_.Excluded -eq $false } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequestError.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequestError.ps1 new file mode 100644 index 0000000000000..dbe0b664c64b7 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-AuthorisedRequestError.ps1 @@ -0,0 +1,49 @@ +function Get-AuthorisedRequestError { + <# + .SYNOPSIS + Builds an actionable message for a tenant that failed Get-AuthorisedRequest. + + .DESCRIPTION + Get-AuthorisedRequest only returns a boolean, so every caller historically emitted the + same catch-all: "You cannot manage your own tenant or tenants not under your scope". + That conflated two situations with different fixes, and was misleading besides - the + partner tenant is present in Get-Tenants, so "your own tenant" was rarely the reason. + + This works out which of the two actionable cases applies: + - the tenant is present but excluded -> un-exclude it in CIPP + - the tenant is not in the list -> tenant sync / GDAP scope + + Deliberately echoes only the identifier the caller already supplied. No tenant names, + customer ids, or tenant-list contents are disclosed. + + Call this on the deny path only - it performs a tenant lookup. + + .PARAMETER TenantID + The tenant identifier that was refused. + + .PARAMETER Context + Short description of the operation, used as the message prefix (e.g. 'Graph request'). + + .EXAMPLE + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Graph request') + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [string] $TenantID, + [string] $Context = 'Request' + ) + + if (-not $TenantID) { $TenantID = $env:TenantID } + + $Tenant = Get-Tenants -IncludeErrors -TenantFilter $TenantID | Select-Object -First 1 + $Reason = if ($Tenant -and $Tenant.Excluded -eq $true) { + 'the tenant is excluded from CIPP management' + } else { + "the tenant is not in CIPP's tenant list" + } + + return "$Context denied for '$TenantID': $Reason." +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 index af5d0ae7ef65b..fd023de15e5a5 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippException.ps1 @@ -5,12 +5,13 @@ function Get-CippException { ) [PSCustomObject]@{ - Message = $Exception.Exception.Message - NormalizedError = Get-NormalizedError -message $Exception.Exception.Message - Position = $Exception.InvocationInfo.PositionMessage - StackTrace = ($Exception.ScriptStackTrace | Out-String) - ScriptName = $Exception.InvocationInfo.ScriptName - LineNumber = $Exception.InvocationInfo.ScriptLineNumber - Category = $Exception.CategoryInfo.ToString() + Message = $Exception.Exception.Message ?? 'Not available' + NormalizedError = (Get-NormalizedError -message $Exception.Exception.Message) ?? 'Not available' + RawError = ($Exception.Exception.Data['RawErrorBody'] ?? $Exception.ErrorDetails.Message ?? $Exception.Exception.Response.Content) ?? 'Not available' + Position = $Exception.InvocationInfo.PositionMessage ?? 'Not available' + StackTrace = ($Exception.ScriptStackTrace | Out-String) ?? 'Not available' + ScriptName = $Exception.InvocationInfo.ScriptName ?? 'Not available' + LineNumber = $Exception.InvocationInfo.ScriptLineNumber ?? 'Not available' + Category = ($Exception.CategoryInfo.ToString()) ?? 'Not available' } } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsLocationLookup.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsLocationLookup.ps1 new file mode 100644 index 0000000000000..ed0f681942b05 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsLocationLookup.ps1 @@ -0,0 +1,45 @@ +function Get-CippTeamsLocationLookup { + <# + .SYNOPSIS + Builds a lookup of Teams emergency LocationId -> displayable label for a tenant. + + .DESCRIPTION + The Teams telephone-number list only carries LocationId / CivicAddressId GUIDs, which + are meaningless in a table. This resolves them against Skype.Ncs/locations, falling back + through description -> place name -> street address -> the id itself, matching the + fallback the Emergency Location picker uses in the UI. + + Returns an empty hashtable if the lookup fails, so callers degrade to a blank column + rather than failing the whole number list. + + .PARAMETER TenantFilter + Target tenant (GUID or default domain). + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)] $TenantFilter + ) + + $Lookup = @{} + try { + foreach ($Location in @(New-TeamsRequestV2 -TenantFilter $TenantFilter -Path 'Skype.Ncs/locations')) { + if (-not $Location.id) { continue } + $Address = @($Location.houseNumber, $Location.streetName, $Location.cityOrTown) | Where-Object { $_ } + $Lookup[[string]$Location.id] = if ($Location.description) { + $Location.description + } elseif ($Location.location) { + $Location.location + } elseif ($Address) { + $Address -join ' ' + } else { + $Location.id + } + } + } catch { + Write-Information "Could not resolve Teams emergency locations for $TenantFilter : $($_.Exception.Message)" + } + return $Lookup +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsNumberType.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsNumberType.ps1 new file mode 100644 index 0000000000000..1aa697d2a2dc3 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/Get-CippTeamsNumberType.ps1 @@ -0,0 +1,27 @@ +function Get-CippTeamsNumberType { + <# + .SYNOPSIS + Normalizes a Teams phone number type to the casing the Graph API expects. + + .DESCRIPTION + The Teams ConfigAPI number list returns PascalCase ('DirectRouting'), while the + teamsAdministration Graph actions expect the camelCase enum ('directRouting'). + Unknown values are passed through unchanged so the service can reject them with a + meaningful error rather than us silently guessing. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [string] $NumberType + ) + + # switch is case-insensitive by default + switch ($NumberType) { + 'DirectRouting' { return 'directRouting' } + 'CallingPlan' { return 'callingPlan' } + 'OperatorConnect' { return 'operatorConnect' } + default { return $NumberType } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 index 257b7b22aad05..fa9b948eebf34 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphToken.ps1 @@ -1,8 +1,20 @@ -function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshToken, $ReturnRefresh, $SkipCache) { +function Get-GraphToken { <# .FUNCTIONALITY Internal #> + [CmdletBinding()] + param( + $tenantid, + $scope, + $AsApp, + $AppID, + $AppSecret, + $refreshToken, + $ReturnRefresh, + $SkipCache, + [switch]$UseCertificate + ) if (!$scope) { $scope = 'https://graph.microsoft.com/.default' } if (!$tenantid) { $tenantid = $env:TenantID } @@ -12,6 +24,7 @@ function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshT if ($UseSharedTokenCache) { $CacheClientId = if ($AppID) { [string]$AppID } else { [string]$env:ApplicationID } $GrantType = if ($asApp -eq $true -or ($null -ne $AppID -and $null -ne $AppSecret)) { 'client_credentials' } else { 'refresh_token' } + if ($UseCertificate -eq $true) { $GrantType = "${GrantType}_certificate" } $SharedTokenCacheKey = [CIPP.CIPPTokenCache]::BuildKey([string]$tenantid, [string]$scope, [bool]$asApp, $CacheClientId, $GrantType) $SharedCacheEntry = [CIPP.CIPPTokenCache]::Lookup($SharedTokenCacheKey, 120) if ($SharedCacheEntry.Found -and -not [string]::IsNullOrWhiteSpace($SharedCacheEntry.TokenPayloadJson)) { @@ -48,144 +61,170 @@ function Get-GraphToken($tenantid, $scope, $AsApp, $AppID, $AppSecret, $refreshT } } try { - if (!$env:SetFromProfile) { $CIPPAuth = Get-CIPPAuthentication; Write-Host 'Could not get Refreshtoken from environment variable. Reloading token.' } - $ConfigTable = Get-CippTable -tablename 'Config' - $Filter = "PartitionKey eq 'AppCache' and RowKey eq 'AppCache'" - $AppCache = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter - #force auth update is appId is not the same as the one in the environment variable. - if ($AppCache.ApplicationId -and $env:ApplicationID -ne $AppCache.ApplicationId) { - Write-Host "Setting environment variable ApplicationID to $($AppCache.ApplicationId)" - $CIPPAuth = Get-CIPPAuthentication - } - $refreshToken = $env:RefreshToken - #Get list of tenants that have 'directTenant' set to true - #get directtenants directly from table, avoid get-tenants due to performance issues - $TenantsTable = Get-CippTable -tablename 'Tenants' - $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" - $ClientType = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter | Where-Object { $_.customerId -eq $tenantid -or $_.defaultDomainName -eq $tenantid } - if ($tenantid -ne $env:TenantID -and $clientType.delegatedPrivilegeStatus -eq 'directTenant') { - Write-Host "Using direct tenant refresh token for $($clientType.customerId)" - $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + if (!$env:SetFromProfile) { $CIPPAuth = Get-CIPPAuthentication; Write-Host 'Could not get Refreshtoken from environment variable. Reloading token.' } + $ConfigTable = Get-CippTable -tablename 'Config' + $Filter = "PartitionKey eq 'AppCache' and RowKey eq 'AppCache'" + $AppCache = Get-CIPPAzDataTableEntity @ConfigTable -Filter $Filter + #force auth update is appId is not the same as the one in the environment variable. + if ($AppCache.ApplicationId -and $env:ApplicationID -ne $AppCache.ApplicationId) { + $CIPPAuth = Get-CIPPAuthentication # reload creds from KV (source of truth) + if ($env:ApplicationID -and $env:ApplicationID -ne $AppCache.ApplicationId) { + # KV and AppCache genuinely diverged — reconcile the marker to KV so we + # don't reload on every subsequent token call. + Write-Host "AppCache ApplicationId ($($AppCache.ApplicationId)) differs from KV ($env:ApplicationID); reconciling AppCache." + $null = Add-CIPPAzDataTableEntity @ConfigTable -Entity @{ + PartitionKey = 'AppCache'; RowKey = 'AppCache'; ApplicationId = "$env:ApplicationID" + } -Force + } + } + $refreshToken = $env:RefreshToken + #Get list of tenants that have 'directTenant' set to true + #get directtenants directly from table, avoid get-tenants due to performance issues + $TenantsTable = Get-CippTable -tablename 'Tenants' + $Filter = "PartitionKey eq 'Tenants' and delegatedPrivilegeStatus eq 'directTenant'" + $ClientType = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter | Where-Object { $_.customerId -eq $tenantid -or $_.defaultDomainName -eq $tenantid } + if ($tenantid -ne $env:TenantID -and $clientType.delegatedPrivilegeStatus -eq 'directTenant') { + Write-Host "Using direct tenant refresh token for $($clientType.customerId)" + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue - if ($null -eq $ClientRefreshToken) { - # Lazy load the refresh token from Key Vault only when needed - Write-Host "Fetching refresh token for direct tenant $($clientType.customerId) from Key Vault" - try { - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { - # Development environment - get from table storage - $Table = Get-CIPPTable -tablename 'DevSecrets' - $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" - $secretname = $clientType.customerId -replace '-', '_' - if ($Secret.$secretname) { - Set-Item -Path "env:\$($clientType.customerId)" -Value $Secret.$secretname -Force - $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue - } - } else { - # Production environment - get from Key Vault - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - $secret = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $clientType.customerId -AsPlainText -ErrorAction Stop - if ($secret) { - Set-Item -Path "env:\$($clientType.customerId)" -Value $secret -Force - $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + if ($null -eq $ClientRefreshToken) { + # Lazy load the refresh token from Key Vault only when needed + Write-Host "Fetching refresh token for direct tenant $($clientType.customerId) from Key Vault" + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + # Development environment - get from table storage + $Table = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-AzDataTableEntity @Table -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + $secretname = $clientType.customerId -replace '-', '_' + if ($Secret.$secretname) { + Set-Item -Path "env:\$($clientType.customerId)" -Value $Secret.$secretname -Force + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + } + } else { + # Production environment - get from Key Vault + $keyvaultname = Get-CippKeyVaultName + $secret = Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $clientType.customerId -AsPlainText -ErrorAction Stop + if ($secret) { + Set-Item -Path "env:\$($clientType.customerId)" -Value $secret -Force + $ClientRefreshToken = Get-Item -Path "env:\$($clientType.customerId)" -ErrorAction SilentlyContinue + } } + } catch { + Write-Host "Failed to retrieve refresh token for direct tenant $($clientType.customerId): $($_.Exception.Message)" } - } catch { - Write-Host "Failed to retrieve refresh token for direct tenant $($clientType.customerId): $($_.Exception.Message)" } - } - $refreshToken = $ClientRefreshToken.Value - } + $refreshToken = $ClientRefreshToken.Value + } - $AuthBody = @{ - client_id = $env:ApplicationID - client_secret = $env:ApplicationSecret - scope = $Scope - refresh_token = $refreshToken - grant_type = 'refresh_token' - } - if ($asApp -eq $true) { $AuthBody = @{ client_id = $env:ApplicationID client_secret = $env:ApplicationSecret scope = $Scope - grant_type = 'client_credentials' - } - } - - if ($null -ne $AppID -and $null -ne $refreshToken) { - $AuthBody = @{ - client_id = $appid refresh_token = $refreshToken - scope = $Scope grant_type = 'refresh_token' } - } + if ($asApp -eq $true) { + $AuthBody = @{ + client_id = $env:ApplicationID + client_secret = $env:ApplicationSecret + scope = $Scope + grant_type = 'client_credentials' + } + } - if ($null -ne $AppID -and $null -ne $AppSecret) { - $AuthBody = @{ - client_id = $AppID - client_secret = $AppSecret - scope = $Scope - grant_type = 'client_credentials' + if ($null -ne $AppID -and $null -ne $refreshToken) { + $AuthBody = @{ + client_id = $appid + refresh_token = $refreshToken + scope = $Scope + grant_type = 'refresh_token' + } } - } - # Rebuild cache key after credential loading (env vars may have been set by Get-CIPPAuthentication) - if ($UseSharedTokenCache) { - $CacheClientId = if ($AppID) { [string]$AppID } else { [string]$env:ApplicationID } - $GrantType = if ($asApp -eq $true -or ($null -ne $AppID -and $null -ne $AppSecret)) { 'client_credentials' } else { 'refresh_token' } - $SharedTokenCacheKey = [CIPP.CIPPTokenCache]::BuildKey([string]$tenantid, [string]$scope, [bool]$asApp, $CacheClientId, $GrantType) - } + if ($null -ne $AppID -and $null -ne $AppSecret) { + $AuthBody = @{ + client_id = $AppID + client_secret = $AppSecret + scope = $Scope + grant_type = 'client_credentials' + } + } - try { - $AccessToken = (Invoke-CIPPRestMethod -Method post -Uri "https://login.microsoftonline.com/$($tenantid)/oauth2/v2.0/token" -Body $Authbody -ContentType 'application/x-www-form-urlencoded' -ErrorAction Stop) - if ($null -eq $AccessToken.expires_on -and $AccessToken.expires_in) { - $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $AccessToken.expires_in - Add-Member -InputObject $AccessToken -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force + # Rebuild cache key after credential loading (env vars may have been set by Get-CIPPAuthentication) + if ($UseSharedTokenCache) { + $CacheClientId = if ($AppID) { [string]$AppID } else { [string]$env:ApplicationID } + $GrantType = if ($asApp -eq $true -or ($null -ne $AppID -and $null -ne $AppSecret)) { 'client_credentials' } else { 'refresh_token' } + if ($UseCertificate -eq $true) { $GrantType = "${GrantType}_certificate" } + $SharedTokenCacheKey = [CIPP.CIPPTokenCache]::BuildKey([string]$tenantid, [string]$scope, [bool]$asApp, $CacheClientId, $GrantType) } - if ($UseSharedTokenCache -and $SharedTokenCacheKey) { - try { - $TokenPayloadJson = $AccessToken | ConvertTo-Json -Depth 20 -Compress - [CIPP.CIPPTokenCache]::Store($SharedTokenCacheKey, $TokenPayloadJson, [int64]$AccessToken.expires_on) - } catch { - # Ignore shared cache write failures + try { + if ($UseCertificate -eq $true) { + $SAMCert = Get-CIPPSAMCertificate -ErrorAction Stop + if (-not $SAMCert) { throw 'No SAM certificate available. Run Update-CIPPSAMCertificate to create one.' } + } + if ($UseCertificate -eq $true -and $AuthBody.grant_type -eq 'client_credentials') { + # App-only with certificate: use the dedicated cert token function + # (has its own cache under the same key and the AADSTS700027 retry) + $AccessToken = Get-GraphTokenFromCert -TenantId $tenantid -AppId $AuthBody.client_id -Scope $scope -Certificate $SAMCert.Certificate -SkipCache:($SkipCache -eq $true) -ErrorAction Stop + if (-not $AccessToken.access_token) { throw "Could not get a token using the SAM certificate for $tenantid" } + } else { + if ($UseCertificate -eq $true) { + # Delegated with certificate: authenticate the app with a signed assertion + # instead of the client secret; the refresh token still provides user context + $null = $AuthBody.Remove('client_secret') + $AuthBody.client_assertion_type = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer' + $AuthBody.client_assertion = New-CIPPCertificateAssertion -TenantId $tenantid -AppId $AuthBody.client_id -Certificate $SAMCert.Certificate + } + $AccessToken = (Invoke-CIPPRestMethod -Method post -Uri "https://login.microsoftonline.com/$($tenantid)/oauth2/v2.0/token" -Body $Authbody -ContentType 'application/x-www-form-urlencoded' -ErrorAction Stop) + } + if ($null -eq $AccessToken.expires_on -and $AccessToken.expires_in) { + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $AccessToken.expires_in + Add-Member -InputObject $AccessToken -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force } - } - if ($ReturnRefresh) { return $AccessToken } - return @{ Authorization = "Bearer $($AccessToken.access_token)" } - } catch { - # Track consecutive Graph API failures - $TenantsTable = Get-CippTable -tablename Tenants - $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid - $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter - if (!$Tenant.RowKey) { - $donotset = $true - $Tenant = [pscustomobject]@{ - GraphErrorCount = 0 - LastGraphTokenError = '' - LastGraphError = '' - PartitionKey = 'TenantFailed' - RowKey = 'Failed' + if ($UseSharedTokenCache -and $SharedTokenCacheKey) { + try { + $TokenPayloadJson = $AccessToken | ConvertTo-Json -Depth 20 -Compress + [CIPP.CIPPTokenCache]::Store($SharedTokenCacheKey, $TokenPayloadJson, [int64]$AccessToken.expires_on) + } catch { + # Ignore shared cache write failures + } } - } - $Tenant.LastGraphError = if ( $_.ErrorDetails.Message) { - if (Test-Json $_.ErrorDetails.Message -ErrorAction SilentlyContinue) { - $msg = $_.ErrorDetails.Message | ConvertFrom-Json - "$($msg.error):$($msg.error_description)" + + if ($ReturnRefresh) { return $AccessToken } + return @{ Authorization = "Bearer $($AccessToken.access_token)" } + } catch { + # Track consecutive Graph API failures + $TenantsTable = Get-CippTable -tablename Tenants + $Filter = "PartitionKey eq 'Tenants' and (defaultDomainName eq '{0}' or customerId eq '{0}')" -f $tenantid + $Tenant = Get-CIPPAzDataTableEntity @TenantsTable -Filter $Filter + if (!$Tenant.RowKey) { + $donotset = $true + $Tenant = [pscustomobject]@{ + GraphErrorCount = 0 + LastGraphTokenError = '' + LastGraphError = '' + PartitionKey = 'TenantFailed' + RowKey = 'Failed' + } + } + $Tenant.LastGraphError = if ( $_.ErrorDetails.Message) { + if (Test-Json $_.ErrorDetails.Message -ErrorAction SilentlyContinue) { + $msg = $_.ErrorDetails.Message | ConvertFrom-Json + "$($msg.error):$($msg.error_description)" + } else { + "$($_.ErrorDetails.Message)" + } } else { - "$($_.ErrorDetails.Message)" + $_.Exception.Message } - } else { - $_.Exception.Message - } - $Tenant.GraphErrorCount++ + $Tenant.GraphErrorCount++ - if (!$donotset) { Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant } - throw "Could not get token: $($Tenant.LastGraphError)" - } + if (!$donotset) { Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant } + throw "Could not get token: $($Tenant.LastGraphError)" + } } finally { # Always release the per-key lock if we acquired it if ($LockAcquired -and $SharedTokenCacheKey) { diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 index 7d619a133d9fe..4ff324b320611 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-GraphTokenFromCert.ps1 @@ -8,80 +8,36 @@ function Get-GraphTokenFromCert { [string]$Scope = 'https://graph.microsoft.com/.default', [Parameter(Mandatory = $true)] - [System.Security.Cryptography.X509Certificates.X509Certificate2]$Certificate + [System.Security.Cryptography.X509Certificates.X509Certificate2]$Certificate, + [switch]$SkipCache ) ######################################################### # Create Bearer Token From Certificate for HBU Graph ######################################################### - # get sha256 hash of certificate - $sha256 = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider - $hash = $sha256.ComputeHash($Certificate.RawData) - $hash = [Convert]::ToBase64String($hash) - - # Create JWT timestamp for expiration - $StartDate = (Get-Date '1970-01-01T00:00:00Z' ).ToUniversalTime() - $JWTExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End (Get-Date).ToUniversalTime().AddMinutes(2)).TotalSeconds - $JWTExpiration = [math]::Round($JWTExpirationTimeSpan, 0) - - # Create JWT validity start timestamp - $NotBeforeExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End ((Get-Date).ToUniversalTime())).TotalSeconds - $NotBefore = [math]::Round($NotBeforeExpirationTimeSpan, 0) - - # Create JWT header - $JWTHeader = @{ - alg = 'PS256' - typ = 'JWT' - # Use the CertificateBase64Hash and replace/strip to match web encoding of base64 - 'x5t#S256' = $hash -replace '\+', '-' -replace '/', '_' -replace '=' - } - - # Create JWT payload - $JWTPayLoad = @{ - # Issuer = your application - iss = $AppId - - # What endpoint is allowed to use this JWT - aud = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" - - # JWT ID: random guid - jti = [guid]::NewGuid() - - # Expiration timestamp - exp = $JWTExpiration - - # Not to be used before - nbf = $NotBefore - - # JWT Subject - sub = $AppId + # Check the token cache before building a new assertion. Uses the shared .NET cache when + # loaded (cross-runspace), otherwise a script-scope fallback (local dev). + $UseSharedTokenCache = ($SkipCache -ne $true) -and ($null -ne ('CIPP.CIPPTokenCache' -as [type])) + if ($UseSharedTokenCache) { + $TokenCacheKey = [CIPP.CIPPTokenCache]::BuildKey([string]$TenantId, [string]$Scope, $true, [string]$AppId, 'client_credentials_certificate') + $CacheEntry = [CIPP.CIPPTokenCache]::Lookup($TokenCacheKey, 120) + if ($CacheEntry.Found -and -not [string]::IsNullOrWhiteSpace($CacheEntry.TokenPayloadJson)) { + try { + return ($CacheEntry.TokenPayloadJson | ConvertFrom-Json -ErrorAction Stop) + } catch { + [CIPP.CIPPTokenCache]::Remove($TokenCacheKey) + } + } + } elseif ($SkipCache -ne $true) { + $ScriptCacheKey = "$TenantId|$AppId|$Scope" + $Cached = $script:CertTokenCache.$ScriptCacheKey + if ($Cached.expires_on -and [int](Get-Date -UFormat %s -Millisecond 0) -lt ($Cached.expires_on - 120)) { + return $Cached + } } - # Convert header and payload to base64 - $JWTHeaderToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTHeader | ConvertTo-Json)) - $EncodedHeader = [System.Convert]::ToBase64String($JWTHeaderToByte) - - $JWTPayLoadToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTPayload | ConvertTo-Json)) - $EncodedPayload = [System.Convert]::ToBase64String($JWTPayLoadToByte) - - # Join header and Payload with "." to create a valid (unsigned) JWT - $JWT = $EncodedHeader + '.' + $EncodedPayload - - # Get the private key object of your certificate - # $PrivateKey = $Certificate.PrivateKey - $PrivateKey = ([System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($Certificate)) - - # Define RSA signature and hashing algorithm - $RSAPadding = [Security.Cryptography.RSASignaturePadding]::Pss - $HashAlgorithm = [Security.Cryptography.HashAlgorithmName]::SHA256 - - # Create a signature of the JWT - $Signature = [Convert]::ToBase64String( - $PrivateKey.SignData([System.Text.Encoding]::UTF8.GetBytes($JWT), $HashAlgorithm, $RSAPadding) - ) -replace '\+', '-' -replace '/', '_' -replace '=' - - # Join the signature to the JWT with "." - $JWT = $JWT + '.' + $Signature + # Build the signed client assertion (shared with Get-GraphToken -UseCertificate) + $JWT = New-CIPPCertificateAssertion -TenantId $TenantId -AppId $AppId -Certificate $Certificate # Create a hash with body parameters $Body = @{ @@ -108,10 +64,38 @@ function Get-GraphTokenFromCert { Headers = $Header } - try { - return Invoke-CIPPRestMethod @PostSplat - } catch { - Write-Error $_ + # AADSTS700027 occurs transiently after certificate rotation while the load-balanced + # token service nodes catch up with the directory - retry briefly before giving up. + $MaxRetries = 3 + for ($Attempt = 1; $Attempt -le $MaxRetries; $Attempt++) { + try { + $AccessToken = Invoke-CIPPRestMethod @PostSplat -ErrorAction Stop + if ($AccessToken.access_token) { + if ($null -eq $AccessToken.expires_on -and $AccessToken.expires_in) { + $ExpiresOn = [int](Get-Date -UFormat %s -Millisecond 0) + $AccessToken.expires_in + Add-Member -InputObject $AccessToken -NotePropertyName 'expires_on' -NotePropertyValue $ExpiresOn -Force + } + if ($UseSharedTokenCache) { + try { + [CIPP.CIPPTokenCache]::Store($TokenCacheKey, ($AccessToken | ConvertTo-Json -Depth 20 -Compress), [int64]$AccessToken.expires_on) + } catch { + # Ignore shared cache write failures + } + } elseif ($SkipCache -ne $true) { + if (-not $script:CertTokenCache) { $script:CertTokenCache = [HashTable]::Synchronized(@{}) } + $script:CertTokenCache.$ScriptCacheKey = $AccessToken + } + } + return $AccessToken + } catch { + if ($Attempt -lt $MaxRetries -and $_.ErrorDetails.Message -match 'AADSTS700027') { + Write-Warning "Certificate not yet recognized by the token service (attempt $Attempt of $MaxRetries). Retrying in 10 seconds." + Start-Sleep -Seconds 10 + } else { + Write-Error $_ + return + } + } } } diff --git a/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 b/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 index 43c7326489bed..5186d09eaeaef 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Get-SharePointAdminLink.ps1 @@ -56,7 +56,15 @@ function Get-SharePointAdminLink { throw "Failed to get SharePoint admin URL through autodiscover: $($_.Exception.Message)" } } else { - $tenantName = (New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/sites/root' -asApp $true -tenantid $TenantFilter).id.Split('.')[0] + # id looks like 'contoso.sharepoint.com,,' - the host's first label is the name. + $RootSite = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/sites/root' -asApp $true -tenantid $TenantFilter + $tenantName = ($RootSite.id -split '\.')[0] + } + + # Without a name every URL below is a well-formed link to nowhere ('https://-admin.sharepoint.com'). + # Callers cache what they get back, so a bad value here sticks around - fail instead. + if ([string]::IsNullOrWhiteSpace($tenantName)) { + throw "Could not determine the SharePoint tenant name for $TenantFilter. The tenant may not have SharePoint provisioned, or the Sites.Read.All permission may be missing." } # Return object with all needed properties diff --git a/Modules/CIPPCore/Public/GraphHelper/New-CIPPCertificateAssertion.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-CIPPCertificateAssertion.ps1 new file mode 100644 index 0000000000000..bda4ea3aa77e6 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-CIPPCertificateAssertion.ps1 @@ -0,0 +1,94 @@ +function New-CIPPCertificateAssertion { + <# + .SYNOPSIS + Builds a PS256-signed JWT client assertion from a certificate + + .DESCRIPTION + Creates the signed JWT used as client_assertion when authenticating an app against the + Entra token endpoint with a certificate instead of a client secret. Shared by the + client_credentials flow (Get-GraphTokenFromCert) and the refresh_token flow + (Get-GraphToken -UseCertificate). + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantId, + + [Parameter(Mandatory = $true)] + [string]$AppId, + + [Parameter(Mandatory = $true)] + [System.Security.Cryptography.X509Certificates.X509Certificate2]$Certificate + ) + + # get sha256 hash of certificate for the x5t#S256 header + $sha256 = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider + $hash = $sha256.ComputeHash($Certificate.RawData) + $hash = [Convert]::ToBase64String($hash) + + # Create JWT timestamp for expiration + $StartDate = (Get-Date '1970-01-01T00:00:00Z' ).ToUniversalTime() + $JWTExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End (Get-Date).ToUniversalTime().AddMinutes(2)).TotalSeconds + $JWTExpiration = [math]::Round($JWTExpirationTimeSpan, 0) + + # Create JWT validity start timestamp + $NotBeforeExpirationTimeSpan = (New-TimeSpan -Start $StartDate -End ((Get-Date).ToUniversalTime())).TotalSeconds + $NotBefore = [math]::Round($NotBeforeExpirationTimeSpan, 0) + + # Create JWT header + $JWTHeader = @{ + alg = 'PS256' + typ = 'JWT' + # Use the CertificateBase64Hash and replace/strip to match web encoding of base64 + 'x5t#S256' = $hash -replace '\+', '-' -replace '/', '_' -replace '=' + } + + # Create JWT payload + $JWTPayLoad = @{ + # Issuer = your application + iss = $AppId + + # What endpoint is allowed to use this JWT + aud = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" + + # JWT ID: random guid + jti = [guid]::NewGuid() + + # Expiration timestamp + exp = $JWTExpiration + + # Not to be used before + nbf = $NotBefore + + # JWT Subject + sub = $AppId + } + + # Convert header and payload to base64 + $JWTHeaderToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTHeader | ConvertTo-Json)) + $EncodedHeader = [System.Convert]::ToBase64String($JWTHeaderToByte) + + $JWTPayLoadToByte = [System.Text.Encoding]::UTF8.GetBytes(($JWTPayload | ConvertTo-Json)) + $EncodedPayload = [System.Convert]::ToBase64String($JWTPayLoadToByte) + + # Join header and Payload with "." to create a valid (unsigned) JWT + $JWT = $EncodedHeader + '.' + $EncodedPayload + + # Get the private key object of your certificate + $PrivateKey = ([System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($Certificate)) + + # Define RSA signature and hashing algorithm + $RSAPadding = [Security.Cryptography.RSASignaturePadding]::Pss + $HashAlgorithm = [Security.Cryptography.HashAlgorithmName]::SHA256 + + # Create a signature of the JWT + $Signature = [Convert]::ToBase64String( + $PrivateKey.SignData([System.Text.Encoding]::UTF8.GetBytes($JWT), $HashAlgorithm, $RSAPadding) + ) -replace '\+', '-' -replace '/', '_' -replace '=' + + # Join the signature to the JWT with "." + return $JWT + '.' + $Signature +} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ClassicAPIGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ClassicAPIGetRequest.ps1 index 9d0829c5d1141..c14e90164ffe4 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-ClassicAPIGetRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-ClassicAPIGetRequest.ps1 @@ -25,6 +25,6 @@ function New-ClassicAPIGetRequest($TenantID, $Uri, $Method = 'GET', $Resource = } until ($null -eq $NextURL -or ' ' -eq $NextURL) return $ReturnedData } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $TenantID -Context 'Classic API request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 index 2fdf0196a5602..8fbc6c7635c4c 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoBulkRequest.ps1 @@ -266,6 +266,6 @@ function New-ExoBulkRequest { return $FinalData } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Exchange bulk request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 index f562d32c2eedc..4464ebde0438d 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1 @@ -20,7 +20,7 @@ function New-ExoRequest { [Parameter(Mandatory = $false, ParameterSetName = 'ExoRequest')] [bool]$useSystemMailbox, - [string]$tenantid, + [string]$tenantid = $env:TenantID, [bool]$NoAuthCheck, @@ -32,7 +32,8 @@ function New-ExoRequest { [switch]$AvailableCmdlets, $ModuleVersion = '3.9.2', - [switch]$AsApp + [switch]$AsApp, + [switch]$UseCertificate ) if ((Get-AuthorisedRequest -TenantID $tenantid) -or $NoAuthCheck -eq $True) { if ($Compliance.IsPresent) { @@ -40,7 +41,9 @@ function New-ExoRequest { } else { $Resource = 'https://outlook.office365.com' } - $token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent + # -UseCertificate authenticates the app with the SAM certificate instead of the + # client secret: delegated (refresh token) by default, app-only with -AsApp + $token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent -UseCertificate:$UseCertificate if ($cmdParams) { #if cmdParams is a pscustomobject, convert to hashtable, otherwise leave as is @@ -165,6 +168,6 @@ function New-ExoRequest { return $ReturnedData.value } } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Exchange request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 index eb2db01e0716f..c191724346e55 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphBulkRequest.ps1 @@ -137,6 +137,6 @@ function New-GraphBulkRequest { Update-AzDataTableEntity -Force @TenantsTable -Entity $Tenant return $ReturnedData.responses } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Graph bulk request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 index a943f97e3c743..dbdaaf7b424d2 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphGetRequest.ps1 @@ -19,6 +19,13 @@ function New-GraphGetRequest { [hashtable]$extraHeaders, [switch]$ReturnRawResponse, [switch]$SkipValueExtraction, + # Emit each page straight to the pipeline instead of buffering the whole + # paginated result. Peak memory becomes one page rather than the entire + # dataset — use for large collections piped into a streaming consumer + # (e.g. Set-CIPPDBCache* | Add-CIPPDbItem). Trade-off: on a mid-pagination + # failure, pages already emitted have flowed downstream before the throw. + [switch]$Stream, + [switch]$UseCertificate, $Headers ) @@ -32,11 +39,10 @@ function New-GraphGetRequest { if ($headers) { $headers = $Headers } else { - if ($scope -eq 'ExchangeOnline') { - $headers = Get-GraphToken -tenantid $tenantid -scope 'https://outlook.office365.com/.default' -AsApp $asapp -SkipCache $skipTokenCache - } else { - $headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache - } + $TokenScope = if ($scope -eq 'ExchangeOnline') { 'https://outlook.office365.com/.default' } else { $scope } + # -UseCertificate authenticates the app with the SAM certificate instead of the + # client secret: delegated (refresh token) by default, app-only with -AsApp $true + $headers = Get-GraphToken -tenantid $tenantid -scope $TokenScope -AsApp $asapp -SkipCache $skipTokenCache -UseCertificate:$UseCertificate } if ($ComplexFilter) { $headers['ConsistencyLevel'] = 'eventual' @@ -58,7 +64,11 @@ function New-GraphGetRequest { } - $ReturnedData = do { + # Pagination loop. Its per-page output ($data.value etc.) is either buffered + # into $ReturnedData and returned (default), or streamed straight to the + # pipeline (-Stream). Same loop body either way — see the dispatch below. + $Pager = { + do { $RetryCount = 0 $MaxRetries = 3 $RequestSuccessful = $false @@ -180,8 +190,15 @@ function New-GraphGetRequest { } } while (-not $RequestSuccessful -and $RetryCount -le $MaxRetries) } until ([string]::IsNullOrEmpty($NextURL) -or $NextURL -is [object[]] -or ' ' -eq $NextURL) - return $ReturnedData + } + + if ($Stream) { + & $Pager + } else { + $ReturnedData = & $Pager + return $ReturnedData + } } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Graph request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 index c69c34636766c..28c9c85797605 100644 --- a/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/New-GraphPOSTRequest.ps1 @@ -19,6 +19,7 @@ function New-GraphPOSTRequest { $returnHeaders = $false, $maxRetries = 3, $ScheduleRetry = $false, + [switch]$UseCertificate, $headers ) @@ -26,7 +27,9 @@ function New-GraphPOSTRequest { if ($Headers) { $Headers = $Headers } else { - $Headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache + # -UseCertificate authenticates the app with the SAM certificate instead of the + # client secret: delegated (refresh token) by default, app-only with -AsApp $true + $Headers = Get-GraphToken -tenantid $tenantid -scope $scope -AsApp $asapp -SkipCache $skipTokenCache -UseCertificate:$UseCertificate } if ($AddedHeaders) { foreach ($header in $AddedHeaders.GetEnumerator()) { @@ -55,6 +58,7 @@ function New-GraphPOSTRequest { } catch { $ShouldRetry = $false $WaitTime = 0 + $RetryReason = '' $RawErrorBody = $_.ErrorDetails.Message $Message = if ($_.ErrorDetails.Message) { Get-NormalizedError -Message $_.ErrorDetails.Message @@ -67,20 +71,24 @@ function New-GraphPOSTRequest { $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 + $RetryReason = 'Rate limited (429).' + } else { + $WaitTime = Get-Random -Minimum 1.1 -Maximum 4.1 + $RetryReason = 'Rate limited (429) with no Retry-After header.' } + $ShouldRetry = $true } # Check for "Resource temporarily unavailable" elseif ($Message -like '*Resource temporarily unavailable*' -or $Message -like '*Too many requests*') { $WaitTime = Get-Random -Minimum 1.1 -Maximum 3.1 - Write-Warning "Resource temporarily unavailable. Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $maxRetries" + $RetryReason = 'Resource temporarily unavailable.' $ShouldRetry = $true } if ($ShouldRetry) { $RetryCount++ if ($RetryCount -lt $maxRetries) { + Write-Warning "$RetryReason Waiting $WaitTime seconds before retry. Attempt $($RetryCount + 1) of $maxRetries" Start-Sleep -Seconds $WaitTime } } else { @@ -113,6 +121,7 @@ function New-GraphPOSTRequest { if ($IgnoreErrors) { $RetryParameters.IgnoreErrors = $IgnoreErrors } if ($returnHeaders) { $RetryParameters.ReturnHeaders = $returnHeaders } if ($maxRetries) { $RetryParameters.maxRetries = $maxRetries } + if ($UseCertificate) { $RetryParameters.UseCertificate = $true } # Create the scheduled task object $TaskObject = [PSCustomObject]@{ @@ -150,6 +159,6 @@ function New-GraphPOSTRequest { return $ReturnedData } } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' + Write-Error (Get-AuthorisedRequestError -TenantID $tenantid -Context 'Graph request') } } diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 deleted file mode 100644 index 9d97e7a01ab0a..0000000000000 --- a/Modules/CIPPCore/Public/GraphHelper/New-TeamsAPIGetRequest.ps1 +++ /dev/null @@ -1,58 +0,0 @@ -function New-TeamsAPIGetRequest($Uri, $tenantID, $Method = 'GET', $Resource = '48ac35b8-9aa8-4d74-927d-1f4a14a0b239', $ContentType = 'application/json') { - <# - .FUNCTIONALITY - Internal - #> - - if ((Get-AuthorisedRequest -Uri $uri -TenantID $tenantid)) { - $token = Get-GraphToken -TenantID $tenantID -Scope "$Resource/.default" - $NextURL = $Uri - $ReturnedData = do { - $handler = $null - $httpClient = $null - $response = $null - try { - # Create handler and client with compression disabled - $handler = New-Object System.Net.Http.HttpClientHandler - $handler.AutomaticDecompression = [System.Net.DecompressionMethods]::None - $httpClient = New-Object System.Net.Http.HttpClient($handler) - - # Add all required headers - $headers = @{ - 'Authorization' = $token.Authorization - 'x-ms-client-request-id' = [guid]::NewGuid().ToString() - 'x-ms-client-session-id' = [guid]::NewGuid().ToString() - 'x-ms-correlation-id' = [guid]::NewGuid().ToString() - 'X-Requested-With' = 'XMLHttpRequest' - 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' - 'Accept' = 'application/json' - 'Accept-Encoding' = 'identity' - 'User-Agent' = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36' - } - - foreach ($header in $headers.GetEnumerator()) { - $httpClient.DefaultRequestHeaders.Add($header.Key, $header.Value) - } - - $response = $httpClient.GetAsync($NextURL).Result - $contentString = $response.Content.ReadAsStringAsync().Result - - # Parse JSON and return data - $Data = $contentString | ConvertFrom-Json - - $Data - if ($noPagination) { $nextURL = $null } else { $nextURL = $data.NextLink } - } catch { - throw "Failed to make Teams API Get Request $_" - } finally { - # Proper cleanup in finally block to ensure disposal even on exceptions - if ($response) { $response.Dispose() } - if ($httpClient) { $httpClient.Dispose() } - if ($handler) { $handler.Dispose() } - } - } until ($null -eq $NextURL) - return $ReturnedData - } else { - Write-Error 'Not allowed. You cannot manage your own tenant or tenants not under your scope' - } -} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 deleted file mode 100644 index 48470f8cbd35f..0000000000000 --- a/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequest.ps1 +++ /dev/null @@ -1,24 +0,0 @@ -function New-TeamsRequest { - [CmdletBinding()] - Param( - $TenantFilter, - $Cmdlet, - $CmdParams = @{}, - [switch]$AvailableCmdlets - ) - - if ($AvailableCmdlets) { - Get-Command -Module MicrosoftTeams | Select-Object Name - return - } - if (Get-Command -Module MicrosoftTeams -Name $Cmdlet) { - $TeamsToken = (Get-GraphToken -tenantid $TenantFilter -scope '48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default').Authorization -replace 'Bearer ' - $GraphToken = (Get-GraphToken -tenantid $TenantFilter).Authorization -replace 'Bearer ' - - $null = Connect-MicrosoftTeams -AccessTokens @($TeamsToken, $GraphToken) - $Result = & $Cmdlet @CmdParams -ErrorAction Stop - $Result - } else { - Write-Error "Cmdlet $Cmdlet not found in MicrosoftTeams module" - } -} diff --git a/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequestV2.ps1 b/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequestV2.ps1 new file mode 100644 index 0000000000000..93539bb72a429 --- /dev/null +++ b/Modules/CIPPCore/Public/GraphHelper/New-TeamsRequestV2.ps1 @@ -0,0 +1,263 @@ +function New-TeamsRequestV2 { + <# + .SYNOPSIS + Talks to the Teams admin ConfigAPI (api.interfaces.records.teams.microsoft.com) + directly, instead of the MicrosoftTeams PowerShell module. + + .DESCRIPTION + The MicrosoftTeams module routes policy-definition writes through the legacy + /Skype.Policy/tenants/policies surface, which returns 40301 Forbidden under CSP/GDAP + (for both delegate-with-Teams-Admin and app-only-with-Global-Admin tokens). The Teams + admin center (ACMS) instead uses /Skype.Policy/configurations/{Type}/configuration/{Identity}, + which authorizes fine with the roles CIPP already has. This helper speaks that surface. + + All HTTP goes through Invoke-CIPPRestMethod (pooled CIPP.CIPPRestClient) so gzip + responses are decompressed and JSON is deserialized consistently across platforms + (raw Invoke-RestMethod does NOT decompress gzip in the Linux worker, which yields + garbage/null objects and unreadable error bodies). + + Operations: + Get -> GET configurations/{Type}/configuration/{Identity} (single object) + Get -ListAll -> GET configurations/{Type} (all instances, array) + Set -> PUT configurations/{Type}/configuration/{Identity} (MERGE; only changed props) + New -> PUT configurations/{Type}/configuration/{Identity} (create named policy) [best-effort] + Remove -> DELETE configurations/{Type}/configuration/{Identity} [best-effort] + + .PARAMETER TenantFilter + Target tenant (GUID or default domain). + + .PARAMETER Type + ConfigAPI type (e.g. 'TeamsMeetingPolicy'), a cmdlet noun, or a full cmdlet name + (e.g. 'Set-CsTenantFederationConfiguration'); the verb is stripped and known + noun->type aliases are applied automatically. + + .PARAMETER Action + Get (default) | Set | New | Remove. + + .PARAMETER Identity + Policy instance identity. Default 'Global'. (e.g. 'Tag:Default' or a custom name.) + + .PARAMETER Parameters + Hashtable of properties to write (Set/New). Only these are sent (merge). + + .PARAMETER ListAll + Get: return every instance of the type (array) instead of one identity. + + .PARAMETER AsApp + Use an app-only (client_credentials) token instead of the delegate token. + + .PARAMETER NoRead + Set: skip the read-for-Key step and PUT only the bare changed props (ACMS-style). + Faster; safe for flat/Host-authority types and federation. Default is read-modify-write + (adds the Key envelope when the type carries one) for maximum compatibility. + + .PARAMETER UseServiceDiscovery + Resolve the per-tenant ConfigApi host + X-MS-Forest via Teams.Tenant/tenants and use + them (and, for federation/ACS types, the OcsPowershellWebservice target headers). + + .PARAMETER Path + Address a ConfigAPI surface outside Skype.Policy/configurations by raw path, e.g. + 'Skype.Ncs/locations' or 'Teams.PlatformService/v2/ApplicationInstances'. Mutually + exclusive with -Type. Reuses the same token, headers and error handling. + + .PARAMETER Method + Path only. HTTP verb. Default GET. + + .PARAMETER Body + Path only. Request body; hashtables/objects are serialized to JSON. + + .PARAMETER QueryParameters + Path only. Hashtable appended as a query string; null/empty values are skipped. + + .PARAMETER AdditionalHeaders + Path only. Extra request headers merged over the defaults, for surfaces that need + their own (e.g. Skype.TelephoneNumberMgmt expects x-ms-tnm-applicationid). + + .EXAMPLE + New-TeamsRequestV2 -TenantFilter $t -Type TeamsMeetingPolicy -Action Set -Parameters @{ AllowAnonymousUsersToJoinMeeting = $false } + + .EXAMPLE + New-TeamsRequestV2 -TenantFilter $t -Path 'Skype.Ncs/locations' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(DefaultParameterSetName = 'Configuration')] + param( + [Parameter(Mandatory)] $TenantFilter, + [Parameter(Mandatory, ParameterSetName = 'Configuration')] [string] $Type, + [Parameter(ParameterSetName = 'Configuration')] [ValidateSet('Get', 'Set', 'New', 'Remove')] [string] $Action = 'Get', + [Parameter(ParameterSetName = 'Configuration')] [string] $Identity = 'Global', + [Parameter(ParameterSetName = 'Configuration')] [hashtable] $Parameters = @{}, + [Parameter(ParameterSetName = 'Configuration')] [switch] $ListAll, + [Parameter(ParameterSetName = 'Configuration')] [switch] $NoRead, + [Parameter(Mandatory, ParameterSetName = 'Path')] [string] $Path, + [Parameter(ParameterSetName = 'Path')] [ValidateSet('GET', 'POST', 'PUT', 'PATCH', 'DELETE')] [string] $Method = 'GET', + [Parameter(ParameterSetName = 'Path')] $Body, + [Parameter(ParameterSetName = 'Path')] [hashtable] $QueryParameters = @{}, + [Parameter(ParameterSetName = 'Path')] [hashtable] $AdditionalHeaders = @{}, + [switch] $AsApp, + [switch] $UseServiceDiscovery + ) + + $IsPathRequest = $PSCmdlet.ParameterSetName -eq 'Path' + + # Same scope gate the Graph helpers apply: refuse tenants outside management scope or + # explicitly excluded. Without this, a caller could reach a tenant CIPP should not touch. + if (-not (Get-AuthorisedRequest -TenantID $TenantFilter)) { + throw (Get-AuthorisedRequestError -TenantID $TenantFilter -Context 'Teams request') + } + + # ---- cmdlet-noun -> ConfigAPI type aliases (noun != type) ---- + $TypeAliases = @{ + 'TenantFederationConfiguration' = 'TenantFederationSettings' + } + # types backed by the legacy OcsPowershellWebservice (need target-uri headers via discovery) + $FederationTypes = @('TenantFederationSettings', 'TeamsAcsFederationConfiguration') + + # normalize Type: strip Get-/Set-/New-/Remove-Cs prefix, then alias + $ConfigType = if ($IsPathRequest) { '' } else { $Type -replace '^(Get|Set|New|Remove|Grant|Revoke)-Cs', '' } + if ($ConfigType -and $TypeAliases.ContainsKey($ConfigType)) { $ConfigType = $TypeAliases[$ConfigType] } + + # ---- token ---- + $TokenSplat = @{ tenantid = $TenantFilter; scope = '48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default' } + if ($AsApp) { $TokenSplat['AsApp'] = $true } + $TeamsToken = (Get-GraphToken @TokenSplat).Authorization -replace 'Bearer ' + + # ---- endpoint + forest (service discovery optional) ---- + $ApiHost = 'api.interfaces.records.teams.microsoft.com' + $Forest = $null + $AdminServiceEndpoint = $null + $AdminDomain = $null + if ($UseServiceDiscovery) { + try { + $disc = Invoke-CIPPRestMethod -Uri "https://$ApiHost/Teams.Tenant/tenants" -Method GET ` + -Headers @{ Authorization = "Bearer $TeamsToken"; Accept = 'application/json' } + if ($disc.serviceDiscovery.Endpoints.ConfigApiEndpoint) { $ApiHost = $disc.serviceDiscovery.Endpoints.ConfigApiEndpoint } + $Forest = $disc.serviceDiscovery.Headers.'X-MS-Forest' + $AdminServiceEndpoint = $disc.serviceDiscovery.Endpoints.AdminServiceEndpoint + $AdminDomain = ($disc.verifiedDomains | Where-Object { $_.name -like '*.onmicrosoft.com' -and $_.name -notlike '*.*.onmicrosoft.com' } | Select-Object -First 1).name + } catch { + Write-Verbose "Service discovery failed, using defaults: $($_.Exception.Message)" + } + } + $Base = "https://$ApiHost/Skype.Policy/configurations/$ConfigType" + + # ---- headers ---- + $Headers = @{ + Authorization = "Bearer $TeamsToken" + Accept = 'application/json' + 'x-authz-scope' = 'tenant' + 'x-ms-correlation-id' = (New-Guid).Guid + } + if ($Forest) { $Headers['x-ms-forest'] = $Forest } + if ($ConfigType -in $FederationTypes -and $AdminServiceEndpoint) { + $Headers['x-ms-target-uri'] = "https://$AdminServiceEndpoint/OcsPowershellWebservice" + $Headers['x-ms-tenant-id'] = $TenantFilter + } + $Query = if ($ConfigType -in $FederationTypes -and $AdminDomain) { "?adminDomain=$AdminDomain" } else { '' } + + # ---- raw path surfaces (Skype.Ncs, Skype.TelephoneNumberMgmt, Teams.PlatformService, ...) ---- + if ($IsPathRequest) { + # The Teams admin center sends these on every ConfigAPI surface, not just Skype.Policy. + $Headers['X-Requested-With'] = 'XMLHttpRequest' + $Headers['Content-Type'] = 'application/json' + foreach ($Key in $AdditionalHeaders.Keys) { $Headers[$Key] = $AdditionalHeaders[$Key] } + + $Uri = 'https://{0}/{1}' -f $ApiHost, $Path.TrimStart('/') + if ($QueryParameters.Count -gt 0) { + $Pairs = foreach ($Key in $QueryParameters.Keys) { + if ($null -eq $QueryParameters[$Key] -or $QueryParameters[$Key] -eq '') { continue } + '{0}={1}' -f [uri]::EscapeDataString($Key), [uri]::EscapeDataString([string]$QueryParameters[$Key]) + } + if ($Pairs) { $Uri = '{0}?{1}' -f $Uri, ($Pairs -join '&') } + } + + $Splat = @{ Uri = $Uri; Method = $Method; Headers = $Headers } + if ($null -ne $Body) { + $Splat['Body'] = if ($Body -is [string]) { $Body } else { $Body | ConvertTo-Json -Depth 25 -Compress } + $Splat['ContentType'] = 'application/json' + } + + $StatusCode = $null + $RespBody = Invoke-CIPPRestMethod @Splat -SkipHttpErrorCheck -StatusCodeVariable StatusCode + if ([int]$StatusCode -ge 400) { + $Detail = if ($RespBody -is [string]) { $RespBody } elseif ($null -ne $RespBody) { $RespBody | ConvertTo-Json -Compress -Depth 10 } else { '' } + throw "Teams ConfigApi $Method $Path failed: $StatusCode $Detail" + } + return $RespBody + } + + switch ($Action) { + + 'Get' { + $Uri = if ($ListAll) { "$Base$Query" } else { "$Base/configuration/$Identity$Query" } + return Invoke-CIPPRestMethod -Uri $Uri -Method GET -Headers $Headers + } + + 'Set' { + $Uri = "$Base/configuration/$Identity$Query" + + # build body of only the changed props (skip control keys) + $Body = [ordered]@{} + foreach ($k in $Parameters.Keys) { + if ($k -in @('Identity', 'ErrorAction', 'Confirm', 'WhatIf', 'Verbose', 'Debug')) { continue } + $Body[$k] = $Parameters[$k] + } + + if (-not $NoRead) { + # read-modify-write: include the Key envelope when the type carries one (max compat) + try { + $Current = Invoke-CIPPRestMethod -Uri $Uri -Method GET -Headers $Headers + if ($Current -and ($Current.PSObject.Properties.Name -contains 'Key')) { + $Merged = [ordered]@{ Identity = $Identity; Key = $Current.Key } + foreach ($k in $Body.Keys) { $Merged[$k] = $Body[$k] } + $Body = $Merged + } + } catch { + Write-Verbose "Pre-read failed ($($_.Exception.Message)); sending bare props." + } + } + + $Json = $Body | ConvertTo-Json -Depth 25 -Compress + $StatusCode = $null + $RespBody = Invoke-CIPPRestMethod -Uri $Uri -Method PUT -Body $Json -ContentType 'application/json' ` + -Headers $Headers -SkipHttpErrorCheck -StatusCodeVariable StatusCode + if ([int]$StatusCode -ge 400) { + $Detail = if ($RespBody -is [string]) { $RespBody } elseif ($null -ne $RespBody) { $RespBody | ConvertTo-Json -Compress -Depth 10 } else { '' } + throw "Teams ConfigApi Set $ConfigType/$Identity failed: $StatusCode $Detail" + } + return [pscustomobject]@{ Type = $ConfigType; Identity = $Identity; StatusCode = [int]$StatusCode } + } + + 'New' { + # best-effort: create a named policy by PUTting the props at a new identity + $Uri = "$Base/configuration/$Identity$Query" + $Body = [ordered]@{ Identity = $Identity } + foreach ($k in $Parameters.Keys) { + if ($k -in @('Identity', 'ErrorAction', 'Confirm', 'WhatIf', 'Verbose', 'Debug')) { continue } + $Body[$k] = $Parameters[$k] + } + $Json = $Body | ConvertTo-Json -Depth 25 -Compress + $StatusCode = $null + $RespBody = Invoke-CIPPRestMethod -Uri $Uri -Method PUT -Body $Json -ContentType 'application/json' ` + -Headers $Headers -SkipHttpErrorCheck -StatusCodeVariable StatusCode + if ([int]$StatusCode -ge 400) { + $Detail = if ($RespBody -is [string]) { $RespBody } elseif ($null -ne $RespBody) { $RespBody | ConvertTo-Json -Compress -Depth 10 } else { '' } + throw "Teams ConfigApi New $ConfigType/$Identity failed: $StatusCode $Detail" + } + return [pscustomobject]@{ Type = $ConfigType; Identity = $Identity; StatusCode = [int]$StatusCode } + } + + 'Remove' { + $Uri = "$Base/configuration/$Identity$Query" + $StatusCode = $null + $RespBody = Invoke-CIPPRestMethod -Uri $Uri -Method DELETE -Headers $Headers -SkipHttpErrorCheck -StatusCodeVariable StatusCode + if ([int]$StatusCode -ge 400) { + $Detail = if ($RespBody -is [string]) { $RespBody } elseif ($null -ne $RespBody) { $RespBody | ConvertTo-Json -Compress -Depth 10 } else { '' } + throw "Teams ConfigApi Remove $ConfigType/$Identity failed: $StatusCode $Detail" + } + return [pscustomobject]@{ Type = $ConfigType; Identity = $Identity; StatusCode = [int]$StatusCode } + } + } +} diff --git a/Modules/CIPPCore/Public/GraphHelper/Set-CIPPOffloadFunctionTriggers.ps1 b/Modules/CIPPCore/Public/GraphHelper/Set-CIPPOffloadFunctionTriggers.ps1 index 5b3ed653fe58c..ae206f1cd3f0f 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Set-CIPPOffloadFunctionTriggers.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Set-CIPPOffloadFunctionTriggers.ps1 @@ -3,10 +3,10 @@ function Set-CIPPOffloadFunctionTriggers { .SYNOPSIS Manages non-HTTP triggers on function apps based on offloading configuration. .DESCRIPTION - Automatically detects if running on an offloaded function app (contains hyphen in name). - If this is the main function app (no hyphen), checks the offloading state from Config table - and disables/enables timer, activity, orchestrator, and queue triggers accordingly. - Offloaded function apps (with hyphen) are skipped as they should have triggers enabled. + Automatically detects if running on an offloaded function app (name ends with a known + offload suffix). If this is the main function app, checks the offloading state from the + Config table and disables/enables timer, activity, orchestrator, and queue triggers + accordingly. Offloaded function apps are skipped as they should have triggers enabled. .EXAMPLE Set-CIPPOffloadFunctionTriggers Automatically manages triggers based on current function app context and offloading state. @@ -17,8 +17,9 @@ function Set-CIPPOffloadFunctionTriggers { # Get current function app name $FunctionAppName = $env:WEBSITE_SITE_NAME - # Check if this is an offloaded function app (contains hyphen) - if ($FunctionAppName -match '-') { + # Check if this is an offloaded function app (name ends with a known offload suffix). + # A dashed main-app name (e.g. 'compaction-01-z2ir2') is NOT offloaded. + if (Test-CippOffloadFunctionApp -SiteName $FunctionAppName) { return $true } diff --git a/Modules/CIPPCore/Public/GraphHelper/Update-AppManagementPolicy.ps1 b/Modules/CIPPCore/Public/GraphHelper/Update-AppManagementPolicy.ps1 index d585e01220894..566f250f36c9f 100644 --- a/Modules/CIPPCore/Public/GraphHelper/Update-AppManagementPolicy.ps1 +++ b/Modules/CIPPCore/Public/GraphHelper/Update-AppManagementPolicy.ps1 @@ -124,9 +124,19 @@ function Update-AppManagementPolicy { $DefaultPolicyBlocksCredentials = ($DefaultPolicy.applicationRestrictions.passwordCredentials | Where-Object { $_.restrictionType -in @('passwordAddition', 'symmetricKeyAddition') -and $_.state -eq 'enabled' }).Count -gt 0 } + # Determine if default policy restricts key credentials: asymmetricKeyLifetime caps + # certificate validity (blocks the 1 year SAM certificate), trustedCertificateAuthority + # blocks self-signed certificates entirely + $DefaultKeyRestrictions = @() + $DefaultPolicyBlocksKeyCredentials = $false + if ($DefaultPolicy.applicationRestrictions.keyCredentials) { + $DefaultKeyRestrictions = @($DefaultPolicy.applicationRestrictions.keyCredentials | Where-Object { $_.restrictionType -in @('asymmetricKeyLifetime', 'trustedCertificateAuthority') -and $_.state -eq 'enabled' }) + $DefaultPolicyBlocksKeyCredentials = $DefaultKeyRestrictions.Count -gt 0 + } + # If default policy blocks credentials and CIPP app doesn't have an exemption, create/update policy $PolicyAction = $null - if ($DefaultPolicyBlocksCredentials -and $CIPPApp) { + if (($DefaultPolicyBlocksCredentials -or $DefaultPolicyBlocksKeyCredentials) -and $CIPPApp) { # Check if a CIPP-SAM Exemption Policy already exists $ExistingExemptionPolicy = $AppPolicies | Where-Object { $_.displayName -eq 'CIPP Exemption Policy' } | Select-Object -First 1 @@ -141,6 +151,14 @@ function Update-AppManagementPolicy { # No password restrictions means it allows credentials $CIPPHasExemption = $true } + # When the default policy restricts key credentials, the exemption must explicitly + # disable those restriction types - otherwise certificate rotation stays blocked + if ($CIPPHasExemption -and $DefaultPolicyBlocksKeyCredentials) { + foreach ($Restriction in $DefaultKeyRestrictions) { + $ExplicitlyDisabled = $CIPPPolicy.restrictions.keyCredentials | Where-Object { $_.restrictionType -eq $Restriction.restrictionType -and $_.state -eq 'disabled' } + if (-not $ExplicitlyDisabled) { $CIPPHasExemption = $false } + } + } } if (-not $CIPPHasExemption) { @@ -164,7 +182,18 @@ function Update-AppManagementPolicy { restrictForAppsCreatedAfterDateTime = '0001-01-01T00:00:00Z' } ) - keyCredentials = @() + keyCredentials = @( + @{ + restrictionType = 'asymmetricKeyLifetime' + state = 'disabled' + restrictForAppsCreatedAfterDateTime = '0001-01-01T00:00:00Z' + } + @{ + restrictionType = 'trustedCertificateAuthority' + state = 'disabled' + restrictForAppsCreatedAfterDateTime = '0001-01-01T00:00:00Z' + } + ) } } diff --git a/Modules/CIPPCore/Public/Invoke-CIPPCATemplateBatch.ps1 b/Modules/CIPPCore/Public/Invoke-CIPPCATemplateBatch.ps1 new file mode 100644 index 0000000000000..3d5ae1633f994 --- /dev/null +++ b/Modules/CIPPCore/Public/Invoke-CIPPCATemplateBatch.ps1 @@ -0,0 +1,314 @@ +function Invoke-CIPPCATemplateBatch { + + # Future Use - Not currently used + + <# + .SYNOPSIS + Deploy all Conditional Access template standards for a single tenant in one + sequential pass, reconciling shared dependencies once up front. + .DESCRIPTION + Per-tenant batch path for the ConditionalAccessTemplate standard. Replaces the + previous one-activity-per-template fan-out (which caused 429 storms against the + ~1 req/s CA write endpoint, plus duplicate-dependency / c1-c99 / 1040 races) with a + single serial deployment. Dependencies (named locations, auth contexts, auth + strengths) are reconciled ONCE via Resolve-CIPPCADependencies, then each policy is + deployed sequentially using New-CIPPCAPolicy -DependencyMap. Reporting is folded + into the same loop and remains per-template (one compare field per template). + + Dispatched internally from Push-CIPPStandard when a grouped batch item (carrying + BatchTemplates) is dequeued. This is NOT a user-selectable standard. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $Tenant, + $Templates, + [int64]$QueuedTime = 0, + $Headers + ) + + $Templates = @($Templates | Where-Object { $_ }) + if ($Templates.Count -eq 0) { + Write-Information "No CA templates to deploy for $Tenant" + return + } + + # Always refresh the CA cache first. This is one long-running activity and both Phase 1 + # (dependency reconciliation) and Phase 2 (existing-policy checks / reporting) read off + # the snapshot, so it must reflect current tenant state before we begin. + try { + Write-Information "Refreshing Conditional Access DB cache for $Tenant before batch deploy" + Set-CIPPDBCacheConditionalAccessPolicies -TenantFilter $Tenant + } catch { + Write-Warning "Failed to refresh CA cache for $Tenant : $($_.Exception.Message)" + } + + # General Entra license gate - applies to every CA template in the batch + $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $Tenant -Preset Entra + if ($TestResult -eq $false) { + foreach ($t in $Templates) { + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($t.Settings.TemplateList.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + return + } + + # Preload snapshots from the freshly-updated cache + try { + $AllCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $PreloadedLocations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'NamedLocations' + $PreloadedSecurityDefaults = New-CIPPDbRequest -TenantFilter $Tenant -Type 'SecurityDefaults' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not load the ConditionalAccessTemplate cache for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + # Auth strengths are cached; auth contexts are not - Resolve-CIPPCADependencies fetches + # contexts live and falls back to a live fetch if the strengths snapshot is empty. + try { $PreloadedAuthStrengths = New-CIPPDbRequest -TenantFilter $Tenant -Type 'AuthenticationStrengths' } catch { $PreloadedAuthStrengths = $null } + + # Preload tenant-wide lookups ONCE for the whole batch (reused by every policy deploy and the + # report conversion). Without this, New-CIPPCAPolicy and New-CIPPCATemplate each re-fetch + # users/groups/servicePrincipals/vacation-groups per policy - dozens of redundant Graph calls. + $UGRequests = @( + @{ id = 'users'; url = 'users?$select=id,displayName&$top=999'; method = 'GET' } + @{ id = 'groups'; url = 'groups?$select=id,displayName&$top=999'; method = 'GET' } + ) + $PreloadedUsers = $null; $PreloadedGroups = $null; $PreloadedServicePrincipals = $null; $PreloadedVacationGroups = $null + try { + $UGResults = New-GraphBulkRequest -Requests $UGRequests -tenantid $Tenant -asapp $true + $PreloadedUsers = ($UGResults | Where-Object { $_.id -eq 'users' }).body.value + $PreloadedGroups = ($UGResults | Where-Object { $_.id -eq 'groups' }).body.value + } catch { Write-Warning "Failed to preload users/groups for $Tenant : $($_.Exception.Message)" } + try { + $PreloadedServicePrincipals = New-GraphGETRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$select=appId&$top=999' -tenantid $Tenant -asApp $true + } catch { Write-Warning "Failed to preload service principals for $Tenant : $($_.Exception.Message)" } + try { + $PreloadedVacationGroups = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/groups?`$filter=startsWith(displayName,'Vacation Exclusion')&`$select=id,displayName&`$top=999&`$count=true" -ComplexFilter -tenantid $Tenant -asApp $true + } catch { Write-Warning "Failed to preload vacation exclusion groups for $Tenant : $($_.Exception.Message)" } + + $Table = Get-CippTable -tablename 'templates' + + # Load each template's JSON once + $CATemplates = foreach ($t in $Templates) { + $TemplateValue = $t.Settings.TemplateList.value + $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$TemplateValue'" + $JSON = (Get-CippAzDataTableEntity @Table -Filter $Filter).JSON + if (-not $JSON) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Conditional Access template '$($t.Settings.TemplateList.label)' ($TemplateValue) could not be loaded from the template store - skipping." -Sev 'Error' + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$TemplateValue" -FieldValue "Template '$($t.Settings.TemplateList.label)' could not be loaded from the template store." -Tenant $Tenant + continue + } + [pscustomobject]@{ + Settings = $t.Settings + TemplateId = $t.TemplateId + RawJSON = $JSON + WillRemediate = $false + NeedsRemediation = $false + Skip = $false + DeployError = $null + } + } + $CATemplates = @($CATemplates) + if ($CATemplates.Count -eq 0) { return } + + # Resolve P2 capability once for the whole tenant (reused for every risk-based policy) + $TenantHasP2 = [bool](Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_p2' -TenantFilter $Tenant -Preset EntraP2 -SkipLog) + + # Nested helper: compare ONE template against the current deployed state, write its compare + # field in the renderable CurrentValue/ExpectedValue shape, and return a status string: + # 'Compliant' | 'Drifted' | 'Missing' | 'P2Blocked' | 'Failed' | 'Error'. + function Set-CABatchCompareStatus { + param($ct) + $Settings = $ct.Settings + $TemplateValue = $Settings.TemplateList.value + $FieldName = "standards.ConditionalAccessTemplate.$TemplateValue" + + Set-CippStandardInfoContext -StandardInfo @{ + Standard = 'ConditionalAccessTemplate' + StandardTemplateId = $ct.TemplateId + ConditionalAccessTemplateId = $TemplateValue + } + + try { + $Policy = $ct.RawJSON | ConvertFrom-Json -Depth 10 + if ($null -eq $Policy) { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Template '$($Settings.TemplateList.label)' could not be parsed." } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Error' + } + + # Override the template's state with the standard's state for drift comparison + if ($Settings.state -and $Settings.state -ne 'donotchange') { + $Policy | Add-Member -NotePropertyName 'state' -NotePropertyValue $Settings.state -Force + } + + # Resolve the template's location GUIDs to display names so they compare like-for-like + # with the deployed policy. The template's OWN LocationInfo carries the id->name map + # (the GUID is the source tenant's id); fall back to this tenant's named-location cache. + if ($Policy.conditions.locations) { + $LocNameById = @{} + foreach ($li in @($Policy.LocationInfo)) { if ($li.id -and $li.displayName) { $LocNameById[$li.id] = $li.displayName } } + foreach ($pl in @($PreloadedLocations)) { if ($pl.id -and $pl.displayName -and -not $LocNameById.ContainsKey($pl.id)) { $LocNameById[$pl.id] = $pl.displayName } } + foreach ($LocDir in 'includeLocations', 'excludeLocations') { + if ($Policy.conditions.locations.PSObject.Properties.Name -contains $LocDir -and $Policy.conditions.locations.$LocDir) { + $Policy.conditions.locations.$LocDir = @($Policy.conditions.locations.$LocDir | ForEach-Object { + if ($LocNameById.ContainsKey($_)) { $LocNameById[$_] } else { $_ } + }) + } + } + } + + $CheckExisting = $AllCAPolicies | Where-Object -Property displayName -EQ $Settings.TemplateList.label + if ($CheckExisting -is [array] -and $CheckExisting.Count -gt 1) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Found $($CheckExisting.Count) Conditional Access policies named '$($Settings.TemplateList.label)' in $Tenant. Comparing against the first; duplicate policies should be cleaned up." -Sev 'Warning' + $CheckExisting = $CheckExisting[0] + } + + if (!$CheckExisting) { + $NeedsP2 = ($Policy.conditions.userRiskLevels.Count -gt 0 -or $Policy.conditions.signInRiskLevels.Count -gt 0) + if ($ct.DeployError) { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Failed to deploy: $($ct.DeployError)" } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Failed' + } elseif ($NeedsP2 -and -not $TenantHasP2) { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Policy requires an AAD Premium P2 license, which this tenant does not have.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'P2Blocked' + } else { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Policy is missing from this tenant.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Missing' + } + } + + $templateResult = New-CIPPCATemplate -TenantFilter $Tenant -JSON $CheckExisting -preloadedLocations $PreloadedLocations -preloadedUsers $PreloadedUsers -preloadedGroups $PreloadedGroups + $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject $templateResult + if ($null -eq $CompareObj) { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Tenant policy conversion returned null.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Error' + } + try { + $Compare = Compare-CIPPIntuneObject -ReferenceObject $Policy -DifferenceObject $CompareObj -CompareType 'ca' + } catch { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Error comparing policy: $($_.Exception.Message)" } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Error' + } + if (!$Compare) { + Set-CIPPStandardsCompareField -FieldName $FieldName -FieldValue $true -CurrentValue @{ Differences = 'No Differences found' } -ExpectedValue @{ Differences = 'No Differences found' } -Tenant $Tenant + return 'Compliant' + } else { + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = $Compare } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + return 'Drifted' + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error evaluating conditional access template $TemplateValue. Error: $ErrorMessage" -sev 'Error' + return 'Error' + } + } + + # Per-template rerun decision (marker written here so a redelivered batch skips handled ones) + foreach ($ct in $CATemplates) { + if ($QueuedTime -gt 0) { + $API = "ConditionalAccessTemplate_$($ct.TemplateId)_$($ct.Settings.TemplateList.value)" + if (Test-CIPPRerun -Type Standard -Tenant $Tenant -API $API -Settings $ct.Settings -BaseTime $QueuedTime) { + Write-Information "Detected rerun for $API. Skipping." + $ct.Skip = $true + } + } + } + + # ---- Evaluate: compare every in-scope template against the CURRENT state, write its result, + # and flag only the ones that actually need remediation (missing or drifted). Compliant + # policies are reported and then left untouched - no needless PATCH on every run. ---- + foreach ($ct in $CATemplates) { + if ($ct.Skip) { continue } + if (-not ($ct.Settings.report -eq $true -or $ct.Settings.remediate -eq $true)) { continue } + $Status = Set-CABatchCompareStatus -ct $ct + if ($ct.Settings.remediate -eq $true -and $Status -in @('Missing', 'Drifted')) { + $ct.WillRemediate = $true + $ct.NeedsRemediation = $true + } + } + + # ---- Reconcile shared dependencies ONCE, only for the policies we will actually deploy ---- + $DeployObjects = [System.Collections.Generic.List[object]]::new() + foreach ($ct in $CATemplates) { + if ($ct.NeedsRemediation) { $DeployObjects.Add(($ct.RawJSON | ConvertFrom-Json)) } + } + $DependencyMap = $null + if ($DeployObjects.Count -gt 0) { + try { + $DependencyMap = Resolve-CIPPCADependencies -TenantFilter $Tenant -PolicyObjects $DeployObjects -AllNamedLocations $PreloadedLocations -AllAuthStrengthPolicies $PreloadedAuthStrengths -Overwrite $true -Headers $Headers -APIName 'Standards' + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to reconcile Conditional Access dependencies for $Tenant. Error: $ErrorMessage" -sev 'Error' + $DependencyMap = $null + } + } + + # ---- Remediate: deploy only the missing/drifted policies, sequentially ---- + $RemediatedAny = $false + foreach ($ct in $CATemplates) { + if (-not $ct.NeedsRemediation -or -not $DependencyMap) { continue } + $Settings = $ct.Settings + $TemplateValue = $Settings.TemplateList.value + Set-CippStandardInfoContext -StandardInfo @{ + Standard = 'ConditionalAccessTemplate' + StandardTemplateId = $ct.TemplateId + ConditionalAccessTemplateId = $TemplateValue + } + try { + $NewCAPolicy = @{ + replacePattern = 'displayName' + TenantFilter = $Tenant + state = $Settings.state + RawJSON = $ct.RawJSON + Overwrite = $true + APIName = 'Standards' + Headers = $Headers + DisableSD = $Settings.DisableSD + CreateGroups = $Settings.CreateGroups ?? $false + PreloadedCAPolicies = $AllCAPolicies + PreloadedLocations = $PreloadedLocations + PreloadedSecurityDefaults = $PreloadedSecurityDefaults + DependencyMap = $DependencyMap + PreloadedServicePrincipals = $PreloadedServicePrincipals + PreloadedUsers = $PreloadedUsers + PreloadedGroups = $PreloadedGroups + PreloadedVacationGroups = $PreloadedVacationGroups + } + $null = New-CIPPCAPolicy @NewCAPolicy + $RemediatedAny = $true + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + # Record the deploy failure so the re-report surfaces the reason instead of "missing" + $ct.DeployError = $ErrorMessage + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to create or update conditional access rule from template $TemplateValue. Error: $ErrorMessage" -sev 'Error' + } + } + + # ---- Refresh + re-report ONLY the policies we just deployed ---- + # Only refresh when something actually changed ($RemediatedAny is set on a successful + # create/update). When nothing was deployed there's no need to re-pull the cache at all. + if ($RemediatedAny) { + # Give Graph a moment to propagate the new/updated policies before refreshing the cache, + # otherwise the refresh can race ahead of eventual consistency and miss just-created ones. + Start-Sleep -Seconds 5 + try { + Set-CIPPDBCacheConditionalAccessPolicies -TenantFilter $Tenant + $AllCAPolicies = New-CIPPDbRequest -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $PreloadedLocations = New-CIPPDbRequest -TenantFilter $Tenant -Type 'NamedLocations' + # Refresh groups too so the report resolves any exclusion groups just created during deploy + $UGResults = New-GraphBulkRequest -Requests $UGRequests -tenantid $Tenant -asapp $true + $PreloadedUsers = ($UGResults | Where-Object { $_.id -eq 'users' }).body.value + $PreloadedGroups = ($UGResults | Where-Object { $_.id -eq 'groups' }).body.value + } catch { + Write-Warning "Failed to refresh CA snapshot after remediation for $Tenant : $($_.Exception.Message)" + } + foreach ($ct in $CATemplates) { + if ($ct.NeedsRemediation -and -not $ct.Skip) { + $null = Set-CABatchCompareStatus -ct $ct + } + } + } + + Set-CippStandardInfoContext -StandardInfo $null +} diff --git a/Modules/CIPPCore/Public/Invoke-CIPPDBCacheCollection.ps1 b/Modules/CIPPCore/Public/Invoke-CIPPDBCacheCollection.ps1 index fda21748c5147..bc3eeaf918458 100644 --- a/Modules/CIPPCore/Public/Invoke-CIPPDBCacheCollection.ps1 +++ b/Modules/CIPPCore/Public/Invoke-CIPPDBCacheCollection.ps1 @@ -15,6 +15,7 @@ function Invoke-CIPPDBCacheCollection { - ConditionalAccess: CA policies and registration details - IdentityProtection: Risky users/SPs, risk detections, PIM - Intune: Managed devices, policies, app protection + - Defender: Defender Vulnerabilities .PARAMETER CollectionType The group of cache functions to execute @@ -31,7 +32,7 @@ function Invoke-CIPPDBCacheCollection { [CmdletBinding()] param( [Parameter(Mandatory = $true)] - [ValidateSet('Graph', 'ExchangeConfig', 'ExchangeData', 'ConditionalAccess', 'IdentityProtection', 'Intune', 'Compliance', 'CopilotUsage', 'SharePoint', 'Teams')] + [ValidateSet('Graph', 'ExchangeConfig', 'ExchangeData', 'ConditionalAccess', 'IdentityProtection', 'Intune', 'Compliance', 'CopilotUsage', 'SharePoint', 'Teams', 'Defender')] [string]$CollectionType, [Parameter(Mandatory = $true)] @@ -141,6 +142,7 @@ function Invoke-CIPPDBCacheCollection { 'SPOTenant' 'SPOTenantSyncClientRestriction' 'SharePointSiteUsage' + 'SiteActivity' 'OneDriveUsage' ) Teams = @( @@ -149,11 +151,15 @@ function Invoke-CIPPDBCacheCollection { 'CsExternalAccessPolicy' 'CsTenantFederationConfiguration' 'CsTeamsMessagingPolicy' + 'CsTeamsMessagingConfiguration' 'CsTeamsAppPermissionPolicy' 'Teams' 'TeamsActivity' 'TeamsVoice' ) + Defender = @( + 'DefenderCVEs' + ) } $CacheTypes = $Collections[$CollectionType] diff --git a/Modules/CIPPCore/Public/Invoke-CIPPRestMethod.ps1 b/Modules/CIPPCore/Public/Invoke-CIPPRestMethod.ps1 index 88d7e2bc5ba5e..1c3d7345c4177 100644 --- a/Modules/CIPPCore/Public/Invoke-CIPPRestMethod.ps1 +++ b/Modules/CIPPCore/Public/Invoke-CIPPRestMethod.ps1 @@ -243,7 +243,7 @@ function Invoke-CIPPRestMethod { # ------------------------------------------------------------------ if (-not $SkipHttpErrorCheck -and -not $Result.IsSuccess) { $ErrorMessage = "Response status code does not indicate success: $($Result.StatusCode)" - $Exception = [System.Net.Http.HttpRequestException]::new($ErrorMessage) + $Exception = [CIPP.CIPPHttpRequestException]::new($ErrorMessage, [int]$Result.StatusCode, $Result.ResponseHeaders, $Result.Content) $ErrorRecord = [System.Management.Automation.ErrorRecord]::new($Exception, 'WebCmdletWebResponseException', [System.Management.Automation.ErrorCategory]::InvalidOperation, $Uri) if (-not [string]::IsNullOrWhiteSpace($Result.Content)) { $ErrorRecord.ErrorDetails = [System.Management.Automation.ErrorDetails]::new($Result.Content) diff --git a/Modules/CIPPCore/Public/Invoke-CIPPSharePointTemplateDeploy.ps1 b/Modules/CIPPCore/Public/Invoke-CIPPSharePointTemplateDeploy.ps1 new file mode 100644 index 0000000000000..d21d1a67a1d20 --- /dev/null +++ b/Modules/CIPPCore/Public/Invoke-CIPPSharePointTemplateDeploy.ps1 @@ -0,0 +1,226 @@ +function Invoke-CIPPSharePointTemplateDeploy { + <# + .SYNOPSIS + Deploy a SharePoint provisioning template to a single tenant + + .DESCRIPTION + Provisions every site template in a SharePoint provisioning template against one tenant. + Each site has a siteType (sharePoint or teams). When overrideSiteType is set, the template + siteType is used for every site; otherwise each site's own siteType applies. Teams sites + are created via the Teams API so channels and Teams functionality stay intact, then + document libraries are added to the backing SharePoint site. SharePoint sites use the + plain site-creation path. Root-level and per-library permissions are applied by group + display name, optionally creating missing groups as security groups. + + .PARAMETER TemplateData + The deserialized template object (templateName, siteType, overrideSiteType, createMissingGroups, siteTemplates) + + .PARAMETER SiteOwner + UPN set as the owner of every site or Team the template creates + + .PARAMETER TenantFilter + The tenant to deploy to + + .PARAMETER DeploymentId + Optional async deployment job id (from New-CIPPAsyncDeployment). When provided, per-site + progress is written to the CacheAsyncDeployments row so the frontend can poll it live. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + $TemplateData, + + [Parameter(Mandatory = $true)] + [string]$SiteOwner, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [string]$DeploymentId, + + $APIName = 'Deploy SharePoint Template', + $Headers + ) + + # Live status reporting via the shared async deployment functions. + function Update-DeployStep { + param($Index, $Status, $Message) + if (-not $DeploymentId) { return } + Set-CIPPAsyncDeploymentStep -JobId $DeploymentId -Name $TenantFilter -StepIndex $Index -StepStatus $Status -Message $Message + } + + $CreateMissingGroups = $TemplateData.createMissingGroups -eq $true + $SkipIfExists = $TemplateData.skipIfExists -eq $true + + $Results = [System.Collections.Generic.List[string]]::new() + $SiteIndex = -1 + foreach ($SiteTemplate in $TemplateData.siteTemplates) { + $SiteIndex++ + # Resolve site type: template override wins, otherwise the site's own siteType. + # Select controls may persist {label,value}; unwrap to the string value. + $RawSiteType = if ($TemplateData.overrideSiteType -eq $true) { + $TemplateData.siteType + } else { + $SiteTemplate.siteType + } + $SiteType = [string]($RawSiteType.value ?? $RawSiteType) + if ($SiteType -notin @('sharePoint', 'teams')) { $SiteType = 'sharePoint' } + $IsTeams = $SiteType -eq 'teams' + + # Step counter for this site: prerequisites, create, site permissions, then one step + # per library. Shown as 'Step x of y' in the live progress messages. + $TotalSteps = 3 + @($SiteTemplate.libraries).Count + try { + Update-DeployStep -Index $SiteIndex -Status 'running' -Message "Step 1 of ${TotalSteps}: Checking prerequisites" + # Skip if exists: leave pre-existing sites/teams completely untouched — no + # libraries or permission changes are applied to anything this run didn't create. + if ($SkipIfExists) { + $AlreadyExists = $false + if ($IsTeams) { + $EscapedName = $SiteTemplate.displayName -replace "'", "''" + $ExistingGroups = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/groups?`$filter=displayName eq '$EscapedName'&`$select=id" -tenantid $TenantFilter -AsApp $true + $AlreadyExists = @($ExistingGroups).Count -gt 0 + } else { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $SitePath = $SiteTemplate.displayName -replace ' ' -replace '[^A-Za-z0-9-]' + try { + $ExistingSite = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/$($SharePointInfo.TenantName).sharepoint.com:/sites/$($SitePath)?`$select=id" -tenantid $TenantFilter -AsApp $true + $AlreadyExists = [bool]$ExistingSite.id + } catch { + # 404 means the site does not exist yet, which is the normal path. + $AlreadyExists = $false + } + } + if ($AlreadyExists) { + $Results.Add("[$TenantFilter] Skipped '$($SiteTemplate.displayName)': already exists and Skip if exists is enabled.") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Skipped SharePoint template site '$($SiteTemplate.displayName)': already exists." -sev Info + Update-DeployStep -Index $SiteIndex -Status 'succeeded' -Message 'Skipped: already exists' + continue + } + } + # Create the container first: a full Team (Teams API) so all Teams functionality + # stays intact, or a plain SharePoint site otherwise. + if ($IsTeams) { + Update-DeployStep -Index $SiteIndex -Status 'running' -Message "Step 2 of ${TotalSteps}: Creating Team and waiting for its SharePoint site" + $Team = New-CIPPTeam -DisplayName $SiteTemplate.displayName -Description ($SiteTemplate.description ?? '') -Owner $SiteOwner -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $SiteUrl = $Team.SiteUrl + $Results.Add("[$TenantFilter] Created Team '$($SiteTemplate.displayName)' with site $SiteUrl") + $RawLanguage = [string](($SiteTemplate.language.value ?? $SiteTemplate.language)) + if ($RawLanguage -and $RawLanguage -ne 'default') { + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName): site language '$RawLanguage' was not applied — Teams sites use the tenant default SharePoint language.") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': language LCID $RawLanguage skipped for Teams site (tenant default applies)." -sev Info + } + } else { + Update-DeployStep -Index $SiteIndex -Status 'running' -Message "Step 2 of ${TotalSteps}: Creating SharePoint site" + $SiteParams = @{ + SiteName = $SiteTemplate.displayName + SiteDescription = ($SiteTemplate.description ?? $SiteTemplate.displayName) + SiteOwner = $SiteOwner + TenantFilter = $TenantFilter + Headers = $Headers + APIName = $APIName + } + # Team site vs Communication — createAs may persist {label,value}; default Team. + $RawCreateAs = [string]($SiteTemplate.createAs.value ?? $SiteTemplate.createAs) + $SiteParams.TemplateName = if ($RawCreateAs -in @('Team', 'Communication')) { + $RawCreateAs + } else { + 'Team' + } + # language "default" (or missing) → Lcid 0 so New-CIPPSharepointSite uses tenant default. + # A specific language → pass that LCID. Always pass Lcid so we don't fall back to the + # helper's legacy English default used by AddSite. + $RawLanguage = [string](($SiteTemplate.language.value ?? $SiteTemplate.language)) + $ParsedLcid = 0 + if ($RawLanguage -and $RawLanguage -ne 'default') { + if (-not [int]::TryParse($RawLanguage, [ref]$ParsedLcid) -or $ParsedLcid -le 0) { + throw "Site language '$RawLanguage' on '$($SiteTemplate.displayName)' is not a valid LCID." + } + } + $SiteParams.Lcid = $ParsedLcid + $null = New-CIPPSharepointSite @SiteParams + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $SitePath = $SiteTemplate.displayName -replace ' ' -replace '[^A-Za-z0-9-]' + $SiteUrl = "https://$($SharePointInfo.TenantName).sharepoint.com/sites/$SitePath" + $Results.Add("[$TenantFilter] Created site '$($SiteTemplate.displayName)' at $SiteUrl") + } + + # Track template-defined sub-steps (site perms, libraries, library perms). A failure + # here must mark this site step failed — do not report succeeded after swallowing errors. + $StepFailures = [System.Collections.Generic.List[string]]::new() + + # Root-level permissions, grouped per permission level. + # Set-CIPPSharePointObjectPermission only throws when nothing was granted. Partial + # outcomes (some Failed / Not found) still return a message — treat those as failures. + Update-DeployStep -Index $SiteIndex -Status 'running' -Message "Step 3 of ${TotalSteps}: Applying site permissions" + $RootPermGroups = @($SiteTemplate.permissions) | Group-Object -Property permissionLevel + foreach ($PermGroup in $RootPermGroups) { + # Frontend may store principals as plain strings or autocomplete {label,value} objects. + $GroupNames = @($PermGroup.Group | ForEach-Object { $_.principal.value ?? $_.principal }) | Where-Object { $_ } + try { + $PermResult = Set-CIPPSharePointObjectPermission -SiteUrl $SiteUrl -PermissionLevel $PermGroup.Name -GroupNames $GroupNames -CreateMissingGroups:$CreateMissingGroups -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName): $PermResult") + if ($PermResult -match 'Failed for|Not found by display name') { + $FailMsg = "Root permissions ($($PermGroup.Name)): $PermResult" + $StepFailures.Add($FailMsg) + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': $FailMsg" -sev Error + } + } catch { + $FailMsg = "Root permissions ($($PermGroup.Name)) failed: $($_.Exception.Message)" + $StepFailures.Add($FailMsg) + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName): $FailMsg") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': $FailMsg" -sev Error + } + } + + # Then the document libraries via the SharePoint module. + $LibraryStep = 3 + foreach ($Library in $SiteTemplate.libraries) { + $LibraryStep++ + try { + Update-DeployStep -Index $SiteIndex -Status 'running' -Message "Step $LibraryStep of ${TotalSteps}: Creating library '$($Library.name)'" + $NewLibrary = New-CIPPSharePointLibrary -SiteUrl $SiteUrl -LibraryName $Library.name -Description ($Library.description ?? '') -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName): library '$($Library.name)' $($NewLibrary.Created ? 'created' : 'already existed')") + + $LibPermGroups = @($Library.permissions) | Group-Object -Property permissionLevel + foreach ($PermGroup in $LibPermGroups) { + $GroupNames = @($PermGroup.Group | ForEach-Object { $_.principal.value ?? $_.principal }) | Where-Object { $_ } + try { + $PermResult = Set-CIPPSharePointObjectPermission -SiteUrl $SiteUrl -ListId $NewLibrary.ListId -PermissionLevel $PermGroup.Name -GroupNames $GroupNames -CreateMissingGroups:$CreateMissingGroups -TenantFilter $TenantFilter -Headers $Headers -APIName $APIName + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName)/$($Library.name): $PermResult") + if ($PermResult -match 'Failed for|Not found by display name') { + $FailMsg = "Library '$($Library.name)' permissions ($($PermGroup.Name)): $PermResult" + $StepFailures.Add($FailMsg) + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': $FailMsg" -sev Error + } + } catch { + $FailMsg = "Library '$($Library.name)' permissions ($($PermGroup.Name)) failed: $($_.Exception.Message)" + $StepFailures.Add($FailMsg) + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName)/$($Library.name): $FailMsg") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': $FailMsg" -sev Error + } + } + } catch { + $FailMsg = "Library '$($Library.name)' failed: $($_.Exception.Message)" + $StepFailures.Add($FailMsg) + $Results.Add("[$TenantFilter] $($SiteTemplate.displayName): $FailMsg") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)': $FailMsg" -sev Error + } + } + + if ($StepFailures.Count -gt 0) { + $FailureSummary = $StepFailures -join '; ' + $Results.Add("[$TenantFilter] Site '$($SiteTemplate.displayName)' completed with failures at $SiteUrl") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "SharePoint template site '$($SiteTemplate.displayName)' deployed with failures: $FailureSummary" -sev Error + Update-DeployStep -Index $SiteIndex -Status 'failed' -Message $FailureSummary + } else { + Update-DeployStep -Index $SiteIndex -Status 'succeeded' -Message "Completed all $TotalSteps steps. Deployed at $SiteUrl" + } + } catch { + $Results.Add("[$TenantFilter] Failed to deploy '$($SiteTemplate.displayName)': $($_.Exception.Message)") + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to deploy SharePoint template site '$($SiteTemplate.displayName)': $($_.Exception.Message)" -sev Error + Update-DeployStep -Index $SiteIndex -Status 'failed' -Message $_.Exception.Message + } + } + return $Results +} diff --git a/Modules/CIPPCore/Public/Invoke-CIPPTestCollection.ps1 b/Modules/CIPPCore/Public/Invoke-CIPPTestCollection.ps1 index e03fd8ee901f7..1963ff0b6de30 100644 --- a/Modules/CIPPCore/Public/Invoke-CIPPTestCollection.ps1 +++ b/Modules/CIPPCore/Public/Invoke-CIPPTestCollection.ps1 @@ -17,6 +17,7 @@ function Invoke-CIPPTestCollection { - CIS → Invoke-CippTestCIS_* - SMB1001 → Invoke-CippTestSMB1001_* - CopilotReadiness → Invoke-CippTestCopilotReady* + - E8 → Invoke-CippTestE8_* - Custom → Special: enumerates enabled ScriptGuids from DB and calls Invoke-CippTestCustomScripts once per guid (the function requires a ScriptGuid parameter to filter the table query) @@ -33,7 +34,7 @@ function Invoke-CIPPTestCollection { [CmdletBinding()] param( [Parameter(Mandatory = $true)] - [ValidateSet('ZTNA', 'ORCA', 'EIDSCA', 'CISA', 'CIS', 'SMB1001', 'CopilotReadiness', 'GenericTests', 'Custom')] + [ValidateSet('ZTNA', 'ORCA', 'EIDSCA', 'CISA', 'CIS', 'SMB1001', 'CopilotReadiness', 'GenericTests', 'E8', 'Custom')] [string]$SuiteName, [Parameter(Mandatory = $true)] @@ -51,6 +52,7 @@ function Invoke-CIPPTestCollection { SMB1001 = 'Invoke-CippTestSMB1001_*' CopilotReadiness = 'Invoke-CippTestCopilotReady*' GenericTests = 'Invoke-CippTestGenericTest*' + E8 = 'Invoke-CippTestE8_*' } $SuiteStopwatch = [System.Diagnostics.Stopwatch]::StartNew() diff --git a/Modules/CIPPCore/Public/MCP/Get-CippMcpToolList.ps1 b/Modules/CIPPCore/Public/MCP/Get-CippMcpToolList.ps1 index 5852d6d966e89..8abadfc81dd88 100644 --- a/Modules/CIPPCore/Public/MCP/Get-CippMcpToolList.ps1 +++ b/Modules/CIPPCore/Public/MCP/Get-CippMcpToolList.ps1 @@ -155,7 +155,8 @@ function Resolve-CippMcpNode { } if ($Node -is [System.Collections.IEnumerable]) { - return @($Node | ForEach-Object { Resolve-CippMcpNode -Node $_ -Spec $Spec -Depth ($Depth + 1) -Seen $Seen }) + $Resolved = @($Node | ForEach-Object { Resolve-CippMcpNode -Node $_ -Spec $Spec -Depth ($Depth + 1) -Seen $Seen }) + return , $Resolved } return $Node diff --git a/Modules/CIPPCore/Public/MCP/Get-CippMcpToolResult.ps1 b/Modules/CIPPCore/Public/MCP/Get-CippMcpToolResult.ps1 index 073846f871f03..44f45b9fea49d 100644 --- a/Modules/CIPPCore/Public/MCP/Get-CippMcpToolResult.ps1 +++ b/Modules/CIPPCore/Public/MCP/Get-CippMcpToolResult.ps1 @@ -35,17 +35,28 @@ function Get-CippMcpToolResult { $PathItem = $Spec['paths']["/api/$ToolName"] $Method = if ($PathItem -and $PathItem.Contains('post')) { 'POST' } else { 'GET' } - # Flatten the MCP arguments object into a parameter hashtable. + # Flatten the MCP arguments object into a parameter hashtable. Arguments may arrive as a + # dictionary or as a PSCustomObject depending on how the JSON-RPC body was deserialized. $ArgHash = @{} - if ($Arguments) { + if ($Arguments -is [System.Collections.IDictionary]) { + foreach ($Entry in $Arguments.GetEnumerator()) { + $ArgHash[$Entry.Key] = $Entry.Value + } + } elseif ($Arguments) { foreach ($Prop in $Arguments.PSObject.Properties) { $ArgHash[$Prop.Name] = $Prop.Value } } # Clone caller headers (preserves the EasyAuth principal) and tag the origin for auditing. + # The Functions worker exposes Headers as Dictionary[string,string]; PSObject.Properties on a + # dictionary yields .NET members (Count, Keys, ...) rather than entries, dropping every header. $Headers = @{} - if ($Request.Headers) { + if ($Request.Headers -is [System.Collections.IDictionary]) { + foreach ($Entry in $Request.Headers.GetEnumerator()) { + $Headers[$Entry.Key] = $Entry.Value + } + } elseif ($Request.Headers) { foreach ($Header in $Request.Headers.PSObject.Properties) { $Headers[$Header.Name] = $Header.Value } diff --git a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 index f1f155657c970..741037aa50a9e 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackup.ps1 @@ -161,6 +161,10 @@ function New-CIPPBackup { # If building full URL fails, fall back to resource path $blobUrl = $resourcePath } + + # Best-effort off-site replication to an external storage account. + $ReplType = if ($backupType -eq 'CIPP') { 'Core' } else { 'Tenant' } + Push-CIPPBackupReplication -BackupType $ReplType -BlobName $blobName -Content $BackupData -Headers $Headers } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -headers $Headers -API $APINAME -message "Blob upload failed: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage diff --git a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 index 55f189947694d..d8dfdeecb4f6b 100644 --- a/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPBackupTask.ps1 @@ -27,7 +27,7 @@ function New-CIPPBackupTask { } 'users' { Measure-CippTask -TaskName 'Users' -EventName 'CIPP.BackupCompleted' -Script { - New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$top=999' -tenantid $TenantFilter | Select-Object * -ExcludeProperty mail, provisionedPlans, onPrem*, *passwordProfile*, *serviceProvisioningErrors*, isLicenseReconciliationNeeded, isManagementRestricted, isResourceAccount, *date*, *external*, identities, deletedDateTime, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier | ForEach-Object { + 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, imAddresses, isSipEnabled, assignedPlans, cloudRealtimeCommunicationInfo, deviceKeys, provisionedPlan, securityIdentifier | ForEach-Object { #remove the property if the value is $null $_.psobject.properties | Where-Object { $null -eq $_.Value } | ForEach-Object { $_.psobject.properties.Remove($_.Name) diff --git a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 index f2b236fdf9b54..49794050eb9ac 100644 --- a/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCAPolicy.ps1 @@ -1,4 +1,3 @@ - function New-CIPPCAPolicy { [CmdletBinding()] param ( @@ -13,7 +12,12 @@ function New-CIPPCAPolicy { $Headers, $PreloadedCAPolicies = $null, $PreloadedLocations = $null, - $PreloadedSecurityDefaults = $null + $PreloadedSecurityDefaults = $null, + $DependencyMap = $null, + $PreloadedServicePrincipals = $null, + $PreloadedUsers = $null, + $PreloadedGroups = $null, + $PreloadedVacationGroups = $null ) # Helper function to replace group display names with GUIDs @@ -88,6 +92,7 @@ function New-CIPPCAPolicy { } } else { Write-Warning "User $_ not found in the tenant" + $null = Write-LogMessage -Headers $Headers -API $APIName -message "CA policy user value '$_' did not match any user in the tenant and was dropped from the policy" -Sev 'Warning' } } } @@ -111,6 +116,14 @@ function New-CIPPCAPolicy { if ($JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.Members) { $JSONobj.conditions.users.excludeGuestsOrExternalUsers.externalTenants.PSObject.Properties.Remove('@odata.context') } + if ($JSONobj.sessionControls) { + if ($JSONobj.sessionControls.disableResilienceDefaults -ne $true) { + $JSONobj.sessionControls.PSObject.Properties.Remove('disableResilienceDefaults') + } + if (@($JSONobj.sessionControls.PSObject.Properties).Count -eq 0) { + $JSONobj.PSObject.Properties.Remove('sessionControls') + } + } if ($State -and $State -ne 'donotchange') { $JSONobj | Add-Member -NotePropertyName 'state' -NotePropertyValue $State -Force } @@ -137,9 +150,9 @@ function New-CIPPCAPolicy { } } - # Get named locations once if needed + # Get named locations once if needed (skipped when a shared DependencyMap is supplied - deps were reconciled up front) $AllNamedLocations = $null - if ($JSONobj.LocationInfo) { + if (-not $DependencyMap -and $JSONobj.LocationInfo) { if ($PreloadedLocations) { Write-Information 'Using preloaded named locations' $AllNamedLocations = $PreloadedLocations @@ -155,9 +168,9 @@ function New-CIPPCAPolicy { } } - # Get authentication strength policies once if needed + # Get authentication strength policies once if needed (skipped when a shared DependencyMap is supplied) $AllAuthStrengthPolicies = $null - if ($JSONobj.GrantControls.authenticationStrength.policyType -eq 'custom' -or $JSONobj.GrantControls.authenticationStrength.policyType -eq 'BuiltIn') { + if (-not $DependencyMap -and ($JSONobj.GrantControls.authenticationStrength.policyType -eq 'custom' -or $JSONobj.GrantControls.authenticationStrength.policyType -eq 'BuiltIn')) { try { Write-Information 'Fetching authentication strength policies...' $AllAuthStrengthPolicies = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies/' -tenantid $TenantFilter -asApp $true @@ -168,9 +181,9 @@ function New-CIPPCAPolicy { } } - # Get authentication context class references once if needed + # Get authentication context class references once if needed (skipped when a shared DependencyMap is supplied) $AllAuthContexts = $null - if ($JSONobj.AuthContextInfo) { + if (-not $DependencyMap -and $JSONobj.AuthContextInfo) { try { Write-Information 'Fetching authentication context class references...' $AllAuthContexts = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationContextClassReferences' -tenantid $TenantFilter -asApp $true @@ -181,9 +194,13 @@ function New-CIPPCAPolicy { } } - # Get service principals once if needed + # Get service principals once if needed (use preloaded set when supplied to avoid a + # tenant-wide fetch on every policy in a batch) $AllServicePrincipals = $null if (($JSONobj.conditions.applications.includeApplications -and $JSONobj.conditions.applications.includeApplications -notcontains 'All') -or ($JSONobj.conditions.applications.excludeApplications -and $JSONobj.conditions.applications.excludeApplications -notcontains 'All')) { + if ($PreloadedServicePrincipals) { + $AllServicePrincipals = $PreloadedServicePrincipals + } else { try { Write-Information 'Fetching all service principals...' $AllServicePrincipals = New-GraphGETRequest -uri 'https://graph.microsoft.com/v1.0/servicePrincipals?$select=appId&$top=999' -tenantid $TenantFilter -asApp $true @@ -192,19 +209,26 @@ function New-CIPPCAPolicy { Write-Information "Error fetching service principals: $($ErrorMessage | ConvertTo-Json -Depth 10 -Compress)" throw "Failed to fetch service principals: $($ErrorMessage.NormalizedError)" } + } } #If Grant Controls contains authenticationStrength, create these and then replace the id if ($JSONobj.GrantControls.authenticationStrength.policyType -eq 'custom' -or $JSONobj.GrantControls.authenticationStrength.policyType -eq 'BuiltIn') { - $ExistingStrength = $AllAuthStrengthPolicies | Where-Object -Property displayName -EQ $JSONobj.GrantControls.authenticationStrength.displayName - if ($ExistingStrength) { - $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } - + if ($DependencyMap) { + # Dependencies were reconciled up front - resolve the id from the shared map by display name + $StrengthName = $JSONobj.GrantControls.authenticationStrength.displayName + $JSONobj.GrantControls.authenticationStrength = @{ id = $DependencyMap.AuthStrength[$StrengthName] } } else { - $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 -ScheduleRetry $true - $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } - Write-LogMessage -Headers $Headers -API $APIName -message "Created new Authentication Strength Policy: $($JSONobj.GrantControls.authenticationStrength.displayName)" -Sev 'Info' + $ExistingStrength = $AllAuthStrengthPolicies | Where-Object -Property displayName -EQ $JSONobj.GrantControls.authenticationStrength.displayName + if ($ExistingStrength) { + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + + } else { + $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 -ScheduleRetry $true + $JSONobj.GrantControls.authenticationStrength = @{ id = $ExistingStrength.id } + Write-LogMessage -Headers $Headers -API $APIName -message "Created new Authentication Strength Policy: $($JSONobj.GrantControls.authenticationStrength.displayName)" -Sev 'Info' + } } } @@ -234,8 +258,20 @@ function New-CIPPCAPolicy { # Handle authentication context class references - create if missing, replace displayNames with IDs if ($JSONobj.AuthContextInfo) { - $AuthContextLookupTable = foreach ($authContext in $JSONobj.AuthContextInfo) { - if (-not $authContext.displayName) { continue } + if ($DependencyMap) { + # Build this policy's lookup from its own AuthContextInfo + the shared id map. + # templateId stays scoped to THIS policy so per-template ids never collide across policies. + $AuthContextLookupTable = foreach ($authContext in $JSONobj.AuthContextInfo) { + if (-not $authContext.displayName) { continue } + [pscustomobject]@{ + id = $DependencyMap.AuthContexts[$authContext.displayName] + displayName = $authContext.displayName + templateId = $authContext.id + } + } + } else { + $AuthContextLookupTable = foreach ($authContext in $JSONobj.AuthContextInfo) { + if (-not $authContext.displayName) { continue } $ExistingContext = $AllAuthContexts | Where-Object -Property displayName -EQ $authContext.displayName if ($ExistingContext) { Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APIName -message "Matched authentication context: $($authContext.displayName)" -Sev 'Info' @@ -280,10 +316,10 @@ function New-CIPPCAPolicy { templateId = $authContext.id } } + } } - Write-Information 'Auth Context Lookup Table:' - Write-Information ($AuthContextLookupTable | ConvertTo-Json -Depth 10) + Write-Information "Auth Context Lookup Table: $(@($AuthContextLookupTable) | ConvertTo-Json -Depth 10 -Compress)" # Replace display names with actual IDs in the policy if ($AuthContextLookupTable -and $JSONobj.conditions.applications.includeAuthenticationContextClassReferences) { @@ -302,6 +338,21 @@ function New-CIPPCAPolicy { } #for each of the locations, check if they exist, if not create them. These are in $JSONobj.LocationInfo + if ($DependencyMap) { + # Build this policy's lookup from its own LocationInfo + the shared id map + $NewLocationsCreated = $DependencyMap.NewLocationsCreated + $LocationLookupTable = foreach ($locations in $JSONobj.LocationInfo) { + if (!$locations) { continue } + foreach ($location in $locations) { + if (!$location.displayName) { continue } + [pscustomobject]@{ + id = $DependencyMap.Locations[$location.displayName] + name = $location.displayName + templateId = $location.id + } + } + } + } else { $NewLocationsCreated = $false $LocationLookupTable = foreach ($locations in $JSONobj.LocationInfo) { if (!$locations) { continue } @@ -383,8 +434,8 @@ function New-CIPPCAPolicy { } } } - Write-Information 'Location Lookup Table:' - Write-Information ($LocationLookupTable | ConvertTo-Json -Depth 10) + } + Write-Information "Location Lookup Table: $(@($LocationLookupTable) | ConvertTo-Json -Depth 10 -Compress)" if ($LocationLookupTable -and $JSONobj.conditions.locations) { foreach ($location in $JSONobj.conditions.locations.includeLocations) { @@ -431,25 +482,31 @@ function New-CIPPCAPolicy { } try { Write-Information 'Replacement pattern for inclusions and exclusions is displayName.' - $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 + if ($null -ne $PreloadedUsers -and $null -ne $PreloadedGroups) { + # Use the batch-level preloaded lookups to avoid a users+groups fetch per policy + $users = $PreloadedUsers + $groups = $PreloadedGroups + } else { + $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 + $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') { + if ($JSONobj.conditions.users.PSObject.Properties.Name -contains $userType -and $JSONobj.conditions.users.$userType -notin 'All', 'None', 'GuestsOrExternalUsers') { $JSONobj.conditions.users.$userType = @(Convert-UserNameToId -userNames $JSONobj.conditions.users.$userType) } } @@ -548,7 +605,12 @@ function New-CIPPCAPolicy { } # 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 | + $VacationGroups = if ($null -ne $PreloadedVacationGroups) { + $PreloadedVacationGroups + } else { + 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 + } + $ExistingVacationGroup = $VacationGroups | Where-Object { $CheckExisting.conditions.users.excludeGroups -contains $_.id } if ($ExistingVacationGroup) { if (-not ($JSONobj.conditions.users.PSObject.Properties.Name -contains 'excludeGroups')) { diff --git a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 index 677377cbaee03..d7d2ebf83d452 100644 --- a/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPCATemplate.ps1 @@ -76,7 +76,7 @@ function New-CIPPCATemplate { if ($isPSCustomObject -and $hasIncludeUsers) { $JSON.conditions.users.includeUsers = @($JSON.conditions.users.includeUsers | ForEach-Object { $originalID = $_ - if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } + if ($_ -in 'All', 'None', 'GuestsOrExternalUsers') { return $_ } $match = $users | Where-Object { $_.id -eq $originalID } if ($match) { $match.displayName } else { $originalID } }) @@ -85,7 +85,7 @@ function New-CIPPCATemplate { # Use the same type check for other user properties if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeUsers) { $JSON.conditions.users.excludeUsers = @($JSON.conditions.users.excludeUsers | ForEach-Object { - if ($_ -in 'All', 'None', 'GuestOrExternalUsers') { return $_ } + if ($_ -in 'All', 'None', 'GuestsOrExternalUsers') { return $_ } $originalID = $_ $match = $users | Where-Object { $_.id -eq $originalID } if ($match) { $match.displayName } else { $originalID } @@ -95,7 +95,7 @@ function New-CIPPCATemplate { if ($isPSCustomObject -and $null -ne $JSON.conditions.users.includeGroups) { $JSON.conditions.users.includeGroups = @($JSON.conditions.users.includeGroups | ForEach-Object { $originalID = $_ - if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid -String $_)) { return $_ } + if ($_ -in 'All', 'None', 'GuestsOrExternalUsers' -or -not (Test-IsGuid -String $_)) { return $_ } $match = $groups | Where-Object { $_.id -eq $originalID } if ($match) { $match.displayName } else { $originalID } }) @@ -103,7 +103,7 @@ function New-CIPPCATemplate { if ($isPSCustomObject -and $null -ne $JSON.conditions.users.excludeGroups) { $JSON.conditions.users.excludeGroups = @($JSON.conditions.users.excludeGroups | ForEach-Object { $originalID = $_ - if ($_ -in 'All', 'None', 'GuestOrExternalUsers' -or -not (Test-IsGuid -String $_)) { return $_ } + if ($_ -in 'All', 'None', 'GuestsOrExternalUsers' -or -not (Test-IsGuid -String $_)) { return $_ } $match = $groups | Where-Object { $_.id -eq $originalID } if ($match) { $match.displayName } else { $originalID } }) diff --git a/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 index 0a3345e5cbacb..77b17558ce962 100644 --- a/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPDbRequest.ps1 @@ -4,7 +4,11 @@ function New-CIPPDbRequest { Query the CIPP Reporting database by partition key .DESCRIPTION - Retrieves data from the CippReportingDB table filtered by partition key (tenant) + Retrieves data from the CippReportingDB table filtered by partition key (tenant). + + Rows are parsed by CIPP.CippJson (System.Text.Json), not ConvertFrom-Json — see .NOTES. + Most callers should use Get-CIPPTestData instead, which adds the shared cache and applies + the per-type field manifest automatically. Call this directly only to bypass both. .PARAMETER TenantFilter The tenant domain or GUID to filter by (used as partition key) @@ -12,11 +16,41 @@ function New-CIPPDbRequest { .PARAMETER Type Optional. The data type to filter by (e.g., Users, Groups, Devices) + .PARAMETER Fields + Optional. Keep only these top-level fields on each returned record; everything else is + skipped without being materialized. A retained field keeps its ENTIRE subtree — projection + never reaches inside a kept value, so `$p.conditions.users.includeRoles` only requires + 'conditions'. Omit to return every field. Matching is case-insensitive. + + This is the only memory lever, but its value depends entirely on which fields you keep: it + pays where records are large and the read-set is small, and buys almost nothing where the + retained subtrees are most of the payload. Measure before assuming a win. + + .NOTES + Backed by CIPP.CippJson (System.Text.Json). Output is PSCustomObject with + ConvertFrom-Json's [DateTime] coercion and Int64 number semantics preserved deliberately, + so this is a drop-in replacement for every existing caller. Matching those semantics costs + nothing measurable — do not reintroduce divergence to save a branch. + + Unparseable rows are skipped rather than thrown, matching the -ErrorAction SilentlyContinue + on the ConvertFrom-Json this replaced. A row whose Data is a JSON array returns object[], + which PowerShell unrolls into the output stream — the same shape the old pipeline produced. + + Without -Fields the parser alone is modestly faster and allocates less, but retains the + same live bytes — the parser was never the memory cost. Only -Fields reduces footprint. + + Benchmark on production's runtime (PowerShell 7.4 / .NET 8, Linux container). + System.Text.Json timings differ enough on newer runtimes to invert conclusions; + allocation numbers are runtime-insensitive. + .EXAMPLE New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' .EXAMPLE New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' + + .EXAMPLE + New-CIPPDbRequest -TenantFilter 'contoso.onmicrosoft.com' -Type 'Users' -Fields 'id','displayName' #> [CmdletBinding()] param( @@ -24,7 +58,10 @@ function New-CIPPDbRequest { [string]$TenantFilter, [Parameter(Mandatory = $false)] - [string]$Type + [string]$Type, + + [Parameter(Mandatory = $false)] + [string[]]$Fields ) try { @@ -69,7 +106,20 @@ function New-CIPPDbRequest { $Results = Get-CIPPAzDataTableEntity @Table -Filter $Filter - return ($Results.Data | ConvertFrom-Json -ErrorAction SilentlyContinue) + # CippJson replaces `$Results.Data | ConvertFrom-Json`. A row whose Data is a JSON array + # returns object[], which PowerShell unrolls into the output stream — the same shape the + # pipeline produced before. Bad rows are skipped rather than thrown, matching the + # -ErrorAction SilentlyContinue this replaced. + $Projection = if ($Fields) { [string[]]$Fields } else { $null } + $Output = foreach ($Row in $Results.Data) { + if ([string]::IsNullOrWhiteSpace($Row)) { continue } + try { + [CIPP.CippJson]::ConvertFromJson($Row, $Projection) + } catch { + Write-Information "Skipping unparseable CippReportingDB row for '$Tenant'/'$Type': $($_.Exception.Message)" + } + } + return $Output } catch { Write-LogMessage -API 'CIPPDbRequest' -tenant $TenantFilter -message "Failed to query database: $($_.Exception.Message)" -sev Error throw diff --git a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 index ff186140304d0..d6913f7f55651 100644 --- a/Modules/CIPPCore/Public/New-CIPPGroup.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPGroup.ps1 @@ -275,6 +275,18 @@ function New-CIPPGroup { } $GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'New-DistributionGroup' -cmdParams $ExoParams + + $Aliases = @($GroupObject.aliases -split '\r?\n' | ForEach-Object { $_.Trim() } | Where-Object { $_ }) + $SetParams = @{ Identity = $GraphRequest.Identity } + if ($GroupObject.hideFromGAL) { + $SetParams.HiddenFromAddressListsEnabled = $true + } + if ($Aliases.Count -gt 0) { + $SetParams.EmailAddresses = @{ '@odata.type' = '#Exchange.GenericHashTable'; Add = @($Aliases | ForEach-Object { "smtp:$_" }) } + } + if ($SetParams.Keys.Count -gt 1) { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-DistributionGroup' -cmdParams $SetParams + } } $Result = [PSCustomObject]@{ diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneAppDeployment.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneAppDeployment.ps1 index 2b7f3dfac5ff9..b9accba7a50e3 100644 --- a/Modules/CIPPCore/Public/New-CIPPIntuneAppDeployment.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPIntuneAppDeployment.ps1 @@ -32,6 +32,8 @@ function New-CIPPIntuneAppDeployment { if (-not $PackageId) { throw "PackageName/packagename is required for WinGet apps but was not found in the config for '$AppDisplayName'." } + # Default to system when InstallAsSystem is absent so existing templates keep their behavior + $RunAsAccount = if ($null -ne $AppConfig.InstallAsSystem -and -not [bool]$AppConfig.InstallAsSystem) { 'user' } else { 'system' } $IntuneBody = [ordered]@{ '@odata.type' = '#microsoft.graph.winGetApp' 'displayName' = "$AppDisplayName" @@ -39,7 +41,7 @@ function New-CIPPIntuneAppDeployment { 'packageIdentifier' = "$PackageId" 'installExperience' = @{ '@odata.type' = 'microsoft.graph.winGetAppInstallExperience' - 'runAsAccount' = 'system' + 'runAsAccount' = $RunAsAccount } } } @@ -78,6 +80,29 @@ function New-CIPPIntuneAppDeployment { } } + # Build IntuneBody from raw config if not pre-built (template/standard path). MSP apps store + # only the vendor + params in the template, so build the install command here using the shared + # helper, which resolves %CIPP variables% in the params per-tenant. + if (-not $IntuneBody -and $AppType -eq 'MSPApp') { + $MSPAppName = $AppConfig.MSPAppName ?? $AppConfig.rmmname.value ?? $AppConfig.rmmname + if ([string]::IsNullOrWhiteSpace($MSPAppName)) { + throw 'MSP app vendor (rmmname) is required for MSP app deployments but was not found in the template config.' + } + # Ensure the file-loading block below can locate the packaged app files. + $AppConfig | Add-Member -NotePropertyName 'MSPAppName' -NotePropertyValue $MSPAppName -Force + + $IntuneBody = Get-Content (Join-Path $env:CIPPRootPath "AddMSPApp\$MSPAppName.app.json") | ConvertFrom-Json + $IntuneBody.displayName = $AppConfig.Applicationname ?? $AppConfig.displayName + + $TenantObj = Get-Tenants -TenantFilter $TenantFilter + $CommandResult = Get-CIPPMSPAppInstallCommand -RmmName $MSPAppName -Params $AppConfig.params -Tenant $TenantObj -PackageName $AppConfig.PackageName + $IntuneBody.installCommandLine = $CommandResult.InstallCommandLine + $IntuneBody.UninstallCommandLine = $CommandResult.UninstallCommandLine + if ($CommandResult.DetectionScriptContent) { + $IntuneBody.detectionRules[0].scriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($CommandResult.DetectionScriptContent)) + } + } + # Load files based on app type (only for types that need them) $Intunexml = $null $Infile = $null @@ -91,8 +116,14 @@ function New-CIPPIntuneAppDeployment { $BaseUri = 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' - # Check if app already exists (any type with matching display name) - $ApplicationList = New-GraphGetRequest -Uri $BaseUri -tenantid $TenantFilter | Where-Object { $_.DisplayName -eq $AppConfig.Applicationname } + # Check if app already exists (any type with matching display name). Office is a singleton per + # tenant and Graph names it 'Microsoft 365 Apps for Windows 10 and later' regardless of what the + # template calls it, so match that one on type instead or it is redeployed on every run. + $ApplicationList = if ($AppType -eq 'OfficeApp') { + New-GraphGetRequest -Uri $BaseUri -tenantid $TenantFilter | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.officeSuiteApp' } + } else { + New-GraphGetRequest -Uri $BaseUri -tenantid $TenantFilter | Where-Object { $_.DisplayName -eq $AppConfig.Applicationname } + } if ($ApplicationList.displayname.count -ge 1) { Write-LogMessage -API $APIName -tenant $TenantFilter -message "$($AppConfig.Applicationname) exists. Skipping this application" -Sev 'Info' return $null @@ -170,14 +201,11 @@ function New-CIPPIntuneAppDeployment { $NewApp = Add-CIPPW32ScriptApplication -TenantFilter $TenantFilter -Properties ([PSCustomObject]$Properties) } 'OfficeApp' { - # Strip read-only properties that Graph API won't accept on create - $ObjBody = $IntuneBody - if ($ObjBody -is [string]) { $ObjBody = $ObjBody | ConvertFrom-Json -Depth 100 } - $ReadOnlyProps = @('id', 'createdDateTime', 'lastModifiedDateTime', 'uploadState', 'publishingState', 'isAssigned', 'roleScopeTagIds', 'dependentAppCount', 'supersedingAppCount', 'supersededAppCount', 'committedContentVersion', 'fileName', 'size', 'assignments@odata.context', 'assignments', 'AppAssignment', 'AppExclude') - foreach ($prop in $ReadOnlyProps) { - if ($ObjBody.PSObject.Properties[$prop]) { - $ObjBody.PSObject.Properties.Remove($prop) - } + # Templates built in the wizard carry the individual Office fields rather than a + # pre-built IntuneBody, so build the body the same way Invoke-AddOfficeApp does. + $ObjBody = Get-CIPPOfficeAppBody -Config $AppConfig + if (-not $ObjBody) { + throw "No Office configuration could be built from the supplied settings for '$($AppConfig.Applicationname)'." } $NewApp = New-GraphPostRequest -Uri $BaseUri -tenantid $TenantFilter -Body (ConvertTo-Json -InputObject $ObjBody -Depth 10) -Type POST } diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneReportExportJob.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneReportExportJob.ps1 new file mode 100644 index 0000000000000..96c85aa1936d7 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPIntuneReportExportJob.ps1 @@ -0,0 +1,71 @@ +function New-CIPPIntuneReportExportJob { + <# + .SYNOPSIS + Submits an Intune report export job and stores the job id in the IntuneReportJobs table. + + .DESCRIPTION + Posts an export job to deviceManagement/reports/exportJobs for the given report and upserts + the job id into the IntuneReportJobs table (PartitionKey = tenant, RowKey = report name) so + a later run can poll and download the result. Used by the nightly report-export orchestrator + and by the DB cache functions to self-submit when no job is pending. + + .PARAMETER TenantFilter + The tenant to submit the export job for. + + .PARAMETER ReportName + The Intune report to export. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [ValidateSet('AppInvRawData', 'AppInstallStatusAggregate')] + [string]$ReportName + ) + + $Select = switch ($ReportName) { + 'AppInvRawData' { + @( + 'ApplicationKey', 'ApplicationName', 'ApplicationPublisher', 'ApplicationVersion', + 'DeviceId', 'DeviceName', 'OSDescription', 'OSVersion', 'Platform', + 'UserId', 'UserName', 'EmailAddress' + ) + } + 'AppInstallStatusAggregate' { + @( + 'ApplicationId', 'DisplayName', 'Publisher', 'Platform', 'AppVersion', 'AppPlatform', + 'InstalledDeviceCount', 'FailedDeviceCount', 'FailedUserCount', + 'PendingInstallDeviceCount', 'NotInstalledDeviceCount', 'FailedDevicePercentage' + ) + } + } + + $Body = @{ + reportName = $ReportName + format = 'json' + localizationType = 'replaceLocalizableValues' + select = $Select + } | ConvertTo-Json -Depth 5 + + $Job = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs' -tenantid $TenantFilter -body $Body + + if (-not $Job.id) { throw "Intune returned no job id for $ReportName" } + + $JobsTable = Get-CIPPTable -tablename 'IntuneReportJobs' + $Existing = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" + if ($Existing) { + Remove-AzDataTableEntity @JobsTable -Entity $Existing -Force -ErrorAction SilentlyContinue + } + + Add-CIPPAzDataTableEntity @JobsTable -Entity @{ + PartitionKey = $TenantFilter + RowKey = $ReportName + JobId = $Job.id + ReportName = $ReportName + SubmittedAt = ([DateTime]::UtcNow).ToString('o') + } -Force + + return $Job +} diff --git a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 index ecbb09963557f..cc1f8e38c34e9 100644 --- a/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPIntuneTemplate.ps1 @@ -47,6 +47,11 @@ function New-CIPPIntuneTemplate { default { 'managedAppPolicies' } } $Template = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/$($AppProtectionUrl)('$($ID)')" -tenantid $TenantFilter + if ($ODataType -and !$Template.'@odata.type') { + # Graph omits @odata.type when an entity is fetched via its concrete type URL, but Set-CIPPIntunePolicy derives the deploy URL from it + if ($ODataType -notmatch '^#') { $ODataType = "#$ODataType" } + $null = $Template | Add-Member -MemberType NoteProperty -Name '@odata.type' -Value $ODataType -Force + } $DisplayName = $Template.displayName $TemplateJson = ConvertTo-Json -InputObject $Template -Depth 100 -Compress } diff --git a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 index 595b18dae5a79..b1b2dddf77c80 100644 --- a/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPRestoreTask.ps1 @@ -39,7 +39,7 @@ function New-CIPPRestoreTask { # Helper function to clean user object for Graph API - removes reference properties, nulls, and empty strings function Clean-GraphObject { param($Object, [switch]$ExcludeId) - $excludeProps = @('password', 'passwordProfile', '@odata.type', 'manager', 'memberOf', 'createdOnBehalfOf', 'createdByAppId', 'deletedDateTime', 'authorizationInfo') + $excludeProps = @('password', 'passwordProfile', '@odata.type', 'manager', 'memberOf', 'createdOnBehalfOf', 'createdByAppId', 'deletedDateTime', 'authorizationInfo', 'imAddresses') if ($ExcludeId) { $excludeProps += @('id') } diff --git a/Modules/CIPPCore/Public/New-CIPPSAMCertificate.ps1 b/Modules/CIPPCore/Public/New-CIPPSAMCertificate.ps1 new file mode 100644 index 0000000000000..ff5c89dd5acda --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPSAMCertificate.ps1 @@ -0,0 +1,103 @@ +function New-CIPPSAMCertificate { + <# + .SYNOPSIS + Generates a self-signed certificate for SAM app certificate-based authentication + + .DESCRIPTION + Creates a new RSA self-signed certificate in memory suitable for use as a key credential + on the SAM app registration (consumed by Get-GraphTokenFromCert). Pure generation - no + storage or Graph interaction. The PFX is exported without a password so it is + byte-compatible with how Key Vault exposes certificate private keys through the secrets + endpoint (application/x-pkcs12); protection comes from Key Vault access control. + + .PARAMETER ValidityDays + Number of days the certificate is valid for. Defaults to 365. + + .PARAMETER KeySize + RSA key size in bits. Defaults to 2048. + + .PARAMETER SubjectName + Certificate subject. Defaults to CN=CIPP-SAM-. + + .EXAMPLE + New-CIPPSAMCertificate + + .EXAMPLE + New-CIPPSAMCertificate -ValidityDays 730 -KeySize 4096 + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $false)] + [int]$ValidityDays = 365, + + [Parameter(Mandatory = $false)] + [int]$KeySize = 2048, + + [Parameter(Mandatory = $false)] + [string]$SubjectName + ) + + if ([string]::IsNullOrEmpty($SubjectName)) { + # Machine name for local dev (WEBSITE_SITE_NAME is often set there too), site name in Azure + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $InstanceName = [System.Environment]::MachineName + } else { + $InstanceName = $env:WEBSITE_SITE_NAME + } + $SubjectName = "CN=CIPP-SAM-$InstanceName" + } + + $RSA = [System.Security.Cryptography.RSA]::Create($KeySize) + try { + $CertRequest = [System.Security.Cryptography.X509Certificates.CertificateRequest]::new( + $SubjectName, + $RSA, + [System.Security.Cryptography.HashAlgorithmName]::SHA256, + [System.Security.Cryptography.RSASignaturePadding]::Pkcs1 + ) + + # Key usage: digital signature only (client assertion signing) + $CertRequest.CertificateExtensions.Add( + [System.Security.Cryptography.X509Certificates.X509KeyUsageExtension]::new( + [System.Security.Cryptography.X509Certificates.X509KeyUsageFlags]::DigitalSignature, + $true + ) + ) + + # Enhanced key usage: client authentication + $EkuOids = [System.Security.Cryptography.OidCollection]::new() + $null = $EkuOids.Add([System.Security.Cryptography.Oid]::new('1.3.6.1.5.5.7.3.2')) + $CertRequest.CertificateExtensions.Add( + [System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension]::new($EkuOids, $false) + ) + + # Subject key identifier + $CertRequest.CertificateExtensions.Add( + [System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension]::new($CertRequest.PublicKey, $false) + ) + + # Backdate NotBefore to tolerate clock skew between this host and Entra ID + $NotBefore = (Get-Date).ToUniversalTime().AddMinutes(-15) + $NotAfter = $NotBefore.AddDays($ValidityDays) + + $Certificate = $CertRequest.CreateSelfSigned($NotBefore, $NotAfter) + try { + $PfxBytes = $Certificate.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx) + $PublicKeyBytes = $Certificate.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert) + + return [PSCustomObject]@{ + Certificate = $Certificate + PfxBase64 = [Convert]::ToBase64String($PfxBytes) + PublicKeyBase64 = [Convert]::ToBase64String($PublicKeyBytes) + Thumbprint = $Certificate.Thumbprint + NotBefore = $NotBefore + NotAfter = $NotAfter + } + } catch { + $Certificate.Dispose() + throw + } + } finally { + $RSA.Dispose() + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPSharePointLibrary.ps1 b/Modules/CIPPCore/Public/New-CIPPSharePointLibrary.ps1 new file mode 100644 index 0000000000000..f58c9520102a6 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPSharePointLibrary.ps1 @@ -0,0 +1,82 @@ +function New-CIPPSharePointLibrary { + <# + .SYNOPSIS + Create a document library on a SharePoint site + + .DESCRIPTION + Creates a document library (BaseTemplate 101) on the given site via the SharePoint REST + API. If a list with the same title already exists it is returned instead, so deploys are + idempotent. + + .PARAMETER SiteUrl + The full URL of the site to create the library on + + .PARAMETER LibraryName + The title of the document library + + .PARAMETER Description + The description of the document library + + .PARAMETER TenantFilter + The tenant the site belongs to + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$SiteUrl, + + [Parameter(Mandatory = $true)] + [string]$LibraryName, + + [string]$Description = '', + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + $APIName = 'Create SharePoint Library', + $Headers + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + # Idempotency: return the existing library when one with this title is already present. + $EscapedTitle = $LibraryName -replace "'", "''" + try { + $Existing = New-GraphGetRequest -uri "$BaseUri/web/lists/GetByTitle('$EscapedTitle')?`$select=Id,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + if ($Existing.Id) { + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Library $LibraryName already exists on $SiteUrl, reusing it." -sev Info + return [PSCustomObject]@{ + ListId = $Existing.Id + Title = $Existing.Title + Created = $false + } + } + } catch { + # 404 means the library does not exist yet, which is the normal path. + } + + if (-not $PSCmdlet.ShouldProcess($LibraryName, "Create document library on $SiteUrl")) { return } + + try { + $Body = ConvertTo-Json -Compress -InputObject @{ + BaseTemplate = 101 + Title = $LibraryName + Description = $Description + } + $NewList = New-GraphPostRequest -uri "$BaseUri/web/lists" -tenantid $TenantFilter -scope $Scope -type POST -body $Body -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully created document library $LibraryName on $SiteUrl" -sev Info + return [PSCustomObject]@{ + ListId = $NewList.Id + Title = $NewList.Title + Created = $true + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create document library $LibraryName on $SiteUrl. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 index 09ac3a485e201..23b9be5142a37 100644 --- a/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPSharepointSite.ps1 @@ -27,6 +27,13 @@ function New-CIPPSharepointSite { .PARAMETER SensitivityLabel The Purview sensitivity label to apply to the site + .PARAMETER Lcid + SharePoint UI language LCID. Omit to keep the legacy English (1033) default used by + Add Site. Pass 0 to use the tenant default (SharePoint Online root site language). + Pass a positive LCID to force that language — must be a SharePoint Online site-creation + language (same allowlist as the template builder). If 0 is passed and the root language + cannot be read, site creation fails instead of falling back to English. + .PARAMETER TenantFilter The tenant associated with the site @@ -59,6 +66,9 @@ function New-CIPPSharepointSite { [string]$Classification, + [Parameter(Mandatory = $false)] + [int]$Lcid, + [Parameter(Mandatory = $true)] [string]$TenantFilter, @@ -66,10 +76,58 @@ function New-CIPPSharepointSite { $Headers ) + # SharePoint Online site-creation UI languages (not full Windows LCIDs — e.g. en-GB 2057 is invalid). + # Keep in sync with SITE_LANGUAGE_OPTIONS in CippSharePointTemplateBuilder.jsx. + $AllowedSiteLcids = @( + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1035, 1036, 1037, 1038, 1040, 1041, + 1042, 1043, 1044, 1045, 1046, 1048, 1049, 1050, 1051, 1053, 1054, 1055, 1057, 1058, 1060, + 1061, 1062, 1063, 1066, 1069, 1081, 1086, 1087, 1106, 1110, 2052, 2070, 2074, 3082 + ) + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter $SitePath = $SiteName -replace ' ' -replace '[^A-Za-z0-9-]' $SiteUrl = "https://$($SharePointInfo.TenantName).sharepoint.com/sites/$SitePath" + # Resolve site language: + # - Explicit positive LCID → use it (must be in $AllowedSiteLcids) + # - Explicit 0 (or negative) → tenant default. In SharePoint Online that is the root + # site language (https://{tenant}.sharepoint.com); there is no separate admin-center + # "default language" API (Graph sharepointSettings has timezone, not language). + # - Parameter omitted → English (1033), preserving AddSite / bulk-create behaviour + # + # When tenant default is requested but the root language cannot be read, fail instead of + # silently creating an English site on a non-English tenant. + if ($PSBoundParameters.ContainsKey('Lcid')) { + if ($Lcid -gt 0) { + if ($Lcid -notin $AllowedSiteLcids) { + $Result = "LCID $Lcid is not a supported SharePoint Online site language. Choose a language from the template builder list (or tenant default)." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error + throw $Result + } + $ResolvedLcid = $Lcid + } else { + $ResolvedLcid = 0 + $RootLanguageError = $null + try { + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $RootWeb = New-GraphGetRequest -uri "https://$($SharePointInfo.TenantName).sharepoint.com/_api/web?`$select=Language" -tenantid $TenantFilter -scope "$($SharePointInfo.SharePointUrl)/.default" -extraHeaders $JsonAccept -UseCertificate -AsApp $true + if ($RootWeb.Language -gt 0) { + $ResolvedLcid = [int]$RootWeb.Language + } + } catch { + $RootLanguageError = $_.Exception.Message + } + if ($ResolvedLcid -le 0) { + $Detail = if ($RootLanguageError) { $RootLanguageError } else { 'Root site Language was missing or zero.' } + $Result = "Could not resolve tenant default SharePoint language for $TenantFilter (root site). $Detail Choose an explicit site language in the template, or ensure the tenant root site is readable." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Warning + throw $Result + } + } + } else { + $ResolvedLcid = 1033 + } + switch ($TemplateName) { 'Communication' { $WebTemplate = 'SITEPAGEPUBLISHING#0' @@ -110,7 +168,7 @@ function New-CIPPSharepointSite { $Request = @{ Title = $SiteName Url = $SiteUrl - Lcid = 1033 + Lcid = $ResolvedLcid ShareByEmailEnabled = $false Description = $SiteDescription WebTemplate = $WebTemplate diff --git a/Modules/CIPPCore/Public/New-CIPPSitRulePackXml.ps1 b/Modules/CIPPCore/Public/New-CIPPSitRulePackXml.ps1 index a202c9b89511d..59ecf84ec9410 100644 --- a/Modules/CIPPCore/Public/New-CIPPSitRulePackXml.ps1 +++ b/Modules/CIPPCore/Public/New-CIPPSitRulePackXml.ps1 @@ -3,9 +3,17 @@ function New-CIPPSitRulePackXml { .SYNOPSIS Synthesize a Microsoft Purview Sensitive Information Type rule pack XML from simple inputs. .DESCRIPTION - New-DlpSensitiveInformationType only accepts a rule pack XML via -FileData (byte array). - For simple regex-based SITs, this helper builds a minimal valid rule pack with fresh GUIDs - so callers can pass it to the cmdlet without hand-authoring XML. + New-DlpSensitiveInformationTypeRulePackage imports a custom SIT *rule package* (regex/keyword + based, Type=Entity). It requires the 2011 'mce' schema namespace and UTF-16 encoded bytes - the + 2018 'search.external' namespace is rejected with a schema-validation error. + + For simple regex-based SITs this helper builds a minimal valid rule pack with fresh GUIDs so + callers can hand it to the cmdlet without authoring XML. (NOTE: the singular + New-DlpSensitiveInformationType cmdlet is a *document-fingerprint* primitive and must NOT be used + for regex SITs - it stores the FileData as a fingerprint and discards the regex.) + .NOTES + The returned string declares encoding="utf-16"; callers must encode it with + [System.Text.Encoding]::Unicode (UTF-16LE, no BOM) so the bytes match the declaration. .FUNCTIONALITY Internal #> @@ -16,7 +24,7 @@ function New-CIPPSitRulePackXml { [Parameter(Mandatory)][string]$Pattern, [int]$Confidence = 85, [int]$PatternsProximity = 300, - [string]$Locale = 'en-us', + [string]$Locale = 'en-US', [string]$PublisherName = 'CIPP' ) @@ -27,10 +35,10 @@ function New-CIPPSitRulePackXml { $esc = { param($s) [System.Security.SecurityElement]::Escape([string]$s) } return @" - - + + - +
diff --git a/Modules/CIPPCore/Public/New-CIPPTeam.ps1 b/Modules/CIPPCore/Public/New-CIPPTeam.ps1 new file mode 100644 index 0000000000000..cb540b9b20960 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPTeam.ps1 @@ -0,0 +1,101 @@ +function New-CIPPTeam { + <# + .SYNOPSIS + Create a new Microsoft Team and return its group id and SharePoint site URL + + .DESCRIPTION + Creates a Team via the Graph Teams API (standard template) so the full Teams stack + (group, channels, Teams-enabled SharePoint site) is provisioned, then waits for the + backing SharePoint site to become available and returns both identifiers. + + .PARAMETER DisplayName + The display name of the team + + .PARAMETER Description + The description of the team + + .PARAMETER Owner + UPN of the team owner. Required by Graph when creating a team with application permissions. + + .PARAMETER Visibility + Public or Private. Defaults to Private. + + .PARAMETER TenantFilter + The tenant to create the team in + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$DisplayName, + + [string]$Description = '', + + [Parameter(Mandatory = $true)] + [string]$Owner, + + [ValidateSet('Public', 'Private')] + [string]$Visibility = 'Private', + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + $APIName = 'Create Team', + $Headers + ) + + $TeamsSettings = [PSCustomObject]@{ + 'template@odata.bind' = "https://graph.microsoft.com/v1.0/teamsTemplates('standard')" + 'visibility' = $Visibility.ToLower() + 'displayName' = $DisplayName + 'description' = $Description + 'members' = @( + @{ + '@odata.type' = '#microsoft.graph.aadUserConversationMember' + 'roles' = @('owner') + 'user@odata.bind' = "https://graph.microsoft.com/beta/users('$Owner')" + } + ) + } | ConvertTo-Json -Depth 10 + + if (-not $PSCmdlet.ShouldProcess($DisplayName, 'Create new Team')) { return } + + try { + # Team creation is async: Graph returns 202 with a Content-Location of /teams('{id}'). + $ResponseHeaders = New-GraphPostRequest -AsApp $true -uri 'https://graph.microsoft.com/beta/teams' -tenantid $TenantFilter -type POST -body $TeamsSettings -returnHeaders $true + $ContentLocation = [string]($ResponseHeaders.'Content-Location' | Select-Object -First 1) + $GroupId = [regex]::Match($ContentLocation, "teams\('([^']+)'\)").Groups[1].Value + if (-not $GroupId) { + throw "Team creation was accepted but no team id was returned (Content-Location: '$ContentLocation')." + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create Team $DisplayName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } + + # Wait for the backing SharePoint site to be provisioned so the caller can add libraries. + $SiteUrl = $null + $Attempts = 0 + do { + $Attempts++ + try { + $Site = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/groups/$GroupId/sites/root?`$select=id,webUrl" -tenantid $TenantFilter -AsApp $true + $SiteUrl = $Site.webUrl + } catch { + if ($Attempts -lt 10) { Start-Sleep -Seconds 6 } + } + } while (-not $SiteUrl -and $Attempts -lt 10) + + if (-not $SiteUrl) { + $Result = "Created Team $DisplayName ($GroupId) but the SharePoint site was not available yet. Libraries and permissions were not applied." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Warning + throw $Result + } + + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Successfully created Team $DisplayName with site $SiteUrl" -sev Info + return [PSCustomObject]@{ + GroupId = $GroupId + SiteUrl = $SiteUrl + } +} diff --git a/Modules/CIPPCore/Public/New-CIPPTravelPolicy.ps1 b/Modules/CIPPCore/Public/New-CIPPTravelPolicy.ps1 new file mode 100644 index 0000000000000..21d3b4c0a5ef3 --- /dev/null +++ b/Modules/CIPPCore/Public/New-CIPPTravelPolicy.ps1 @@ -0,0 +1,87 @@ +function New-CIPPTravelPolicy { + <# + .SYNOPSIS + Creates a temporary travel conditional access policy and named location for vacation mode. + + .DESCRIPTION + Builds a template-style policy JSON and hands it to New-CIPPCAPolicy, which creates the country + named location from LocationInfo, waits for it to propagate, replaces the display name reference + with the location ID and retries policy creation on propagation errors. The resulting policy blocks + sign-ins for the included users from all locations except the travel destination. Entra ID has no + standalone 'allow' control, so restricting sign-ins to the travel destination is achieved by blocking + every other location. The policy and named location share the same display name so that + Remove-CIPPTravelPolicy can remove both when the vacation ends. + + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. Supplied automatically by the API. + + .PARAMETER TenantFilter + The tenant identifier to filter the request. + + .PARAMETER Users + An array of user principal names or object IDs of the users travelling. + + .PARAMETER Countries + An array of ISO 3166-1 alpha-2 country codes for the travel destination(s). + + .PARAMETER PolicyName + The display name used for both the conditional access policy and the named location. + + .PARAMETER APIName + The name of the API operation being performed. Defaults to 'New-CIPPTravelPolicy'. + #> + [CmdletBinding()] + param( + $Headers, + [Parameter(Mandatory = $true)][string]$TenantFilter, + [Parameter(Mandatory = $true)][string[]]$Users, + [Parameter(Mandatory = $true)][string[]]$Countries, + [Parameter(Mandatory = $true)][string]$PolicyName, + [string]$APIName = 'New-CIPPTravelPolicy' + ) + try { + $GuidRegex = '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$' + $UserIds = foreach ($User in $Users) { + if ($User -match $GuidRegex) { + $User + } else { + (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$([System.Web.HttpUtility]::UrlEncode($User))?`$select=id" -tenantid $TenantFilter -asApp $true).id + } + } + + $RawJSON = ConvertTo-Json -Depth 10 -InputObject @{ + displayName = $PolicyName + state = 'enabled' + conditions = @{ + users = @{ includeUsers = @($UserIds) } + applications = @{ includeApplications = @('All') } + clientAppTypes = @('all') + locations = @{ + includeLocations = @('All') + excludeLocations = @($PolicyName) + } + } + grantControls = @{ + operator = 'OR' + builtInControls = @('block') + } + LocationInfo = @( + @{ + '@odata.type' = '#microsoft.graph.countryNamedLocation' + displayName = $PolicyName + countriesAndRegions = @($Countries) + includeUnknownCountriesAndRegions = $false + } + ) + } + $null = New-CIPPCAPolicy -RawJSON $RawJSON -TenantFilter $TenantFilter -Overwrite $true -ReplacePattern 'none' -APIName $APIName -Headers $Headers + $Result = "Created temporary travel policy '$PolicyName' allowing sign-ins from $($Countries -join ', ') only." + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to create temporary travel policy '$PolicyName': $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/New-VulnCsvBytes.ps1 b/Modules/CIPPCore/Public/New-VulnCsvBytes.ps1 new file mode 100644 index 0000000000000..be860ac91a379 --- /dev/null +++ b/Modules/CIPPCore/Public/New-VulnCsvBytes.ps1 @@ -0,0 +1,31 @@ +function New-VulnCsvBytes { + <# + .SYNOPSIS + Build a CSV payload (UTF-8 bytes) from objects with explicit headers. + .PARAMETER Rows + Array of PSCustomObject where property names match the provided headers. + .PARAMETER Headers + Ordered list of column headers (and property names). + #> + [CmdletBinding()] + param( + [Parameter()][object[]]$Rows = @(), + [Parameter(Mandatory)][string[]]$Headers + ) + + $Sb = [System.Text.StringBuilder]::new() + [void]$Sb.AppendLine(($Headers -join ',')) + + foreach ($Row in $Rows) { + $Cells = foreach ($Header in $Headers) { + $Val = $Row.$Header + if ($null -ne $Val) { + $S = [string]$Val + if ($S -match '[,"\r\n]') { '"' + ($S -replace '"', '""') + '"' } else { $S } + } else { '' } + } + [void]$Sb.AppendLine(($Cells -join ',')) + } + + return [System.Text.Encoding]::UTF8.GetBytes($Sb.ToString()) +} diff --git a/Modules/CIPPCore/Public/Push-CIPPBackupReplication.ps1 b/Modules/CIPPCore/Public/Push-CIPPBackupReplication.ps1 new file mode 100644 index 0000000000000..20d40026c41bc --- /dev/null +++ b/Modules/CIPPCore/Public/Push-CIPPBackupReplication.ps1 @@ -0,0 +1,83 @@ +function Push-CIPPBackupReplication { + <# + .SYNOPSIS + Replicates a CIPP backup blob to an external storage account using a container SAS URL. + + .DESCRIPTION + After a backup blob is written to the CIPP-bound storage account, this helper uploads an + identical copy to an external Azure Storage container. The destination is described by a + container-level SAS URL (with write+create permission) stored in Key Vault, so the secret + never lands in table storage or the browser. + + There are two independent replication targets: + Core -> KV secret 'BackupReplicationCore' (Config RowKey 'Core') for CIPP backups + Tenant -> KV secret 'BackupReplicationTenant' (Config RowKey 'Tenant') for scheduled tenant backups + + Replication is best-effort: any failure is logged but never thrown, so a replication problem + can never abort the underlying backup. + + .PARAMETER BackupType + 'Core' for CIPP backups, 'Tenant' for scheduled tenant backups. + + .PARAMETER BlobName + The blob file name to write (e.g. 'CIPPBackup_2024-01-15-1430.json'). + + .PARAMETER Content + The backup payload (JSON string) to upload. + + .PARAMETER Headers + Request headers passed through to Write-LogMessage for attribution. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [ValidateSet('Core', 'Tenant')] + [string]$BackupType, + + [Parameter(Mandatory = $true)] + [string]$BlobName, + + [Parameter(Mandatory = $true)] + [string]$Content, + + $Headers + ) + + $SecretName = "BackupReplication$BackupType" + + try { + # Only replicate when explicitly enabled for this scope. + $Table = Get-CIPPTable -TableName 'Config' + $Config = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'BackupReplication' and RowKey eq '$BackupType'" + if (-not $Config -or $Config.Enabled -ne $true) { + return + } + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $SasUrl = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'BackupReplication$BackupType' and RowKey eq 'BackupReplication$BackupType'").SASUrl + } + else { + $SasUrl = Get-CippKeyVaultSecret -Name $SecretName -AsPlainText + } + + if ([string]::IsNullOrWhiteSpace($SasUrl)) { + Write-LogMessage -headers $Headers -API 'BackupReplication' -message "$BackupType backup replication is enabled but no SAS URL is stored" -Sev 'Warning' + return + } + + # Insert the blob name into the container SAS URL, before the query string. + $UrlParts = $SasUrl -split '\?', 2 + $BaseUrl = $UrlParts[0].TrimEnd('/') + $Target = "$BaseUrl/$BlobName" + if ($UrlParts.Count -gt 1 -and -not [string]::IsNullOrWhiteSpace($UrlParts[1])) { + $Target = "$Target`?$($UrlParts[1])" + } + + $null = Invoke-CIPPRestMethod -Uri $Target -Method 'PUT' -Body $Content -ContentType 'application/json; charset=utf-8' -Headers @{ 'x-ms-blob-type' = 'BlockBlob' } + Write-LogMessage -headers $Headers -API 'BackupReplication' -message "Replicated $BackupType backup '$BlobName' to external storage" -Sev 'Debug' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API 'BackupReplication' -message "Failed to replicate $BackupType backup '$BlobName' to external storage: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPDirectTenantToken.ps1 b/Modules/CIPPCore/Public/Remove-CIPPDirectTenantToken.ps1 new file mode 100644 index 0000000000000..4077e2c7a3303 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPDirectTenantToken.ps1 @@ -0,0 +1,46 @@ +function Remove-CIPPDirectTenantToken { + <# + .FUNCTIONALITY + Internal + .SYNOPSIS + Removes the per-tenant refresh token stored for a direct tenant. + .DESCRIPTION + Direct tenants authenticate with their own refresh token, kept in Key Vault (or the DevSecrets + table when running locally) under the tenant id, and cached in an environment variable of the + same name. This removes both so a tenant that is not a direct tenant cannot fall back to it. + Cleanup is best effort - failures are logged rather than thrown, because callers use this while + handling another outcome. + .PARAMETER TenantId + The customer id (GUID) of the tenant whose stored credential should be removed. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantId + ) + + if (-not $PSCmdlet.ShouldProcess($TenantId, 'Remove direct tenant refresh token')) { + return + } + + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $SecretName = $TenantId -replace '-', '_' + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'Secret' and RowKey eq 'Secret'" + if ($Secret -and $Secret.PSObject.Properties.Name -contains $SecretName) { + $Secret.$SecretName = '' + $null = Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force + } + Remove-Item -Path "env:\$SecretName" -ErrorAction SilentlyContinue + } else { + $KeyVaultName = Get-CippKeyVaultName + $null = Remove-CippKeyVaultSecret -VaultName $KeyVaultName -Name $TenantId -ErrorAction Stop + } + + Remove-Item -Path "env:\$TenantId" -ErrorAction SilentlyContinue + Write-Information "Removed stored direct tenant refresh token for $TenantId" + } catch { + Write-Warning "Failed to remove the stored direct tenant refresh token for $TenantId - $($_.Exception.Message)" + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 index 1880d4c4960f5..c4f395369f1f5 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPGroupMember.ps1 @@ -52,15 +52,28 @@ function Remove-CIPPGroupMember { ) try { - $Requests = foreach ($m in $Member) { - if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + $Requests = @( + foreach ($m in $Member) { + if ($m -like '*#EXT#*') { $m = [System.Web.HttpUtility]::UrlEncode($m) } + @{ + id = "users-$m" + url = "users/$($m)?`$select=id,userPrincipalName" + method = 'GET' + } + } @{ - id = $m - url = "users/$($m)?`$select=id,userPrincipalName" + id = 'group' + url = "groups/$($GroupId)?`$select=id,displayName" method = 'GET' } - } - $Users = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + ) + $BulkResults = New-GraphBulkRequest -Requests @($Requests) -tenantid $TenantFilter + $Users = @($BulkResults | Where-Object { $_.id -like 'users-*' }) + # Group display name for logging; falls back to the id if the lookup failed + # (e.g. the group was addressed by mail rather than GUID). + $GroupName = ($BulkResults | Where-Object { $_.id -eq 'group' }).body.displayName ?? $GroupId + $SuccessfulUsers = [System.Collections.Generic.List[string]]::new() + $FailedUsers = [System.Collections.Generic.List[string]]::new() if ($GroupType -eq 'Distribution list' -or $GroupType -eq 'Mail-Enabled Security') { $ExoBulkRequests = [System.Collections.Generic.List[object]]::new() @@ -75,7 +88,7 @@ function Remove-CIPPGroupMember { } }) $ExoLogs.Add(@{ - message = "Removed member $($User.body.userPrincipalName) from $($GroupId) group" + message = "Removed member $($User.body.userPrincipalName) from group $($GroupName)" target = $User.body.userPrincipalName }) } @@ -93,6 +106,7 @@ function Remove-CIPPGroupMember { $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' + $SuccessfulUsers.Add($ExoLog.target) } } } @@ -106,20 +120,36 @@ function Remove-CIPPGroupMember { } $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)" + $UserPrincipalName = ($Users | Where-Object { $_.body.id -eq $Result.id }).body.userPrincipalName + if ($Result.status -lt 200 -or $Result.status -gt 299) { + # Select-Object -First 1: Get-NormalizedError can return multiple strings + # when a message matches more than one of its translation patterns. + $ErrorText = Get-NormalizedError -message ($Result.body.error.message ?? "Request failed with status $($Result.status)") | Select-Object -First 1 + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to remove member $UserPrincipalName from group $($GroupName): $ErrorText" -Sev 'Error' + $FailedUsers.Add("$UserPrincipalName ($ErrorText)") + } else { + $SuccessfulUsers.Add($UserPrincipalName) } } } - $UserList = ($Users.body.userPrincipalName -join ', ') - $Results = "Successfully removed user $UserList from $($GroupId)." + $Messages = [System.Collections.Generic.List[string]]::new() + if ($SuccessfulUsers.Count -gt 0) { + $Messages.Add("Successfully removed user $($SuccessfulUsers -join ', ') from group $($GroupName).") + } + if ($FailedUsers.Count -gt 0) { + $Messages.Add("Failed to remove $($FailedUsers -join '; ').") + } + $Results = $Messages -join ' ' + if ($SuccessfulUsers.Count -eq 0 -and $FailedUsers.Count -gt 0) { + throw $Results + } Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Results -Sev Info return $Results } catch { $ErrorMessage = Get-CippException -Exception $_ $UserList = if ($Users) { ($Users.body.userPrincipalName -join ', ') } else { ($Member -join ', ') } - $Results = "Failed to remove user $UserList from $($GroupId): $($ErrorMessage.NormalizedError)" + $Results = "Failed to remove user $UserList from group $($GroupName ?? $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-CIPPLicense.ps1 b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 index 9422e8556faa8..ce8980fbcd148 100644 --- a/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 +++ b/Modules/CIPPCore/Public/Remove-CIPPLicense.ps1 @@ -10,6 +10,28 @@ function Remove-CIPPLicense { ) if ($Schedule.IsPresent) { + # Record which licenses the user holds right now, so the offboarding result (and any + # ticket/webhook/email it feeds) documents what was removed - useful for auditing and + # for restoring the account to its previous state. Sku names come from the cached + # license overview, which resolves the best available display name for the tenant. + $LicenseSuffix = '' + try { + $LicenseOverview = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview') + $UserLicenseState = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$select=licenseAssignmentStates" -tenantid $TenantFilter + $ActiveSkuIds = @(($UserLicenseState.licenseAssignmentStates | Where-Object { $_.state -eq 'Active' }).skuId | Select-Object -Unique) + $LicenseNames = foreach ($SkuId in $ActiveSkuIds) { + $Sku = $LicenseOverview | Where-Object { $_.skuId -eq $SkuId } | Select-Object -First 1 + if ($Sku.License) { $Sku.License } else { $SkuId } + } + if ($LicenseNames) { + $LicenseSuffix = " Licenses currently assigned that will be removed: $(@($LicenseNames | Sort-Object -Unique) -join ', ')." + } else { + $LicenseSuffix = ' The user currently has no licenses assigned.' + } + } catch { + Write-Information "Could not enumerate current licenses for the scheduled removal message: $($_.Exception.Message)" + } + $ScheduledTask = @{ TenantFilter = $TenantFilter Name = "Remove License: $Username" @@ -30,37 +52,71 @@ function Remove-CIPPLicense { } } Add-CIPPScheduledTask -Task $ScheduledTask -hidden $false -DisallowDuplicateName $true - return "Scheduled license removal for $username" + return "Scheduled license removal for $username.$LicenseSuffix" } else { try { $ConvertTable = [System.IO.File]::ReadAllText((Join-Path $env:CIPPRootPath 'Config\ConversionTable.csv')) | ConvertFrom-Csv $User = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)" -tenantid $tenantFilter - $GroupMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/memberOf/microsoft.graph.group?`$select=id,displayName,assignedLicenses" -tenantid $tenantFilter + $GroupMemberships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)/memberOf/microsoft.graph.group?`$select=id,displayName,assignedLicenses,mailEnabled,groupTypes" -tenantid $tenantFilter $LicenseGroups = $GroupMemberships | Where-Object { ($_.assignedLicenses | Measure-Object).Count -gt 0 } if ($LicenseGroups) { - # remove user from groups with licenses, these can only be graph groups - $RemoveRequests = foreach ($LicenseGroup in $LicenseGroups) { - @{ - id = $LicenseGroup.id - method = 'DELETE' - url = "groups/$($LicenseGroup.id)/members/$($User.id)/`$ref" + # remove user from license groups. Mail-enabled security groups can't be modified through Graph, so those go through Exchange Online instead + $GraphRemoveRequests = [System.Collections.Generic.List[object]]::new() + $ExoRemoveRequests = [System.Collections.Generic.List[object]]::new() + $ExoGroups = [System.Collections.Generic.List[object]]::new() + + foreach ($LicenseGroup in $LicenseGroups) { + $IsM365Group = $LicenseGroup.groupTypes -contains 'Unified' + if ($LicenseGroup.mailEnabled -and -not $IsM365Group) { + $ExoRemoveRequests.Add(@{ + CmdletInput = @{ + CmdletName = 'Remove-DistributionGroupMember' + Parameters = @{ + Identity = $LicenseGroup.id + Member = $User.id + BypassSecurityGroupManagerCheck = $true + } + } + }) + $ExoGroups.Add($LicenseGroup) + } else { + $GraphRemoveRequests.Add(@{ + id = $LicenseGroup.id + method = 'DELETE' + url = "groups/$($LicenseGroup.id)/members/$($User.id)/`$ref" + }) } } Write-Information 'Removing user from groups with licenses' - $RemoveResults = New-GraphBulkRequest -tenantid $tenantFilter -requests @($RemoveRequests) - Write-Information ($RemoveResults | ConvertTo-Json -Depth 5) - foreach ($Result in $RemoveResults) { - $Group = $LicenseGroups | Where-Object { $_.id -eq $Result.id } - $GroupName = $Group.displayName - if ($Result.status -eq 204) { - Write-LogMessage -headers $Headers -API $APIName -message "Removed $($User.displayName) from license group $GroupName" -Sev 'Info' -tenant $TenantFilter - "Removed $($User.displayName) from license group $GroupName" - } else { - Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." -Sev 'Error' -tenant $TenantFilter - "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." + if ($GraphRemoveRequests.Count -gt 0) { + $RemoveResults = New-GraphBulkRequest -tenantid $tenantFilter -requests @($GraphRemoveRequests) + Write-Information ($RemoveResults | ConvertTo-Json -Depth 5) + foreach ($Result in $RemoveResults) { + $GroupName = ($LicenseGroups | Where-Object { $_.id -eq $Result.id }).displayName + if ($Result.status -eq 204) { + Write-LogMessage -headers $Headers -API $APIName -message "Removed $($User.displayName) from license group $GroupName" -Sev 'Info' -tenant $TenantFilter + "Removed $($User.displayName) from license group $GroupName" + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." -Sev 'Error' -tenant $TenantFilter + "Failed to remove $($User.displayName) from license group $GroupName. This is likely because its a Dynamic Group or synced with active directory." + } + } + } + + if ($ExoRemoveRequests.Count -gt 0) { + $RawExoRequest = New-ExoBulkRequest -tenantid $tenantFilter -cmdletArray @($ExoRemoveRequests) + $LastError = $RawExoRequest | Select-Object -Last 1 + foreach ($ExoGroup in $ExoGroups) { + if (!$LastError -or ($LastError.error -and $LastError.target -notcontains $User.id)) { + Write-LogMessage -headers $Headers -API $APIName -message "Removed $($User.displayName) from mail-enabled license group $($ExoGroup.displayName)" -Sev 'Info' -tenant $TenantFilter + "Removed $($User.displayName) from mail-enabled license group $($ExoGroup.displayName)" + } else { + Write-LogMessage -headers $Headers -API $APIName -message "Failed to remove $($User.displayName) from mail-enabled license group $($ExoGroup.displayName). This is likely because its a Dynamic Group or synced with active directory." -Sev 'Error' -tenant $TenantFilter + "Failed to remove $($User.displayName) from mail-enabled license group $($ExoGroup.displayName)." + } } } } diff --git a/Modules/CIPPCore/Public/Remove-CIPPSPOSiteUser.ps1 b/Modules/CIPPCore/Public/Remove-CIPPSPOSiteUser.ps1 new file mode 100644 index 0000000000000..f62defdce7a55 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPSPOSiteUser.ps1 @@ -0,0 +1,74 @@ +function Remove-CIPPSPOSiteUser { + <# + .SYNOPSIS + Remove a user from one or more SharePoint sites entirely + + .DESCRIPTION + Deletes the user from each site's user list via the SharePoint REST API with certificate + authentication, which removes them from every site group and direct permission grant on + that site at once. Site collection admins are refused (remove their admin flag first). + + .PARAMETER TenantFilter + Tenant the sites belong to + + .PARAMETER SiteUrls + One or more site URLs to remove the user from + + .PARAMETER LoginName + SharePoint claims login (i:0#.f|membership|upn); a bare UPN is converted automatically + + .EXAMPLE + Remove-CIPPSPOSiteUser -TenantFilter 'contoso.onmicrosoft.com' -SiteUrls @('https://contoso.sharepoint.com/sites/HR') -LoginName 'guest_example.com#ext#@contoso.onmicrosoft.com' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string[]]$SiteUrls, + [Parameter(Mandatory = $true)] + [string]$LoginName + ) + + if ($LoginName -notmatch '\|') { $LoginName = "i:0#.f|membership|$LoginName" } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + + $Succeeded = [System.Collections.Generic.List[string]]::new() + $Failed = [System.Collections.Generic.List[string]]::new() + + foreach ($SiteUrl in $SiteUrls) { + if (-not $PSCmdlet.ShouldProcess($SiteUrl, "Remove $LoginName")) { continue } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + try { + try { + $EnsureBody = ConvertTo-Json -Compress -InputObject @{ logonName = $LoginName } + $EnsuredUser = New-GraphPostRequest -uri "$BaseUri/web/ensureuser" -tenantid $TenantFilter -scope $Scope -type POST -body $EnsureBody -contentType 'application/json;odata=nometadata' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + throw "could not resolve the user (ensureuser): $($_.Exception.Message)" + } + if (-not $EnsuredUser.Id) { throw 'could not resolve the user on the site.' } + if ($EnsuredUser.IsSiteAdmin) { + throw 'user is a site collection admin; remove their admin permission first (Remove Site Admin action).' + } + try { + $null = New-GraphPostRequest -uri "$BaseUri/web/siteusers/removebyid($($EnsuredUser.Id))" -tenantid $TenantFilter -scope $Scope -type POST -body '{}' -contentType 'application/json;odata=nometadata' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + throw "removal failed: $($_.Exception.Message)" + } + $Succeeded.Add($SiteUrl) + } catch { + $Failed.Add("$($SiteUrl): $($_.Exception.Message)") + } + } + + return [PSCustomObject]@{ + Succeeded = @($Succeeded) + Failed = @($Failed) + } +} diff --git a/Modules/CIPPCore/Public/Remove-CIPPTravelPolicy.ps1 b/Modules/CIPPCore/Public/Remove-CIPPTravelPolicy.ps1 new file mode 100644 index 0000000000000..c2f6b3a8295b1 --- /dev/null +++ b/Modules/CIPPCore/Public/Remove-CIPPTravelPolicy.ps1 @@ -0,0 +1,75 @@ +function Remove-CIPPTravelPolicy { + <# + .SYNOPSIS + Removes a temporary travel conditional access policy and its named location. + + .DESCRIPTION + Deletes the conditional access policy and the country named location that were created by + New-CIPPTravelPolicy. Both objects are located by their shared display name. The policy is + deleted first because the named location cannot be removed while a policy still references it. + + .PARAMETER Headers + The headers to include in the request, typically containing authentication tokens. Supplied automatically by the API. + + .PARAMETER TenantFilter + The tenant identifier to filter the request. + + .PARAMETER PolicyName + The display name shared by the conditional access policy and the named location. + + .PARAMETER APIName + The name of the API operation being performed. Defaults to 'Remove-CIPPTravelPolicy'. + #> + [CmdletBinding()] + param( + $Headers, + [Parameter(Mandatory = $true)][string]$TenantFilter, + [Parameter(Mandatory = $true)][string]$PolicyName, + [string]$APIName = 'Remove-CIPPTravelPolicy' + ) + try { + $Results = [System.Collections.Generic.List[string]]::new() + + $Policies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/policies?$select=id,displayName&$top=999' -tenantid $TenantFilter -asApp $true | Where-Object { $_.displayName -eq $PolicyName } + foreach ($Policy in $Policies) { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/$($Policy.id)" -type DELETE -tenantid $TenantFilter -asApp $true + $Results.Add("Deleted temporary travel policy '$PolicyName'.") + } + if (!$Policies) { + $Results.Add("No conditional access policy named '$PolicyName' was found, it may have been removed already.") + } + + $Locations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations?$select=id,displayName&$top=999' -tenantid $TenantFilter -asApp $true | Where-Object { $_.displayName -eq $PolicyName } + foreach ($Location in $Locations) { + # Deleting a named location right after deleting the policy that references it can fail + # while the policy deletion propagates, so retry a few times. + $RetryCount = 0 + $MaxRetryCount = 5 + $Deleted = $false + do { + try { + $null = Set-CIPPNamedLocation -NamedLocationId $Location.id -TenantFilter $TenantFilter -Change 'delete' -APIName $APIName -Headers $Headers + $Deleted = $true + } catch { + $RetryCount++ + if ($RetryCount -ge $MaxRetryCount) { throw } + Write-Information "Named location '$PolicyName' could not be deleted yet, will retry..." + Start-Sleep -Seconds 5 + } + } while (!$Deleted -and $RetryCount -lt $MaxRetryCount) + $Results.Add("Deleted temporary travel named location '$PolicyName'.") + } + if (!$Locations) { + $Results.Add("No named location named '$PolicyName' was found, it may have been removed already.") + } + + $Result = $Results -join ' ' + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove temporary travel policy '$PolicyName': $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CIPPCore/Public/Remove-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Remove-CippKeyVaultSecret.ps1 index 667da0c800d82..67f676f38d043 100644 --- a/Modules/CIPPCore/Public/Remove-CippKeyVaultSecret.ps1 +++ b/Modules/CIPPCore/Public/Remove-CippKeyVaultSecret.ps1 @@ -23,10 +23,9 @@ function Remove-CippKeyVaultSecret { try { if (-not $VaultName) { - if ($env:WEBSITE_DEPLOYMENT_ID) { - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - } else { - throw 'VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set' + $VaultName = Get-CippKeyVaultName + if (-not $VaultName) { + throw 'VaultName not provided and could not be derived (WEBSITE_SITE_NAME / WEBSITE_DEPLOYMENT_ID not set)' } } diff --git a/Modules/CIPPCore/Public/Resolve-CIPPCADependencies.ps1 b/Modules/CIPPCore/Public/Resolve-CIPPCADependencies.ps1 new file mode 100644 index 0000000000000..02af8bcb8dfc8 --- /dev/null +++ b/Modules/CIPPCore/Public/Resolve-CIPPCADependencies.ps1 @@ -0,0 +1,216 @@ +function Resolve-CIPPCADependencies { + + # Future Use - Not currently used + + <# + .SYNOPSIS + Reconcile Conditional Access policy dependencies (named locations, authentication + contexts, authentication strengths) ONCE across a set of CA policy/template objects. + .DESCRIPTION + Used by the per-tenant CA batch deployment path (Invoke-CIPPCATemplateBatch) so that + dependencies shared by multiple policies are created/deduplicated a single time. This + avoids the duplicate named locations, c1-c99 authentication-context id collisions, and + error 1040 propagation races that occur when many CA policies deploy concurrently and + each one independently creates the dependencies it references. + + Returns displayName -> id maps that New-CIPPCAPolicy consumes via its -DependencyMap + parameter. Each policy still resolves its OWN references downstream (using its own + LocationInfo / AuthContextInfo) so per-template template-ids never collide across policies. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $TenantFilter, + [object[]]$PolicyObjects, + $AllNamedLocations = $null, + $AllAuthStrengthPolicies = $null, + $AllAuthContexts = $null, + $Overwrite = $true, + $Headers, + $APIName = 'CA Dependency Reconciliation' + ) + + $AuthStrengthMap = @{} + $AuthContextMap = @{} + $LocationMap = @{} + $NewLocationsCreated = $false + + $PolicyObjects = @($PolicyObjects | Where-Object { $_ }) + if ($PolicyObjects.Count -eq 0) { + return @{ + AuthStrength = $AuthStrengthMap + AuthContexts = $AuthContextMap + Locations = $LocationMap + NewLocationsCreated = $false + } + } + + # ---- Authentication strength policies ---- + $NeedAuthStrength = @($PolicyObjects | Where-Object { $_.GrantControls.authenticationStrength.policyType -in @('custom', 'BuiltIn') }) + if ($NeedAuthStrength.Count -gt 0) { + if ($null -eq $AllAuthStrengthPolicies) { + try { + $AllAuthStrengthPolicies = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies/' -tenantid $TenantFilter -asApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to fetch authentication strength policies: $($ErrorMessage.NormalizedError)" + } + } + foreach ($Policy in $NeedAuthStrength) { + $Strength = $Policy.GrantControls.authenticationStrength + $Name = $Strength.displayName + if (!$Name -or $AuthStrengthMap.ContainsKey($Name)) { continue } + $ExistingStrength = $AllAuthStrengthPolicies | Where-Object -Property displayName -EQ $Name | Select-Object -First 1 + if ($ExistingStrength) { + $AuthStrengthMap[$Name] = $ExistingStrength.id + } else { + $Body = ConvertTo-Json -InputObject $Strength -Depth 10 + try { + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationStrength/policies' -body $Body -Type POST -tenantid $TenantFilter -asApp $true -ScheduleRetry $true + $AuthStrengthMap[$Name] = $GraphRequest.id + $AllAuthStrengthPolicies = @($AllAuthStrengthPolicies) + @([pscustomobject]@{ id = $GraphRequest.id; displayName = $Name }) + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Created new Authentication Strength Policy: $Name" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to create authentication strength policy '$Name': $($ErrorMessage.NormalizedError)" + } + } + } + } + + # ---- Authentication context class references ---- + $NeedAuthContext = @($PolicyObjects | Where-Object { $_.AuthContextInfo }) + if ($NeedAuthContext.Count -gt 0) { + if ($null -eq $AllAuthContexts) { + try { + $AllAuthContexts = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationContextClassReferences' -tenantid $TenantFilter -asApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to fetch authentication context class references: $($ErrorMessage.NormalizedError)" + } + } + foreach ($Policy in $NeedAuthContext) { + foreach ($authContext in $Policy.AuthContextInfo) { + if (-not $authContext.displayName) { continue } + $Name = $authContext.displayName + if ($AuthContextMap.ContainsKey($Name)) { continue } + $ExistingContext = $AllAuthContexts | Where-Object -Property displayName -EQ $Name | Select-Object -First 1 + if ($ExistingContext) { + $AuthContextMap[$Name] = $ExistingContext.id + } else { + # Find the next available ID (c1-c99) across the running set so concurrent + # contexts in the same batch never collide on the same id. + $UsedIds = @($AllAuthContexts.id) + $NewId = $null + for ($i = 1; $i -le 99; $i++) { + if ("c$i" -notin $UsedIds) { $NewId = "c$i"; break } + } + if (-not $NewId) { + throw "No available authentication context IDs (c1-c99) in tenant $TenantFilter" + } + $Body = @{ + id = $NewId + displayName = $Name + description = if ($authContext.description) { $authContext.description } else { '' } + isAvailable = $true + } | ConvertTo-Json -Compress + try { + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/authenticationContextClassReferences' -body $Body -Type POST -tenantid $TenantFilter -asApp $true + $AuthContextMap[$Name] = $NewId + $AllAuthContexts = @($AllAuthContexts) + @([pscustomobject]@{ id = $NewId; displayName = $Name }) + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APIName -message "Created new Authentication Context: $Name with ID $NewId" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to create authentication context '$Name': $($ErrorMessage.NormalizedError)" + } + } + } + } + } + + # ---- Named locations ---- + $NeedLocations = @($PolicyObjects | Where-Object { $_.LocationInfo }) + if ($NeedLocations.Count -gt 0) { + if ($null -eq $AllNamedLocations) { + try { + $AllNamedLocations = New-GraphGETRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations?$top=999' -tenantid $TenantFilter -asApp $true + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to fetch named locations: $($ErrorMessage.NormalizedError)" + } + } + foreach ($Policy in $NeedLocations) { + foreach ($locations in $Policy.LocationInfo) { + if (!$locations) { continue } + foreach ($location in $locations) { + if (!$location.displayName) { continue } + $Name = $location.displayName + if ($LocationMap.ContainsKey($Name)) { continue } + $ExistingLocation = @($AllNamedLocations | Where-Object -Property displayName -EQ $Name) + $locationExists = $ExistingLocation.Count -gt 0 + if ($locationExists) { + $ExistingLocation = $ExistingLocation[0] + if ($Overwrite) { + $LocationUpdate = $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $LocationUpdate + $Body = ConvertTo-Json -InputObject $LocationUpdate -Depth 10 + try { + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$($ExistingLocation.id)" -body $Body -Type PATCH -tenantid $TenantFilter -asApp $true -ScheduleRetry $true + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APIName -message "Updated existing Named Location: $Name" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APIName -message "Named Location '$Name' (id: $($ExistingLocation.id)) could not be updated - it may have been deleted. Will attempt to create it. Error: $($ErrorMessage.NormalizedError)" -Sev 'Warning' -LogData $ErrorMessage + $locationExists = $false + } + } + if ($locationExists) { + $LocationMap[$Name] = $ExistingLocation.id + } + } + if (-not $locationExists) { + if ($location.countriesAndRegions) { $location.countriesAndRegions = @($location.countriesAndRegions) } + $LocationBody = $location | Select-Object * -ExcludeProperty id + Remove-ODataProperties -Object $LocationBody + $Body = ConvertTo-Json -InputObject $LocationBody + try { + $GraphRequest = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations' -body $Body -Type POST -tenantid $TenantFilter -asApp $true + Write-Information "Created named location with ID: $($GraphRequest.id)" + # Wait for location to be available before any policy references it + $retryCount = 0 + $MaxRetryCount = 5 + $LocationRequest = $null + do { + Start-Sleep -Seconds 3 + try { + $LocationRequest = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/identity/conditionalAccess/namedLocations/$($GraphRequest.id)" -tenantid $TenantFilter -asApp $true -ErrorAction Stop + } catch { + Write-Information 'Location not yet available, will retry...' + } + $retryCount++ + } while ((!$LocationRequest -or !$LocationRequest.id) -and ($retryCount -lt $MaxRetryCount)) + + if (!$LocationRequest -or !$LocationRequest.id) { + Write-Warning "Location $Name created but could not verify availability after $MaxRetryCount attempts. Proceeding anyway." + } + $NewLocationsCreated = $true + $LocationMap[$Name] = $GraphRequest.id + $AllNamedLocations = @($AllNamedLocations) + @([pscustomobject]@{ id = $GraphRequest.id; displayName = $Name }) + Write-LogMessage -Tenant $TenantFilter -Headers $Headers -API $APIName -message "Created new Named Location: $Name" -Sev 'Info' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + throw "Failed to create named location $Name : $($ErrorMessage.NormalizedError)" + } + } + } + } + } + } + + return @{ + AuthStrength = $AuthStrengthMap + AuthContexts = $AuthContextMap + Locations = $LocationMap + NewLocationsCreated = $NewLocationsCreated + } +} diff --git a/Modules/CIPPCore/Public/Resolve-CIPPDlpAdvancedRule.ps1 b/Modules/CIPPCore/Public/Resolve-CIPPDlpAdvancedRule.ps1 new file mode 100644 index 0000000000000..e97bd22824acd --- /dev/null +++ b/Modules/CIPPCore/Public/Resolve-CIPPDlpAdvancedRule.ps1 @@ -0,0 +1,58 @@ +function Resolve-CIPPDlpAdvancedRule { + <# + .SYNOPSIS + Enforce the AdvancedRule vs simple-mode condition exclusivity on a filtered DLP rule param set. + .DESCRIPTION + A DLP rule built with Purview's Advanced Rule editor carries its entire condition tree in the + single AdvancedRule JSON blob and leaves the flat simple-mode condition properties empty; a + simple-mode rule is the reverse. New-/Set-DlpComplianceRule reject AdvancedRule combined with + any simple-mode condition/exception parameter, so every code path that builds rule params + (template capture, deploy, drift comparison) must end up with one or the other, never both. + + Which side is authoritative comes from the source's IsAdvancedRule flag (Get-DlpComplianceRule + emits it, but the allowlist strips it from stored params - hence reading it off the unfiltered + source). Without the flag - e.g. a stored template, where a captured AdvancedRule is always + deliberate - a populated AdvancedRule wins. AdvancedRule is normalized to the JSON string the + cmdlets expect; it is kept as a string in stored templates too, so a deep condition tree can + never be truncated by the template's ConvertTo-Json -Depth limit. + .PARAMETER Source + The unfiltered rule object (Get-DlpComplianceRule output, stored template rule, or request + body), used to read IsAdvancedRule. + .PARAMETER RuleParams + The allowlist-filtered rule parameter hashtable to fix up. Modified in place and returned. + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)] $Source, + [Parameter(Mandatory)] [hashtable] $RuleParams + ) + + if (-not $RuleParams.ContainsKey('AdvancedRule')) { return $RuleParams } + + # ConvertFrom-Json yields a real boolean, but a hand-edited template may carry 'False' as a string; + # string-compare handles both. An absent flag means AdvancedRule was stored deliberately -> advanced. + $Flag = $Source.PSObject.Properties['IsAdvancedRule'] + $IsAdvanced = -not ($null -ne $Flag -and $null -ne $Flag.Value -and "$($Flag.Value)" -eq 'False') + + if (-not $IsAdvanced) { + # Simple-mode rule: the flat condition parameters are authoritative. Get-DlpComplianceRule can + # still emit an AdvancedRule serialization of those same conditions - it must not be captured, + # deployed, or drift-compared alongside them. + $RuleParams.Remove('AdvancedRule') | Out-Null + return $RuleParams + } + + $Fields = Get-CIPPDlpComplianceFieldList + foreach ($Condition in $Fields.RuleConditions) { + if ($RuleParams.ContainsKey($Condition)) { $RuleParams.Remove($Condition) | Out-Null } + } + + # The cmdlets take AdvancedRule as a JSON string (Get-* already returns it that way); serialize a + # hand-authored nested object. -Depth 100 because condition trees nest far past the default. + if ($RuleParams['AdvancedRule'] -isnot [string]) { + $RuleParams['AdvancedRule'] = ConvertTo-Json -InputObject $RuleParams['AdvancedRule'] -Depth 100 -Compress + } + return $RuleParams +} diff --git a/Modules/CIPPCore/Public/Resolve-CIPPSharePointPermissionScope.ps1 b/Modules/CIPPCore/Public/Resolve-CIPPSharePointPermissionScope.ps1 new file mode 100644 index 0000000000000..d0d00d140e68e --- /dev/null +++ b/Modules/CIPPCore/Public/Resolve-CIPPSharePointPermissionScope.ps1 @@ -0,0 +1,80 @@ +function Resolve-CIPPSharePointPermissionScope { + <# + .SYNOPSIS + Resolve the SharePoint REST context for a permission scope + + .DESCRIPTION + Builds everything needed to read or change role assignments on a SharePoint scope: the site + base URI, the token scope, the odata headers and the role assignment URI. Supplying ListId + targets a document library, omitting it targets the site root web. + + Role assignments can only be changed on a scope that holds its own permissions. With + -EnsureUniqueRoleAssignments a library that still inherits has its inheritance broken first + (copying the current assignments), so the change stays scoped to that library instead of + silently altering the whole site. Site root webs always hold their own assignments, so + nothing is broken there. + + .PARAMETER SiteUrl + The full URL of the site + + .PARAMETER ListId + Optional list/library id. When omitted the site root web is targeted. + + .PARAMETER TenantFilter + The tenant the site belongs to + + .PARAMETER EnsureUniqueRoleAssignments + Break inheritance (copying the existing assignments) when the library still inherits + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$SiteUrl, + + [string]$ListId, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [switch]$EnsureUniqueRoleAssignments + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $IsLibrary = -not [string]::IsNullOrWhiteSpace($ListId) + $ScopeUri = if ($IsLibrary) { "$BaseUri/web/lists(guid'$ListId')" } else { "$BaseUri/web" } + + $BrokeInheritance = $false + if ($IsLibrary) { + $ListInfo = New-GraphGetRequest -uri "$ScopeUri`?`$select=HasUniqueRoleAssignments,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + $HasUnique = [bool]$ListInfo.HasUniqueRoleAssignments + $TargetLabel = if ($ListInfo.Title) { "library '$($ListInfo.Title)'" } else { "library $ListId" } + + if (-not $HasUnique -and $EnsureUniqueRoleAssignments.IsPresent) { + if ($PSCmdlet.ShouldProcess($TargetLabel, 'Break role inheritance')) { + $null = New-GraphPostRequest -uri "$ScopeUri/breakroleinheritance(copyRoleAssignments=true,clearSubscopes=false)" -tenantid $TenantFilter -scope $Scope -type POST -body '{}' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + $HasUnique = $true + $BrokeInheritance = $true + } + } + } else { + # A site collection root web always holds its own assignments. + $HasUnique = $true + $TargetLabel = 'site root' + } + + return [PSCustomObject]@{ + BaseUri = $BaseUri + Scope = $Scope + Headers = $JsonAccept + ScopeUri = $ScopeUri + AssignmentUri = "$ScopeUri/roleassignments" + IsLibrary = $IsLibrary + TargetLabel = $TargetLabel + HasUniqueRoleAssignments = $HasUnique + BrokeInheritance = $BrokeInheritance + } +} diff --git a/Modules/CIPPCore/Public/Restore-CIPPSPODeletedSite.ps1 b/Modules/CIPPCore/Public/Restore-CIPPSPODeletedSite.ps1 new file mode 100644 index 0000000000000..e297c6d140a6d --- /dev/null +++ b/Modules/CIPPCore/Public/Restore-CIPPSPODeletedSite.ps1 @@ -0,0 +1,46 @@ +function Restore-CIPPSPODeletedSite { + <# + .SYNOPSIS + Restore a deleted SharePoint site from the tenant recycle bin via CSOM + + .DESCRIPTION + Restores a deleted site collection using the CSOM RestoreDeletedSite method against the + SharePoint admin endpoint (same ProcessQuery pattern as Set-CIPPSharePointPerms). + + .PARAMETER TenantFilter + Tenant the site belongs to + + .PARAMETER SiteUrl + Full URL of the deleted site to restore + + .EXAMPLE + Restore-CIPPSPODeletedSite -TenantFilter 'contoso.onmicrosoft.com' -SiteUrl 'https://contoso.sharepoint.com/sites/OldSite' + + .FUNCTIONALITY + Internal + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [Parameter(Mandatory = $true)] + [string]$SiteUrl + ) + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $AdminUrl = $SharePointInfo.AdminUrl + $AdditionalHeaders = @{ 'Accept' = 'application/json;odata=verbose' } + + $XML = @" +$([System.Security.SecurityElement]::Escape($SiteUrl)) +"@ + + if ($PSCmdlet.ShouldProcess($SiteUrl, 'Restore deleted site')) { + $Results = New-GraphPostRequest -scope "$AdminUrl/.default" -tenantid $TenantFilter -Uri "$AdminUrl/_vti_bin/client.svc/ProcessQuery" -Type POST -Body $XML -ContentType 'text/xml' -AddedHeaders $AdditionalHeaders + + $CsomError = ($Results | Where-Object { $_.ErrorInfo } | Select-Object -First 1).ErrorInfo.ErrorMessage + if ($CsomError) { throw $CsomError } + + return ($Results | Where-Object { $null -ne $_.IsComplete } | Select-Object -First 1) + } +} diff --git a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 index f2241e67deeb6..ffffabf6cdd01 100644 --- a/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 +++ b/Modules/CIPPCore/Public/Send-CIPPAlert.ps1 @@ -16,6 +16,7 @@ function Send-CIPPAlert { $TableName, $RowKey = [string][guid]::NewGuid(), $Attachments, + $AffectedUser, [switch]$UseStandardizedSchema ) Write-Information 'Shipping Alert' @@ -127,7 +128,7 @@ function Send-CIPPAlert { return (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq '$SecretName' and RowKey eq '$SecretName'").APIKey } - $KeyVaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $KeyVaultName = Get-CippKeyVaultName return (Get-CippKeyVaultSecret -VaultName $KeyVaultName -Name $SecretName -AsPlainText) } @@ -326,21 +327,31 @@ function Send-CIPPAlert { if ($Type -eq 'psa') { Write-Information 'Trying to send to PSA' - if ($config.sendtoIntegration) { - if ($PSCmdlet.ShouldProcess('PSA', 'Sending alert')) { - try { - $Alert = @{ - TenantId = $TenantFilter - AlertText = "$HTMLContent" - AlertTitle = "$($Title)" - } - New-CippExtAlert -Alert $Alert - Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Sent PSA alert $title" -sev info - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-Information "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" - Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + if (-not $config.sendtoIntegration) { + Write-Information 'PSA delivery skipped: sendtoIntegration is disabled in CippNotifications config. Enable it under Settings -> Notifications to route alerts to your PSA.' + return + } + if ($PSCmdlet.ShouldProcess('PSA', 'Sending alert')) { + try { + $Alert = @{ + TenantId = $TenantFilter + AlertText = "$HTMLContent" + AlertTitle = "$($Title)" + } + if ($AffectedUser) { + $Alert.AffectedUser = $AffectedUser + $UserLabel = if ($AffectedUser.UPN) { $AffectedUser.UPN } elseif ($AffectedUser.AzureOID) { "OID:$($AffectedUser.AzureOID)" } else { 'unknown' } + Write-Information "PSA alert AffectedUser: $UserLabel" + } + $PsaResult = New-CippExtAlert -Alert $Alert + if ($PsaResult) { + Write-Information "PSA result: $PsaResult" } + Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Sent PSA alert $title" -sev info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-Information "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Webhook Alerts' -tenant $TenantFilter -message "Could not send alerts to ticketing system: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPCore/Public/Send-CIPPScheduledTaskAlert.ps1 b/Modules/CIPPCore/Public/Send-CIPPScheduledTaskAlert.ps1 index 465634d5e7bea..c8ab3e2bf6664 100644 --- a/Modules/CIPPCore/Public/Send-CIPPScheduledTaskAlert.ps1 +++ b/Modules/CIPPCore/Public/Send-CIPPScheduledTaskAlert.ps1 @@ -36,6 +36,47 @@ function Send-CIPPScheduledTaskAlert { $Attachments ) + function Format-AlertCellValue { + <# + ConvertTo-Html stringifies non-primitive property values with .ToString(), + which renders nested collections/objects as .NET type names like + 'System.Collections.Generic.List`1[System.Object]'. Flatten them to + readable text instead. '[[BR]]' survives ConvertTo-Html's HTML encoding + and is swapped for
after the fragment is generated. + #> + param($Value, [int]$Depth = 0) + if ($null -eq $Value) { return '' } + if ($Value -is [string]) { return $Value } + if ($Value -is [datetime]) { return $Value.ToString('yyyy-MM-dd HH:mm:ss') } + if ($Value -is [bool] -or $Value.GetType().IsPrimitive -or $Value -is [decimal]) { return "$Value" } + if ($Depth -ge 3) { return "$(try { $Value | ConvertTo-Json -Compress -Depth 5 } catch { $Value })" } + if ($Value -is [System.Collections.IDictionary]) { + return (@($Value.GetEnumerator() | ForEach-Object { "$($_.Key): $(Format-AlertCellValue -Value $_.Value -Depth ($Depth + 1))" }) -join '[[BR]]') + } + if ($Value -is [System.Collections.IEnumerable]) { + return (@($Value | ForEach-Object { Format-AlertCellValue -Value $_ -Depth ($Depth + 1) }) -join '[[BR]]') + } + $Props = @($Value.PSObject.Properties) + if ($Props.Count -gt 0) { + return (@($Props | ForEach-Object { "$($_.Name): $(Format-AlertCellValue -Value $_.Value -Depth ($Depth + 1))" }) -join '[[BR]]') + } + return "$Value" + } + + function ConvertTo-AlertDisplayRow { + # Normalizes a result row for ConvertTo-Html: hashtables become objects (so they + # render as columns instead of Keys/Values/Count) and every value is flattened. + param($Row) + if ($null -eq $Row -or $Row -is [string]) { return $Row } + $Display = [ordered]@{} + if ($Row -is [System.Collections.IDictionary]) { + foreach ($Key in $Row.Keys) { $Display[[string]$Key] = Format-AlertCellValue -Value $Row[$Key] -Depth 1 } + } else { + foreach ($Prop in $Row.PSObject.Properties) { $Display[$Prop.Name] = Format-AlertCellValue -Value $Prop.Value -Depth 1 } + } + [pscustomobject]$Display + } + try { Write-Information "Sending post-execution alerts for task $($TaskInfo.Name)" @@ -56,12 +97,15 @@ function Send-CIPPScheduledTaskAlert { # Build HTML with adaptive table styling $TableDesign = '' + $EncodedTaskName = [System.Web.HttpUtility]::HtmlEncode($TaskInfo.Name) + $EncodedTenantName = [System.Web.HttpUtility]::HtmlEncode($TenantFilter) + $AlertHeader = "

$EncodedTaskName

Tenant: $EncodedTenantName

" $FinalResults = if ($Results -is [array] -and $Results[0] -is [string]) { $Results | ConvertTo-Html -Fragment -Property @{ l = 'Text'; e = { $_ } } } else { - $Results | ConvertTo-Html -Fragment + $Results | ForEach-Object { ConvertTo-AlertDisplayRow -Row $_ } | ConvertTo-Html -Fragment } - $HTML = $FinalResults -replace '', "This alert is for tenant $TenantFilter.

$TableDesign
" | Out-String + $HTML = $FinalResults -replace '\[\[BR\]\]', '
' -replace '
', "$AlertHeader $TableDesign
" | Out-String # For alert tasks, add per-row snooze links to the email if ($TaskType -eq 'Alert' -and $Results -is [array] -and $Results.Count -gt 0 -and $Results[0] -isnot [string]) { @@ -137,11 +181,125 @@ function Send-CIPPScheduledTaskAlert { $NotificationFilter = "RowKey eq 'CippNotifications' and PartitionKey eq 'CippNotifications'" $NotificationConfig = [pscustomobject](Get-CIPPAzDataTableEntity @NotificationTable -Filter $NotificationFilter) $UseStandardizedSchema = [boolean]$NotificationConfig.UseStandardizedSchema + $TaskParameters = $TaskInfo.Parameters + if ($TaskParameters -is [string] -and $TaskParameters) { + try { $TaskParameters = $TaskParameters | ConvertFrom-Json -ErrorAction Stop } catch { $TaskParameters = $null } + } + $ExecutingUser = $TaskParameters.Headers.'x-ms-client-principal-name' # Send to configured alert targets switch -wildcard ($TaskInfo.PostExecution) { '*psa*' { - Send-CIPPAlert -Type 'psa' -Title $title -HTMLContent $HTML -TenantFilter $TenantFilter + $PsaSplitSent = $false + $TaskAffectedUser = $null + try { + $ExtConfigTable = Get-CIPPTable -TableName Extensionsconfig + $ExtConfig = (Get-CIPPAzDataTableEntity @ExtConfigTable).config | ConvertFrom-Json -ErrorAction SilentlyContinue + $HaloConfig = $ExtConfig.HaloPSA + + if ($HaloConfig -and $HaloConfig.Enabled) { + # Resolve an affected user from the scheduled task's own parameters first. + # User-targeted tasks (Edit user, license changes, sign-in state) carry the + # user in Parameters while their results often have no UPN column. A UPN-like + # value maps to UPN, a GUID to AzureOID; New-CippExtAlert resolves the rest + # via Graph. Placeholder values (%userid%) from trigger tasks are skipped. + $UserUpn = $null + $UserOid = $null + $UserDisplay = $null + $GuidPattern = '^[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}$' + + # Add/Edit user tasks nest the full target user in a UserObj parameter. + # The UPN is either stored directly or composed from username + domain + # (matching how New-CIPPUser/Set-CIPPUser build it). + $UserObj = $TaskParameters.UserObj + if ($UserObj) { + if ($UserObj.userPrincipalName -is [string] -and $UserObj.userPrincipalName -match '@') { + $UserUpn = $UserObj.userPrincipalName + } elseif ($UserObj.username -is [string] -and -not [string]::IsNullOrWhiteSpace($UserObj.username)) { + $UserDomain = if ($UserObj.Domain -is [string] -and $UserObj.Domain) { $UserObj.Domain } else { $UserObj.primDomain.value } + if ($UserDomain -is [string] -and -not [string]::IsNullOrWhiteSpace($UserDomain)) { $UserUpn = "$($UserObj.username)@$UserDomain" } + } + if ($UserObj.id -is [string] -and $UserObj.id -match $GuidPattern) { $UserOid = $UserObj.id } + if ($UserObj.displayName -is [string] -and -not [string]::IsNullOrWhiteSpace($UserObj.displayName)) { $UserDisplay = $UserObj.displayName } + } + + if (-not $UserUpn -and -not $UserOid) { + $ParamKeys = @('UserPrincipalName', 'UPN', 'username', 'user', 'userid', 'id') + foreach ($ParamKey in $ParamKeys) { + $ParamValue = $TaskParameters.$ParamKey + # Form fields store autocomplete selections as {label, value} objects. + if ($ParamValue -isnot [string] -and $null -ne $ParamValue.value -and $ParamValue.value -is [string]) { $ParamValue = $ParamValue.value } + if ($ParamValue -isnot [string] -or [string]::IsNullOrWhiteSpace($ParamValue) -or $ParamValue -match '%') { continue } + if (-not $UserUpn -and $ParamValue -match '@') { $UserUpn = $ParamValue } + elseif (-not $UserOid -and $ParamValue -match $GuidPattern) { $UserOid = $ParamValue } + } + } + + if ($UserUpn -or $UserOid) { + $TaskAffectedUser = [pscustomobject]@{ + UPN = $UserUpn + AzureOID = $UserOid + DisplayName = $UserDisplay + } + } + + # Per-task PsaTicketStrategy (configured on the task) overrides the global + # HaloPSA.LinkTicketsToUsers toggle. Lets MSPs decide on a per-task basis + # whether a wide result set (e.g. "users without MFA") should produce one + # ticket per user or one consolidated ticket per tenant. + $TaskStrategy = $TaskInfo.PsaTicketStrategy + $ShouldSplit = switch ($TaskStrategy) { + 'split' { $true } + 'consolidated' { $false } + default { [bool]$HaloConfig.LinkTicketsToUsers } + } + + if ($ShouldSplit -and $Results -is [array] -and $Results.Count -gt 0 -and $Results[0] -isnot [string]) { + $UpnFieldCandidates = @('UserPrincipalName', 'userPrincipalName', 'UPN', 'userId', 'Userkey', 'Member') + $RowProperties = $Results[0].PSObject.Properties.Name + $UpnField = $UpnFieldCandidates | Where-Object { $_ -in $RowProperties } | Select-Object -First 1 + + if ($UpnField) { + $DisplayFieldCandidates = @('DisplayName', 'displayName', 'userDisplayName') + $DisplayField = $DisplayFieldCandidates | Where-Object { $_ -in $RowProperties } | Select-Object -First 1 + + $Groups = $Results | Group-Object -Property $UpnField + + foreach ($Group in $Groups) { + $GroupKey = $Group.Name + $GroupHTMLFragment = $Group.Group | ForEach-Object { ConvertTo-AlertDisplayRow -Row $_ } | ConvertTo-Html -Fragment + $GroupHTML = $GroupHTMLFragment -replace '\[\[BR\]\]', '
' -replace '
', "$AlertHeader $TableDesign
" | Out-String + + if ([string]::IsNullOrWhiteSpace($GroupKey)) { + # Rows without a usable user identifier - fall back to the + # task-level affected user if one was resolved. + $GroupParams = @{ Type = 'psa'; Title = $title; HTMLContent = $GroupHTML; TenantFilter = $TenantFilter } + if ($TaskAffectedUser) { $GroupParams.AffectedUser = $TaskAffectedUser } + Send-CIPPAlert @GroupParams + } else { + $GroupDisplayName = if ($DisplayField) { $Group.Group[0].$DisplayField } else { $null } + $UserLabel = if ($GroupDisplayName) { "$GroupDisplayName ($GroupKey)" } else { $GroupKey } + $UserTitle = "$title - $UserLabel" + $AffectedUser = [pscustomobject]@{ + UPN = $GroupKey + DisplayName = $GroupDisplayName + } + Send-CIPPAlert -Type 'psa' -Title $UserTitle -HTMLContent $GroupHTML -TenantFilter $TenantFilter -AffectedUser $AffectedUser + } + } + $PsaSplitSent = $true + } + } + } + } catch { + Write-Information "Failed to resolve PSA affected user or split by user, falling back to consolidated ticket: $($_.Exception.Message)" + } + + if (-not $PsaSplitSent) { + $PsaParams = @{ Type = 'psa'; Title = $title; HTMLContent = $HTML; TenantFilter = $TenantFilter } + if ($TaskAffectedUser) { $PsaParams.AffectedUser = $TaskAffectedUser } + Send-CIPPAlert @PsaParams + } } '*email*' { $EmailParams = @{ @@ -181,10 +339,11 @@ function Send-CIPPScheduledTaskAlert { $Webhook = if ($UseStandardizedSchema) { $obj = [PSCustomObject]@{ - tenantId = $TenantInfo.customerId - tenant = $TenantFilter - taskType = $TaskType - task = [PSCustomObject]@{ + tenantId = $TenantInfo.customerId + tenant = $TenantFilter + taskType = $TaskType + executingUser = $ExecutingUser + task = [PSCustomObject]@{ id = $TaskInfo.RowKey name = $TaskInfo.Name command = $TaskInfo.Command @@ -194,8 +353,8 @@ function Send-CIPPScheduledTaskAlert { executed = $TaskInfo.ExecutedTime partition = $TaskInfo.PartitionKey } - results = $Results - alertComment = $TaskInfo.AlertComment + results = $Results + alertComment = $TaskInfo.AlertComment } if ($SnoozeInfo) { $obj | Add-Member -NotePropertyName 'snooze' -NotePropertyValue $SnoozeInfo } $obj diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 index fe55f61476386..f0a66378fed11 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedApplication.ps1 @@ -3,12 +3,15 @@ function Set-CIPPAssignedApplication { param( $GroupName, $ExcludeGroup, + $ExcludeGroupIds, + $ExcludeGroupNames, $Intent, $AppType, $ApplicationId, $TenantFilter, $GroupIds, - $AssignmentMode = 'replace', + $AssignmentMode = 'append', + $AssignmentDirection, $APIName = 'Assign Application', $Headers, $AssignmentFilterName, @@ -106,12 +109,14 @@ function Set-CIPPAssignedApplication { $resolvedGroupIds = @() if ($PSBoundParameters.ContainsKey('GroupIds') -and $GroupIds) { $resolvedGroupIds = $GroupIds - } else { - $GroupNames = $GroupName.Split(',') + } elseif ($GroupName) { + # Trim: the group name comes from free-text fields, and stray whitespace around + # a name would otherwise silently resolve to no groups at all. + $GroupNames = @($GroupName.Split(',').Trim() | Where-Object { $_ }) $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName' -tenantid $TenantFilter | ForEach-Object { $Group = $_ foreach ($SingleName in $GroupNames) { - if ($Group.displayName -like $SingleName) { + if ($Group.displayName -like ($SingleName -replace '\[', '`[' -replace '\]', '`]')) { $Group.id } } @@ -119,9 +124,12 @@ function Set-CIPPAssignedApplication { Write-Information "found $($resolvedGroupIds) groups" } - # We ain't found nothing so we panic - if (-not $resolvedGroupIds) { - throw 'No matching groups resolved for assignment request.' + # Only panic when an include target was actually requested. Exclude-only + # assignments legitimately resolve to no include groups here. + $IncludeRequested = $GroupName -or ($GroupIds -and @($GroupIds).Count -gt 0) + if (-not $resolvedGroupIds -and $IncludeRequested) { + $SearchedFor = if ($GroupNames) { @($GroupNames) -join ', ' } else { @($GroupIds) -join ', ' } + throw "No matching groups resolved for assignment request. Searched for: $SearchedFor" } foreach ($Group in $resolvedGroupIds) { @@ -138,20 +146,34 @@ function Set-CIPPAssignedApplication { } } + # Normalize to an array so appending exclusions appends an element rather than + # merging hashtable keys (a single include group makes the switch return a scalar). + # Filter nulls so an exclude-only assignment doesn't carry an empty placeholder. + $MobileAppAssignment = @($MobileAppAssignment | Where-Object { $_ }) + # Add exclusion group assignments - if ($ExcludeGroup) { - Write-Host "Excluding group(s) from application assignment: $ExcludeGroup" - $ExcludeGroupNames = $ExcludeGroup.Split(',').Trim() - $ExcludeGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName' -tenantid $TenantFilter | ForEach-Object { - $Group = $_ - foreach ($SingleName in $ExcludeGroupNames) { - if ($Group.displayName -like $SingleName) { - $Group.id + if ($ExcludeGroup -or ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0)) { + # Prefer explicit group IDs (from the picker); fall back to name resolution + # for templates/wizards/API callers that still send ExcludeGroup names. + if ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0) { + Write-Host "Excluding group(s) by id from application assignment: $($ExcludeGroupIds -join ', ')" + $ResolvedExcludeIds = @($ExcludeGroupIds) + } else { + Write-Host "Excluding group(s) from application assignment: $ExcludeGroup" + $ExcludeGroupNames = $ExcludeGroup.Split(',').Trim() + $ResolvedExcludeIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$top=999&$select=id,displayName' -tenantid $TenantFilter | ForEach-Object { + $Group = $_ + foreach ($SingleName in $ExcludeGroupNames) { + if ($Group.displayName -like ($SingleName -replace '\[', '`[' -replace '\]', '`]')) { + $Group.id + } } } } - foreach ($egid in $ExcludeGroupIds) { + foreach ($egid in $ResolvedExcludeIds) { + # Graph rejects 'settings' on exclusion targets: + # "Exclusion assignment does not support MobileAppAssignment Settings." $MobileAppAssignment += @{ '@odata.type' = '#microsoft.graph.mobileAppAssignment' target = @{ @@ -159,7 +181,6 @@ function Set-CIPPAssignedApplication { groupId = $egid } intent = $Intent - settings = $assignmentSettings } } } @@ -176,59 +197,70 @@ function Set-CIPPAssignedApplication { } } - # If we're appending, we need to get existing assignments - if ($AssignmentMode -eq 'append') { + # Determine which existing assignments (if any) must be preserved. + # append -> keep all existing (minus ones the new set overrides) + # replace + direction -> keep everything except the direction being edited + # (Custom Group action only; legacy replace overwrites everything) + $DirectionScoped = -not [string]::IsNullOrWhiteSpace($AssignmentDirection) + $EditedType = switch ($AssignmentDirection) { + 'exclude' { '#microsoft.graph.exclusionGroupAssignmentTarget' } + 'include' { '#microsoft.graph.groupAssignmentTarget' } + default { $null } + } + $PreserveExisting = ($AssignmentMode -eq 'append') -or ($AssignmentMode -eq 'replace' -and $DirectionScoped) + + $ExistingAssignments = @() + if ($PreserveExisting) { 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 = @() + $ErrorMessage = "Unable to retrieve existing assignments for $ApplicationId. Existing assignments must be preserved for assignment mode '$AssignmentMode' and direction '$AssignmentDirection'. Aborting to avoid removing assignments. Error: $($_.Exception.Message)" + Write-Warning $ErrorMessage + throw $ErrorMessage } } - # Deduplicate current assignments so the new ones override existing ones + # Decide which existing assignments to carry forward. + $KeptAssignments = [System.Collections.Generic.List[object]]::new() if ($ExistingAssignments) { - $ExistingAssignments = $ExistingAssignments | ForEach-Object { - $ExistingAssignment = $_ - switch ($ExistingAssignment.target.'@odata.type') { - '#microsoft.graph.groupAssignmentTarget' { - if ($ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId) { - $ExistingAssignment - } - } - '#microsoft.graph.exclusionGroupAssignmentTarget' { - if ($ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId) { - $ExistingAssignment - } - } - default { - if ($ExistingAssignment.target.'@odata.type' -notin $MobileAppAssignment.target.'@odata.type') { - $ExistingAssignment - } + foreach ($ExistingAssignment in @($ExistingAssignments)) { + $ExistingType = $ExistingAssignment.target.'@odata.type' + $Keep = if ($AssignmentMode -eq 'replace' -and $DirectionScoped) { + # Direction-scoped replace: drop every target of the edited type, keep the rest + # (the other direction plus All Users / All Devices broad targets). + $ExistingType -ne $EditedType + } else { + # Append: keep existing unless the new set overrides the same group/target. + switch ($ExistingType) { + '#microsoft.graph.groupAssignmentTarget' { $ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId } + '#microsoft.graph.exclusionGroupAssignmentTarget' { $ExistingAssignment.target.groupId -notin $MobileAppAssignment.target.groupId } + default { $ExistingType -notin $MobileAppAssignment.target.'@odata.type' } } } + if ($Keep) { + $KeptAssignments.Add($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 - }) + if ($PreserveExisting) { + # Rebuild each assignment, omitting 'settings' on exclusion targets (Graph rejects it). + $AddAssignment = { + param($a) + $entry = @{ + '@odata.type' = '#microsoft.graph.mobileAppAssignment' + target = $a.target + intent = $a.intent + } + if ($a.target.'@odata.type' -ne '#microsoft.graph.exclusionGroupAssignmentTarget' -and $null -ne $a.settings) { + $entry.settings = $a.settings + } + $FinalAssignments.Add($entry) } - $MobileAppAssignment | ForEach-Object { - $FinalAssignments.Add(@{ - '@odata.type' = '#microsoft.graph.mobileAppAssignment' - target = $_.target - intent = $_.intent - settings = $_.settings - }) - } + $KeptAssignments | ForEach-Object { & $AddAssignment $_ } + $MobileAppAssignment | ForEach-Object { & $AddAssignment $_ } } else { $FinalAssignments = $MobileAppAssignment } @@ -238,12 +270,40 @@ function Set-CIPPAssignedApplication { $FinalAssignments ) } - if ($PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId")) { + $ShouldProcess = $PSCmdlet.ShouldProcess($GroupName, "Assigning Application $ApplicationId") + if ($ShouldProcess) { Start-Sleep -Seconds 1 $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/deviceAppManagement/mobileApps/$($ApplicationId)/assign" -tenantid $TenantFilter -type POST -body ($DefaultAssignmentObject | ConvertTo-Json -Compress -Depth 10) - Write-LogMessage -headers $Headers -API $APIName -message "Assigned Application $ApplicationId to $($GroupName)" -Sev 'Info' -tenant $TenantFilter } - return "Assigned Application $ApplicationId to $($GroupName)" + + $AssignedGroupsDisplay = if ($GroupName) { + $GroupName + } elseif ($GroupIds -and @($GroupIds).Count -gt 0) { + @($GroupIds) -join ', ' + } + + $ExcludedGroupsDisplay = if ($ExcludeGroupNames -and @($ExcludeGroupNames).Count -gt 0) { + @($ExcludeGroupNames) -join ', ' + } elseif ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0) { + @($ExcludeGroupIds) -join ', ' + } else { + $ExcludeGroup + } + + $ResultMessage = if ($ExcludedGroupsDisplay -and $AssignedGroupsDisplay) { + "Assigned Application $ApplicationId to $AssignedGroupsDisplay excluding group '$ExcludedGroupsDisplay'" + } elseif ($ExcludedGroupsDisplay) { + "Updated exclusions for Application $ApplicationId to group '$ExcludedGroupsDisplay'" + } elseif ($AssignmentDirection -eq 'exclude' -and $AssignmentMode -eq 'replace') { + "Cleared exclusions for Application $ApplicationId" + } else { + "Assigned Application $ApplicationId to $AssignedGroupsDisplay" + } + + if ($ShouldProcess) { + Write-LogMessage -headers $Headers -API $APIName -message $ResultMessage -Sev 'Info' -tenant $TenantFilter + } + return $ResultMessage } catch { $ErrorMessage = Get-CippException -Exception $_ Write-LogMessage -headers $Headers -API $APIName -message "Could not assign application $ApplicationId to $GroupName. Error: $($ErrorMessage.NormalizedError)" -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage diff --git a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 index c616658100f63..432e875387e89 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAssignedPolicy.ps1 @@ -3,6 +3,8 @@ function Set-CIPPAssignedPolicy { param( $GroupName, $ExcludeGroup, + $ExcludeGroupIds, + $ExcludeGroupNames, $PolicyId, $Type, $TenantFilter, @@ -13,9 +15,22 @@ function Set-CIPPAssignedPolicy { $AssignmentFilterType = 'include', $GroupIds, $GroupNames, - $AssignmentMode = 'replace' + $AssignmentMode = 'append', + $AssignmentDirection ) + # App protection policy lists expose the singular @odata.type as the URLName, but Graph + # needs the plural collection segment. Normalize the known types here. + $Type = switch ($Type) { + 'androidManagedAppProtection' { 'androidManagedAppProtections' } + 'iosManagedAppProtection' { 'iosManagedAppProtections' } + 'windowsManagedAppProtection' { 'windowsManagedAppProtections' } + 'mdmWindowsInformationProtectionPolicy' { 'mdmWindowsInformationProtectionPolicies' } + 'windowsInformationProtectionPolicy' { 'windowsInformationProtectionPolicies' } + 'targetedManagedAppConfiguration' { 'targetedManagedAppConfigurations' } + default { $Type } + } + Write-Host "Assigning policy $PolicyId ($PlatformType/$Type) to $GroupName" try { @@ -86,14 +101,17 @@ function Set-CIPPAssignedPolicy { $resolvedGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | ForEach-Object { foreach ($SingleName in $GroupNames) { - if ($_.displayName -like $SingleName) { + if ($_.displayName -like ($SingleName -replace '\[', '`[' -replace '\]', '`]')) { $_.id } } } } - if (-not $resolvedGroupIds -or $resolvedGroupIds.Count -eq 0) { + # Only error when an include target was actually requested. Exclude-only + # assignments legitimately resolve to no include groups here. + $IncludeRequested = $GroupName -or ($GroupIds -and @($GroupIds).Count -gt 0) + if ((-not $resolvedGroupIds -or $resolvedGroupIds.Count -eq 0) -and $IncludeRequested) { $ErrorMessage = "No groups found matching the specified name(s): $GroupName. Policy not assigned." Write-LogMessage -headers $Headers -API $APIName -message $ErrorMessage -sev 'Warning' -tenant $TenantFilter throw $ErrorMessage @@ -111,19 +129,26 @@ function Set-CIPPAssignedPolicy { } } } - if ($ExcludeGroup) { - Write-Host "We're supposed to exclude a custom group. The group is $ExcludeGroup" - $ExcludeGroupNames = $ExcludeGroup.Split(',').Trim() - $ExcludeGroupIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | - ForEach-Object { - foreach ($SingleName in $ExcludeGroupNames) { - if ($_.displayName -like $SingleName) { - $_.id + if ($ExcludeGroup -or ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0)) { + # Prefer explicit group IDs (from the picker); fall back to name resolution + # for templates/wizards/API callers that still send ExcludeGroup names. + if ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0) { + Write-Host "Excluding custom group(s) by id: $($ExcludeGroupIds -join ', ')" + $ResolvedExcludeIds = @($ExcludeGroupIds) + } else { + Write-Host "We're supposed to exclude a custom group. The group is $ExcludeGroup" + $ExcludeGroupNames = $ExcludeGroup.Split(',').Trim() + $ResolvedExcludeIds = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/groups?$select=id,displayName&$top=999' -tenantid $TenantFilter | + ForEach-Object { + foreach ($SingleName in $ExcludeGroupNames) { + if ($_.displayName -like ($SingleName -replace '\[', '`[' -replace '\]', '`]')) { + $_.id + } } } - } + } - foreach ($egid in $ExcludeGroupIds) { + foreach ($egid in $ResolvedExcludeIds) { $assignmentsList.Add( @{ target = @{ @@ -147,50 +172,51 @@ function Set-CIPPAssignedPolicy { } } - # If we're appending, we need to get existing assignments + # Determine which existing assignments (if any) must be preserved. + # append -> keep all existing (minus ones the new set overrides) + # replace + direction -> keep everything except the direction being edited + # (Custom Group action only; legacy replace overwrites everything) + $DirectionScoped = -not [string]::IsNullOrWhiteSpace($AssignmentDirection) + $EditedType = switch ($AssignmentDirection) { + 'exclude' { '#microsoft.graph.exclusionGroupAssignmentTarget' } + 'include' { '#microsoft.graph.groupAssignmentTarget' } + default { $null } + } + $PreserveExisting = ($AssignmentMode -eq 'append') -or ($AssignmentMode -eq 'replace' -and $DirectionScoped) + $ExistingAssignments = @() - if ($AssignmentMode -eq 'append') { + if ($PreserveExisting) { try { $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assignments" $ExistingAssignments = New-GraphGetRequest -uri $uri -tenantid $TenantFilter Write-Host "Found $($ExistingAssignments.Count) existing assignments for policy $PolicyId" } catch { - Write-Warning "Unable to retrieve existing assignments for $PolicyId. Proceeding with new assignments only. Error: $($_.Exception.Message)" - $ExistingAssignments = @() + $ErrorMessage = "Unable to retrieve existing assignments for $PolicyId. Existing assignments must be preserved for assignment mode '$AssignmentMode' and direction '$AssignmentDirection'. Aborting to avoid removing assignments. Error: $($_.Exception.Message)" + Write-Warning $ErrorMessage + throw $ErrorMessage } } - # Deduplicate current assignments so the new ones override existing ones + # Decide which existing assignments to carry forward. + $FinalAssignments = [System.Collections.Generic.List[object]]::new() if ($ExistingAssignments -and $ExistingAssignments.Count -gt 0) { - $ExistingAssignments = $ExistingAssignments | ForEach-Object { - $ExistingAssignment = $_ - switch ($ExistingAssignment.target.'@odata.type') { - '#microsoft.graph.groupAssignmentTarget' { - if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { - $ExistingAssignment - } - } - '#microsoft.graph.exclusionGroupAssignmentTarget' { - if ($ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId) { - $ExistingAssignment - } - } - default { - if ($ExistingAssignment.target.'@odata.type' -notin $assignmentsList.target.'@odata.type') { - $ExistingAssignment - } + foreach ($ExistingAssignment in $ExistingAssignments) { + $ExistingType = $ExistingAssignment.target.'@odata.type' + $Keep = if ($AssignmentMode -eq 'replace' -and $DirectionScoped) { + # Direction-scoped replace: drop every target of the edited type, keep the rest + # (the other direction plus All Users / All Devices broad targets). + $ExistingType -ne $EditedType + } else { + # Append: keep existing unless the new set overrides the same group/target. + switch ($ExistingType) { + '#microsoft.graph.groupAssignmentTarget' { $ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId } + '#microsoft.graph.exclusionGroupAssignmentTarget' { $ExistingAssignment.target.groupId -notin $assignmentsList.target.groupId } + default { $ExistingType -notin $assignmentsList.target.'@odata.type' } } } - } - } - - # Build final assignments list - $FinalAssignments = [System.Collections.Generic.List[object]]::new() - if ($AssignmentMode -eq 'append' -and $ExistingAssignments) { - foreach ($existing in $ExistingAssignments) { - $FinalAssignments.Add(@{ - target = $existing.target - }) + if ($Keep) { + $FinalAssignments.Add(@{ target = $ExistingAssignment.target }) + } } } @@ -209,7 +235,8 @@ function Set-CIPPAssignedPolicy { $assignmentsObject = @{ $AssignmentPropertyName = @($FinalAssignments) } $AssignJSON = ConvertTo-Json -InputObject $assignmentsObject -Depth 10 -Compress - if ($PSCmdlet.ShouldProcess($GroupName, "Assigning policy $PolicyId")) { + $ShouldProcess = $PSCmdlet.ShouldProcess($GroupName, "Assigning policy $PolicyId") + if ($ShouldProcess) { $uri = "https://graph.microsoft.com/beta/$($PlatformType)/$Type('$($PolicyId)')/assign" $null = New-GraphPOSTRequest -uri $uri -tenantid $TenantFilter -type POST -body $AssignJSON @@ -218,17 +245,34 @@ function Set-CIPPAssignedPolicy { ($GroupNames -join ', ') } elseif ($GroupName) { $GroupName + } elseif ($GroupIds -and @($GroupIds).Count -gt 0) { + @($GroupIds) -join ', ' + } else { + $null + } + + $ExcludedGroupsDisplay = if ($ExcludeGroupNames -and @($ExcludeGroupNames).Count -gt 0) { + ($ExcludeGroupNames -join ', ') + } elseif ($ExcludeGroupIds -and @($ExcludeGroupIds).Count -gt 0) { + ($ExcludeGroupIds -join ', ') } else { - 'specified groups' + $ExcludeGroup } - if ($ExcludeGroup) { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter - return "Successfully assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludeGroup' on Policy $PolicyId" + $ResultMessage = if ($ExcludedGroupsDisplay -and $AssignedGroupsDisplay) { + "Successfully assigned group '$AssignedGroupsDisplay' and excluded group '$ExcludedGroupsDisplay' on Policy $PolicyId" + } elseif ($ExcludedGroupsDisplay) { + "Successfully updated exclusions to group '$ExcludedGroupsDisplay' on Policy $PolicyId" + } elseif ($AssignmentDirection -eq 'exclude' -and $AssignmentMode -eq 'replace') { + "Successfully cleared exclusions on Policy $PolicyId" } else { - Write-LogMessage -headers $Headers -API $APIName -message "Assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" -Sev 'Info' -tenant $TenantFilter - return "Successfully assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" + "Successfully assigned group '$AssignedGroupsDisplay' on Policy $PolicyId" + } + + if ($ShouldProcess) { + Write-LogMessage -headers $Headers -API $APIName -message $ResultMessage -Sev 'Info' -tenant $TenantFilter } + return $ResultMessage } } catch { diff --git a/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 index cd6d7d7d8c185..e21035825f43a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1 @@ -18,6 +18,10 @@ function Set-CIPPAuthenticationPolicy { [Parameter()][ValidateRange(8, 20)]$QRCodePinLength = 8, [Parameter()][ValidateSet('default', 'enabled', 'disabled')]$EmailAllowExternalIdToUseEmailOtp, [Parameter()][string[]]$EmailExcludeGroupIds, + [Parameter()][bool]$FIDO2AttestationEnforced, + [Parameter()][bool]$FIDO2SelfServiceRegistration, + [Parameter()][bool]$VoiceIsOfficePhoneAllowed, + [Parameter()][bool]$SmsIsUsableForSignIn, $APIName = 'Set Authentication Policy', $Headers ) @@ -39,37 +43,52 @@ function Set-CIPPAuthenticationPolicy { # FIDO2 'FIDO2' { if ($State -eq 'enabled') { - $CurrentInfo.isAttestationEnforced = $true - $CurrentInfo.isSelfServiceRegistrationAllowed = $true + # Honor passed values; otherwise default to enforced/allowed to preserve previous enable behavior + $CurrentInfo.isAttestationEnforced = if ($PSBoundParameters.ContainsKey('FIDO2AttestationEnforced')) { $FIDO2AttestationEnforced } else { $true } + $CurrentInfo.isSelfServiceRegistrationAllowed = if ($PSBoundParameters.ContainsKey('FIDO2SelfServiceRegistration')) { $FIDO2SelfServiceRegistration } else { $true } + $OptionalLogMessage = "with attestation enforced set to $($CurrentInfo.isAttestationEnforced) and self-service registration set to $($CurrentInfo.isSelfServiceRegistrationAllowed)" } } # Microsoft Authenticator 'MicrosoftAuthenticator' { if ($State -eq 'enabled') { + $AuthChanges = [System.Collections.Generic.List[string]]::new() # Set MS authenticator OTP state if parameter is passed in if ($null -ne $MicrosoftAuthenticatorSoftwareOathEnabled) { $CurrentInfo.isSoftwareOathEnabled = $MicrosoftAuthenticatorSoftwareOathEnabled - $OptionalLogMessage = "and MS Authenticator software OTP to $MicrosoftAuthenticatorSoftwareOathEnabled" + $AuthChanges.Add("software OTP set to $MicrosoftAuthenticatorSoftwareOathEnabled") } # Feature settings if ($MicrosoftAuthenticatorDisplayAppInfo) { $CurrentInfo.featureSettings.displayAppInformationRequiredState.state = $MicrosoftAuthenticatorDisplayAppInfo + $AuthChanges.Add("display app information set to $MicrosoftAuthenticatorDisplayAppInfo") } if ($MicrosoftAuthenticatorDisplayLocation) { $CurrentInfo.featureSettings.displayLocationInformationRequiredState.state = $MicrosoftAuthenticatorDisplayLocation + $AuthChanges.Add("display location set to $MicrosoftAuthenticatorDisplayLocation") } if ($MicrosoftAuthenticatorCompanionApp) { $CurrentInfo.featureSettings.companionAppAllowedState.state = $MicrosoftAuthenticatorCompanionApp + $AuthChanges.Add("companion app set to $MicrosoftAuthenticatorCompanionApp") } # numberMatchingRequiredState is permanently enabled by Microsoft and can no longer be toggled $CurrentInfo.featureSettings.PSObject.Properties.Remove('numberMatchingRequiredState') + if ($AuthChanges.Count -gt 0) { + $OptionalLogMessage = "with $($AuthChanges -join ', ')" + } } } # SMS 'SMS' { - # No special configuration needed + # SMS sign-in is set per include-target (smsAuthenticationMethodTarget.isUsableForSignIn) + if ($State -eq 'enabled' -and $PSBoundParameters.ContainsKey('SmsIsUsableForSignIn')) { + foreach ($Target in $CurrentInfo.includeTargets) { + $Target | Add-Member -NotePropertyName 'isUsableForSignIn' -NotePropertyValue $SmsIsUsableForSignIn -Force + } + $OptionalLogMessage = "with SMS sign-in set to $SmsIsUsableForSignIn" + } } # Temporary Access Pass @@ -80,7 +99,7 @@ function Set-CIPPAuthenticationPolicy { $CurrentInfo.maximumLifetimeInMinutes = $TAPMaximumLifetime $CurrentInfo.defaultLifetimeInMinutes = $TAPDefaultLifeTime $CurrentInfo.defaultLength = $TAPDefaultLength - $OptionalLogMessage = "with TAP isUsableOnce set to $TAPisUsableOnce" + $OptionalLogMessage = "with TAP isUsableOnce set to $TAPisUsableOnce, minimum lifetime $TAPMinimumLifetime min, maximum lifetime $TAPMaximumLifetime min, default lifetime $TAPDefaultLifeTime min, and default length $TAPDefaultLength" } } @@ -96,7 +115,10 @@ function Set-CIPPAuthenticationPolicy { # Voice call 'Voice' { - # No special configuration needed + if ($State -eq 'enabled' -and $PSBoundParameters.ContainsKey('VoiceIsOfficePhoneAllowed')) { + $CurrentInfo.isOfficePhoneAllowed = $VoiceIsOfficePhoneAllowed + $OptionalLogMessage = "with isOfficePhoneAllowed set to $VoiceIsOfficePhoneAllowed" + } } # Email OTP @@ -106,7 +128,8 @@ function Set-CIPPAuthenticationPolicy { $CurrentInfo.allowExternalIdToUseEmailOtp = $EmailAllowExternalIdToUseEmailOtp $OptionalLogMessage = "with allowExternalIdToUseEmailOtp set to $EmailAllowExternalIdToUseEmailOtp" } - if ($EmailExcludeGroupIds) { + # Present (even empty) means the caller is setting the exclude list; an empty array clears it + if ($PSBoundParameters.ContainsKey('EmailExcludeGroupIds')) { $CurrentInfo.excludeTargets = @( foreach ($id in $EmailExcludeGroupIds) { [pscustomobject]@{ @@ -115,7 +138,11 @@ function Set-CIPPAuthenticationPolicy { } } ) - $OptionalLogMessage += " and excluded groups set to $($EmailExcludeGroupIds -join ', ')" + if ($EmailExcludeGroupIds) { + $OptionalLogMessage += " and excluded groups set to $($EmailExcludeGroupIds -join ', ')" + } else { + $OptionalLogMessage += ' and excluded groups cleared' + } } } } @@ -130,6 +157,7 @@ function Set-CIPPAuthenticationPolicy { if ($State -eq 'enabled') { $CurrentInfo.standardQRCodeLifetimeInDays = $QRCodeLifetimeInDays $CurrentInfo.pinLength = $QRCodePinLength + $OptionalLogMessage = "with QR code lifetime $QRCodeLifetimeInDays days and PIN length $QRCodePinLength" } } default { diff --git a/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 b/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 index a085bf8c7bcbb..17c219e301b65 100644 --- a/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPCPVConsent.ps1 @@ -21,23 +21,13 @@ function Set-CIPPCPVConsent { return @('Application is already consented to this tenant') } - # Skip the Partner Center POST if consent was applied recently and we're not resetting - if (-not $ResetSP) { - $CpvTable = Get-CIPPTable -TableName cpvtenants - $ExistingRow = Get-CIPPAzDataTableEntity @CpvTable -Filter "PartitionKey eq 'Tenant' and RowKey eq '$TenantFilter'" - if ($ExistingRow -and $ExistingRow.applicationId -eq $env:ApplicationID -and $ExistingRow.LastApply) { - $UnixNow = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds - if (($UnixNow - [int64]$ExistingRow.LastApply) -lt 86400) { - return @("CPV consent for $TenantName is current, skipping re-consent") - } - } - } - if ($ResetSP) { try { if ($PSCmdlet.ShouldProcess($env:ApplicationID, "Delete Service Principal from $TenantName")) { $null = New-GraphPostRequest -Type DELETE -noauthcheck $true -uri "https://api.partnercenter.microsoft.com/v1/customers/$($TenantFilter)/applicationconsents/$($env:ApplicationID)" -scope 'https://api.partnercenter.microsoft.com/.default' -tenantid $env:TenantID } + # The SP is gone, so any cached token for this tenant is now invalid. + $null = Clear-CippTokenCache -TenantFilter $TenantFilter $Results.add("Deleted Service Principal from $TenantName") } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -73,6 +63,9 @@ function Set-CIPPCPVConsent { } Add-CIPPAzDataTableEntity @Table -Entity $GraphRequest -Force } + # Consent just changed; drop cached tokens so the next call picks up the new scopes + # instead of reusing one issued before this grant. + $null = Clear-CippTokenCache -TenantFilter $TenantFilter $Results.add("Successfully added CPV Application to tenant $($TenantName)") | Out-Null Write-LogMessage -Headers $User -API $APINAME -message "Added our Service Principal to $($TenantName)" -Sev 'Info' -tenant $Tenant.defaultDomainName -tenantId $TenantFilter } catch { diff --git a/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 index 770b24be80035..febd2141311ac 100644 --- a/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1 @@ -19,6 +19,13 @@ function Set-CIPPDefaultAPDeploymentProfile { $APIName = 'Add Default Autopilot Deployment Profile' ) + # Checked before the try so the clean message is thrown as-is rather than wrapped by the catch below. + $NameCheck = Test-CIPPAutopilotProfileName -DisplayName $DisplayName + if (-not $NameCheck.IsValid) { + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $NameCheck.Message -Sev 'Error' + throw $NameCheck.Message + } + try { # Map language selection to Graph API locale values: # 'user-select' -> empty string (lets user choose during OOBE) diff --git a/Modules/CIPPCore/Public/Set-CIPPDlpCompliancePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPDlpCompliancePolicy.ps1 index e963f40db0e0a..26763e442dbff 100644 --- a/Modules/CIPPCore/Public/Set-CIPPDlpCompliancePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPDlpCompliancePolicy.ps1 @@ -90,6 +90,9 @@ function Set-CIPPDlpCompliancePolicy { foreach ($Rule in $RuleList) { $RuleIndex++ $RuleHash = Format-CIPPCompliancePolicyParams -Source $Rule -AllowedFields $RuleAllowedFields + # Advanced-mode rules send only the AdvancedRule JSON blob, simple-mode rules only the flat + # condition params - New-/Set-DlpComplianceRule reject a mix (see Resolve-CIPPDlpAdvancedRule). + $RuleHash = Resolve-CIPPDlpAdvancedRule -Source $Rule -RuleParams $RuleHash foreach ($SitField in @('ContentContainsSensitiveInformation', 'ExceptIfContentContainsSensitiveInformation')) { if ($RuleHash.ContainsKey($SitField)) { $RuleHash[$SitField] = @(ConvertTo-CIPPSensitiveInformationType -SensitiveInformation $RuleHash[$SitField]) diff --git a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 index 49c9e061dbf59..4244d18ba1437 100644 --- a/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPIntunePolicy.ps1 @@ -16,7 +16,7 @@ function Set-CIPPIntunePolicy { [int]$LevenshteinDistance = 0 ) - $RawJSON = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $RawJSON + $RawJSON = Get-CIPPTextReplacement -TenantFilter $TenantFilter -Text $RawJSON -EscapeForJson if ($LevenshteinDistance -gt 5) { Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "LevenshteinDistance is set to $LevenshteinDistance. Values above 5 can match unrelated policies; use with caution." -Sev Warning @@ -27,6 +27,9 @@ function Set-CIPPIntunePolicy { 'AppProtection' { $PlatformType = 'deviceAppManagement' $TemplateType = ($RawJSON | ConvertFrom-Json).'@odata.type' -replace '#microsoft.graph.', '' + if ([string]::IsNullOrWhiteSpace($TemplateType)) { + throw "App Protection template '$DisplayName' does not contain @odata.type, so the policy type cannot be determined. Recreate the template or re-run the template sync to include @odata.type." + } $PolicyFile = $RawJSON | ConvertFrom-Json $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force @@ -79,12 +82,14 @@ function Set-CIPPIntunePolicy { $PlatformType = 'deviceManagement' $TemplateTypeURL = 'deviceCompliancePolicies' $CheckExististing = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter - $JSON = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, 'scheduledActionsForRule@odata.context', '@odata.context' - $JSON.scheduledActionsForRule = @($JSON.scheduledActionsForRule | Select-Object * -ExcludeProperty 'scheduledActionConfigurations@odata.context') + $PolicyFile = $RawJSON | ConvertFrom-Json | Select-Object * -ExcludeProperty id, createdDateTime, lastModifiedDateTime, version, 'scheduledActionsForRule@odata.context', '@odata.context' + $PolicyFile.scheduledActionsForRule = @($PolicyFile.scheduledActionsForRule | Select-Object * -ExcludeProperty 'scheduledActionConfigurations@odata.context') + $Null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'description' -Value $Description -Force + $null = $PolicyFile | Add-Member -MemberType NoteProperty -Name 'displayName' -Value $DisplayName -Force $ComplianceODataType = ($RawJSON | ConvertFrom-Json).'@odata.type' $FuzzyResult = Find-CIPPFuzzyPolicyMatch -DisplayName $DisplayName -ExistingPolicies $CheckExististing -MaxDistance $LevenshteinDistance -ODataType $ComplianceODataType if ($FuzzyResult) { - $RawJSON = ConvertTo-Json -InputObject ($JSON | Select-Object * -ExcludeProperty 'scheduledActionsForRule') -Depth 20 -Compress + $RawJSON = ConvertTo-Json -InputObject ($PolicyFile | Select-Object * -ExcludeProperty 'scheduledActionsForRule') -Depth 20 -Compress $PostType = 'edited' $ExistingID = $FuzzyResult.Policy if ($FuzzyResult.MatchType -eq 'fuzzy') { @@ -94,7 +99,7 @@ function Set-CIPPIntunePolicy { Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Updated policy $($DisplayName) to template defaults" -Sev Info $CreateRequest = $FuzzyResult.Policy } else { - $RawJSON = ConvertTo-Json -InputObject $JSON -Depth 20 -Compress + $RawJSON = ConvertTo-Json -InputObject $PolicyFile -Depth 20 -Compress $PostType = 'added' $CreateRequest = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/$PlatformType/$TemplateTypeURL" -tenantid $TenantFilter -type POST -body $RawJSON Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added policy $($DisplayName) via template" -Sev Info diff --git a/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 index b16d867d6f411..54a1a075c040f 100644 --- a/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPMailboxAccess.ps1 @@ -7,7 +7,7 @@ function Set-CIPPMailboxAccess { $TenantFilter, $APIName = 'Manage Shared Mailbox Access', $Headers, - [array]$AccessRights + [array]$AccessRights # Retained for caller compatibility; this helper grants FullAccess ) # Ensure AccessUser is always an array @@ -22,20 +22,12 @@ function Set-CIPPMailboxAccess { $Results = [system.collections.generic.list[string]]::new() - # Process each access user + # Delegate each grant to Set-CIPPMailboxPermission so the permission-level -> EXO cmdlet mapping, + # logging, cache sync, and error handling all live in one place. This helper grants FullAccess. foreach ($User in $AccessUser) { - try { - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $User; AutoMapping = $Automap; accessRights = $AccessRights; InheritanceType = 'all' } -Anchor $userid - - $Message = "Successfully added $($User) to $($userid) Shared Mailbox $($Automap ? 'with' : 'without') AutoMapping, with the following permissions: $AccessRights" - Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Info' -tenant $TenantFilter - $Results.Add($Message) - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Message = "Failed to add mailbox permissions for $($User) on $($userid). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -message $Message -Sev 'Error' -tenant $TenantFilter -LogData $ErrorMessage - $Results.Add($Message) - } + $Results.Add( + (Set-CIPPMailboxPermission -UserId $userid -AccessUser $User -PermissionLevel 'FullAccess' -Action 'Add' -AutoMap $Automap -TenantFilter $TenantFilter -APIName $APIName -Headers $Headers) + ) } return $Results diff --git a/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 b/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 index 3679e4a89c060..89e767d32a44a 100644 --- a/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPNotificationConfig.ps1 @@ -37,7 +37,7 @@ function Set-CIPPNotificationConfig { } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force | Out-Null } else { - $KeyVaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $KeyVaultName = Get-CippKeyVaultName Set-CippKeyVaultSecret -VaultName $KeyVaultName -Name $SecretName -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $SecretValue) | Out-Null } } diff --git a/Modules/CIPPCore/Public/Set-CIPPRegistrationCampaign.ps1 b/Modules/CIPPCore/Public/Set-CIPPRegistrationCampaign.ps1 new file mode 100644 index 0000000000000..52b7e0e29544f --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPRegistrationCampaign.ps1 @@ -0,0 +1,93 @@ +function Set-CIPPRegistrationCampaign { + <# + .SYNOPSIS + Updates the authentication methods registration campaign (nudge) for a tenant. + .DESCRIPTION + Single writer for the registration campaign, shared by the ExecRegistrationCampaign + endpoint and the NudgeMFA standard. Any parameter left as $null keeps the value + currently configured in the tenant, so callers can update settings independently. + .PARAMETER IncludeTargets + Array of @{ id; targetType } targets. $null keeps the current include targets. The + targeted authentication method is applied to every include target, and a campaign + always ends up with at least one include target (falls back to all_users). + .PARAMETER ExcludeTargets + Array of @{ id; targetType } targets. $null keeps the current exclusions, an empty + array clears them. + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)]$Tenant, + $State, + $TargetedAuthenticationMethod, + $SnoozeDurationInDays, + $EnforceRegistrationAfterAllowedSnoozes, + $IncludeTargets, + $ExcludeTargets, + $APIName = 'Set Registration Campaign', + $Headers + ) + + try { + $CurrentPolicy = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -tenantid $Tenant + $CurrentCampaign = $CurrentPolicy.registrationEnforcement.authenticationMethodsRegistrationCampaign + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Could not get the current registration campaign. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw "Could not get the current registration campaign. Error: $($ErrorMessage.NormalizedError)" + } + + $DesiredState = $State ?? $CurrentCampaign.state + $DesiredMethod = $TargetedAuthenticationMethod ?? (@($CurrentCampaign.includeTargets).targetedAuthenticationMethod | Select-Object -First 1) ?? 'microsoftAuthenticator' + $DesiredSnooze = if ($null -ne $SnoozeDurationInDays) { [int]$SnoozeDurationInDays } else { [int]($CurrentCampaign.snoozeDurationInDays ?? 1) } + $DesiredEnforce = if ($null -ne $EnforceRegistrationAfterAllowedSnoozes) { [bool]$EnforceRegistrationAfterAllowedSnoozes } else { [bool]$CurrentCampaign.enforceRegistrationAfterAllowedSnoozes } + + if ($DesiredState -notin @('default', 'enabled', 'disabled')) { + throw "State must be one of 'default', 'enabled' or 'disabled'" + } + if ($DesiredMethod -notin @('microsoftAuthenticator', 'fido2')) { + throw "TargetedAuthenticationMethod must be 'microsoftAuthenticator' or 'fido2'" + } + if ($DesiredSnooze -lt 0 -or $DesiredSnooze -gt 14) { + throw 'SnoozeDurationInDays must be between 0 and 14' + } + + $DesiredIncludeTargets = if ($null -ne $IncludeTargets) { + @($IncludeTargets | ForEach-Object { @{ id = "$($_.id)"; targetType = "$($_.targetType)"; targetedAuthenticationMethod = $DesiredMethod } }) + } else { + @($CurrentCampaign.includeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType; targetedAuthenticationMethod = $DesiredMethod } }) + } + if ($DesiredIncludeTargets.Count -eq 0) { + $DesiredIncludeTargets = @(@{ id = 'all_users'; targetType = 'group'; targetedAuthenticationMethod = $DesiredMethod }) + } + + $DesiredExcludeTargets = if ($null -ne $ExcludeTargets) { + @($ExcludeTargets | ForEach-Object { @{ id = "$($_.id)"; targetType = "$($_.targetType)" } }) + } else { + @($CurrentCampaign.excludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) + } + + $Body = @{ + registrationEnforcement = @{ + authenticationMethodsRegistrationCampaign = @{ + state = $DesiredState + snoozeDurationInDays = $DesiredSnooze + enforceRegistrationAfterAllowedSnoozes = $DesiredEnforce + includeTargets = @($DesiredIncludeTargets) + excludeTargets = @($DesiredExcludeTargets) + } + } + } | ConvertTo-Json -Depth 10 -Compress + + try { + $Result = "Set the registration campaign state to $DesiredState targeting $DesiredMethod with a snooze duration of $DesiredSnooze day(s), $($DesiredIncludeTargets.Count) include target(s) and $($DesiredExcludeTargets.Count) exclude target(s)" + if ($PSCmdlet.ShouldProcess('Registration campaign', "Set state to $DesiredState")) { + $null = New-GraphPostRequest -tenantid $Tenant -Uri 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' -Type PATCH -Body $Body -ContentType 'application/json' -AsApp $false + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message $Result -sev Info + } + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $Tenant -message "Failed to update the registration campaign. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + throw "Failed to update the registration campaign. Error: $($ErrorMessage.NormalizedError)" + } +} diff --git a/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 index ddbbb9b27f18c..3741209efd717 100644 --- a/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPResetPassword.ps1 @@ -11,15 +11,23 @@ function Set-CIPPResetPassword { try { $password = New-passwordString - $passwordProfile = @{ - 'passwordProfile' = @{ - 'forceChangePasswordNextSignIn' = $forceChangePasswordNextSignIn - 'password' = $password - } - } | ConvertTo-Json -Compress $UserDetails = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)?`$select=onPremisesSyncEnabled" -noPagination $true -tenantid $TenantFilter -verbose - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose + $IsSynced = $UserDetails.onPremisesSyncEnabled -eq $true + + if ($IsSynced) { + $ResetBody = @{ 'newPassword' = $password } | ConvertTo-Json -Compress + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserID)/authentication/methods/28c10230-6103-485e-b985-444c60001490/resetPassword" -tenantid $TenantFilter -type POST -body $ResetBody -verbose + } else { + $passwordProfile = @{ + 'passwordProfile' = @{ + 'forceChangePasswordNextSignIn' = $forceChangePasswordNextSignIn + 'password' = $password + } + } | ConvertTo-Json -Compress + + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$($UserID)" -tenantid $TenantFilter -type PATCH -body $passwordProfile -verbose + } #PWPush $PasswordLink = $null @@ -32,15 +40,17 @@ function Set-CIPPResetPassword { catch { Write-LogMessage -headers $Headers -API $APIName -message "Failed to create PwPush link, using plain password. Error: $($_.Exception.Message)" -sev 'Warning' -tenant $TenantFilter } - Write-LogMessage -headers $Headers -API $APIName -message "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn" -Sev 'Info' -tenant $TenantFilter + if ($IsSynced) { + Write-LogMessage -headers $Headers -API $APIName -message "Submitted a password writeback reset for $DisplayName, $($UserID). This user is directory synced, so the reset was sent via password writeback and the user must change password at next logon regardless of the requested setting ($forceChangePasswordNextSignIn)." -Sev 'Info' -tenant $TenantFilter - if ($UserDetails.onPremisesSyncEnabled -eq $true) { return [pscustomobject]@{ - resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password. WARNING: This user is AD synced. Please confirm passthrough or writeback is enabled." + resultText = "Password reset accepted for $DisplayName, $($UserID). The new password is $password. This user is directory synced, so the reset was submitted via password writeback and is applied asynchronously - it is not confirmed yet, and will fail if writeback is not enabled or if the on-premises password policy rejects the password. This user must change their password at next logon; that is enforced by this method and cannot be turned off." copyField = $password - state = 'warning' + state = 'success' } } else { + Write-LogMessage -headers $Headers -API $APIName -message "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn" -Sev 'Info' -tenant $TenantFilter + return [pscustomobject]@{ resultText = "Successfully reset the password for $DisplayName, $($UserID). User must change password is set to $forceChangePasswordNextSignIn. The new password is $password" copyField = $password diff --git a/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 b/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 index baf65914962df..f039e6cc8cbb1 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSAMAdminRoles.ps1 @@ -83,23 +83,22 @@ function Set-CIPPSAMAdminRoles { $ActionLogs.Add('Added Service Principal to Compliance Center') } catch { $SpError = $_.Exception.Message - if ($SpError -match 'already exist') { - $ActionLogs.Add('Service Principal already added to Compliance Center') - } else { - $ActionLogs.Add("Failed to add Service Principal to Compliance Center: $SpError") - $HasFailures = $true + switch ($SpError) { + { $_ -match 'already exist' } { $ActionLogs.Add('Service Principal already added to Compliance Center') } + { $_ -match 'New-ServicePrincipal is not present' } { $ActionLogs.Add('Tenant does not have a license to use Compliance Center features. Skipping.') } + default { $ActionLogs.Add("Failed to add Service Principal to Compliance Center: $SpError"); $HasFailures = $true } } + } try { $null = New-ExoRequest -cmdlet 'New-ServicePrincipal' -cmdParams @{AppId = $env:ApplicationID; ObjectId = $id; DisplayName = 'CIPP-SAM' } -tenantid $TenantFilter -useSystemMailbox $true -AsApp $ActionLogs.Add('Added Service Principal to Exchange Online') } catch { $SpError = $_.Exception.Message - if ($SpError -match 'already exist') { - $ActionLogs.Add('Service Principal already added to Exchange Online') - } else { - $ActionLogs.Add("Failed to add Service Principal to Exchange Online: $SpError") - $HasFailures = $true + switch ($SpError) { + { $_ -match 'already exist' } { $ActionLogs.Add('Service Principal already added to Compliance Center') } + { $_ -match 'Response status code does not indicate success' } { $ActionLogs.Add('Could not connect to Exchange, we received an access denied. This is expected if you do not have an exchange license.'); $HasFailures = $true } + default { $ActionLogs.Add("Failed to add Service Principal to Compliance Center: $SpError"); $HasFailures = $true } } } diff --git a/Modules/CIPPCore/Public/Set-CIPPSAMCertificate.ps1 b/Modules/CIPPCore/Public/Set-CIPPSAMCertificate.ps1 new file mode 100644 index 0000000000000..1fc745e0ca115 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPSAMCertificate.ps1 @@ -0,0 +1,110 @@ +function Set-CIPPSAMCertificate { + <# + .SYNOPSIS + Stores the SAM certificate PFX in Key Vault (dual-mode) or the DevSecrets table + + .DESCRIPTION + Persists a base64 PFX. In production it first attempts the Key Vault certificates + import API; if the managed identity lacks certificate permissions (403, the case on + deployments created before certificate permissions were added to the templates) or the + name is already occupied by a plain secret (409), it falls back to storing the base64 + PFX as a regular Key Vault secret. Both modes are readable through the secrets endpoint + under the same name, so Get-CIPPSAMCertificate does not need to know which mode is active. + In dev mode (Azurite) the PFX is stored on the DevSecrets table row instead. + + .PARAMETER PfxBase64 + The certificate as a base64-encoded passwordless PFX. + + .PARAMETER Name + Storage name used for both the Key Vault certificate and the fallback secret. Defaults to SAMCertificate. + + .PARAMETER VaultName + Name of the Key Vault. If not provided, derives via Get-CippKeyVaultName. + + .EXAMPLE + Set-CIPPSAMCertificate -PfxBase64 $Cert.PfxBase64 + #> + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$PfxBase64, + + [Parameter(Mandatory = $false)] + [string]$Name = 'SAMCertificate', + + [Parameter(Mandatory = $false)] + [string]$VaultName + ) + + 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) { + throw 'DevSecrets table row not found. Cannot store SAM certificate in dev mode.' + } + $Secret | Add-Member -MemberType NoteProperty -Name $Name -Value $PfxBase64 -Force + Add-AzDataTableEntity @Table -Entity $Secret -Force + Update-CIPPSAMCertificateEnvCache -Name $Name -PfxBase64 $PfxBase64 + return @{ StorageMode = 'DevTable'; Name = $Name } + } + + if (-not $VaultName) { + $VaultName = Get-CippKeyVaultName + if (-not $VaultName) { + throw 'VaultName not provided and could not be derived (WEBSITE_SITE_NAME / WEBSITE_DEPLOYMENT_ID not set)' + } + } + + $Token = Get-CIPPAzIdentityToken -ResourceUrl 'https://vault.azure.net' + + # Attempt the certificates import API first. exportable must be true so the private + # key remains retrievable through the secrets endpoint. + $ImportBody = @{ + value = $PfxBase64 + policy = @{ + key_props = @{ + exportable = $true + kty = 'RSA' + key_size = 2048 + reuse_key = $false + } + secret_props = @{ + contentType = 'application/x-pkcs12' + } + } + } | ConvertTo-Json -Compress -Depth 10 + + $ImportUri = "https://$VaultName.vault.azure.net/certificates/$Name/import?api-version=7.4" + $StatusCode = $null + $ImportResponse = Invoke-CIPPRestMethod -Uri $ImportUri -Method POST -Body $ImportBody -ContentType 'application/json' -Headers @{ + Authorization = "Bearer $Token" + } -SkipHttpErrorCheck -StatusCodeVariable StatusCode + + if ($StatusCode -ge 200 -and $StatusCode -lt 300) { + Write-LogMessage -API 'SAMCertificate' -message "Stored SAM certificate '$Name' as a Key Vault certificate in vault '$VaultName'" -sev 'Info' + Update-CIPPSAMCertificateEnvCache -Name $Name -PfxBase64 $PfxBase64 + return @{ StorageMode = 'Certificate'; Name = $Name; VaultName = $VaultName } + } + + if ($StatusCode -eq 403 -or $StatusCode -eq 409) { + # 403: access policy has no certificate permissions (pre-existing deployments). + # 409: the name is already owned by a plain secret from prior secret-mode operation. + # Either way, fall back to storing the base64 PFX as a regular secret. + Write-Information "Key Vault certificate import returned $StatusCode, falling back to secret storage for '$Name'" + try { + $null = Set-CippKeyVaultSecret -VaultName $VaultName -Name $Name -SecretValue (ConvertTo-SecureString -String $PfxBase64 -AsPlainText -Force) + } catch { + # A 409 on the secret PUT means the name is backed by a Key Vault certificate but we can + # no longer import one - certificate permissions were revoked after operating in + # certificate mode. Manual intervention required; the previous certificate remains valid. + Write-LogMessage -API 'SAMCertificate' -message "Failed to store SAM certificate '$Name' in vault '$VaultName'. If certificate permissions were removed from the Key Vault access policy after the certificate was stored via the certificates API, restore them (get, list, import, update, delete). See Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + throw + } + Update-CIPPSAMCertificateEnvCache -Name $Name -PfxBase64 $PfxBase64 + return @{ StorageMode = 'Secret'; Name = $Name; VaultName = $VaultName } + } + + $ErrorDetail = if ($ImportResponse.error.message) { $ImportResponse.error.message } else { $ImportResponse | ConvertTo-Json -Compress -Depth 5 } + throw "Key Vault certificate import for '$Name' in vault '$VaultName' failed with status $StatusCode : $ErrorDetail" +} diff --git a/Modules/CIPPCore/Public/Set-CIPPSPOSite.ps1 b/Modules/CIPPCore/Public/Set-CIPPSPOSite.ps1 index 4af8e4f6b55a2..df35ab4fd187e 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSPOSite.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSPOSite.ps1 @@ -43,13 +43,18 @@ function Set-CIPPSPOSite { $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter $AdminUrl = $SharePointInfo.AdminUrl - $AllowedTypes = @('Boolean', 'String', 'Int32') + $AllowedTypes = @('Boolean', 'String', 'Int32', 'Int64') + # Properties that are CSOM enums; their (numeric) value must be sent as Type="Enum". + $EnumProperties = @('SharingCapability', 'DefaultSharingLinkType', 'DefaultLinkPermission', 'SharingDomainRestrictionMode', 'ConditionalAccessPolicy') $SetProperty = [System.Collections.Generic.List[string]]::new() $x = 106 foreach ($Property in $Properties.Keys) { $PropertyType = $Properties[$Property].GetType().Name - if ($PropertyType -in $AllowedTypes) { - $PropertyToSet = if ($PropertyType -eq 'Boolean') { $Properties[$Property].ToString().ToLower() } else { $Properties[$Property] } + if ($Property -in $EnumProperties) { + $SetProperty.Add("$([int]$Properties[$Property])") + $x++ + } elseif ($PropertyType -in $AllowedTypes) { + $PropertyToSet = if ($PropertyType -eq 'Boolean') { $Properties[$Property].ToString().ToLower() } else { [System.Security.SecurityElement]::Escape([string]$Properties[$Property]) } $SetProperty.Add("$PropertyToSet") $x++ } diff --git a/Modules/CIPPCore/Public/Set-CIPPSensitiveInfoType.ps1 b/Modules/CIPPCore/Public/Set-CIPPSensitiveInfoType.ps1 index 5a86bc1674567..6860bb48a8c15 100644 --- a/Modules/CIPPCore/Public/Set-CIPPSensitiveInfoType.ps1 +++ b/Modules/CIPPCore/Public/Set-CIPPSensitiveInfoType.ps1 @@ -4,8 +4,14 @@ function Set-CIPPSensitiveInfoType { Deploy or update a single custom Sensitive Information Type in a tenant from a template object. .DESCRIPTION Single source of truth for SIT deployment, shared by the HTTP deploy endpoint and the standard. - Supports simple mode (Pattern → backend synthesizes rule pack XML) and advanced mode (caller- - supplied FileDataBase64 rule pack). Microsoft built-in SITs are skipped. + Imports a custom SIT *rule package* (regex/keyword based, Type=Entity) via + New-/Set-DlpSensitiveInformationTypeRulePackage. Supports simple mode (Pattern -> backend + synthesizes the rule pack XML) and advanced mode (caller-supplied FileDataBase64 rule pack, + e.g. captured from an existing SIT). Microsoft built-in SITs are skipped. + + IMPORTANT: this uses the rule-*package* cmdlets, NOT New-/Set-DlpSensitiveInformationType - the + latter is a document-fingerprint primitive that stores -FileData as a fingerprint and discards + the regex. The rule pack XML must use the 2011 'mce' schema and be UTF-16 encoded. .FUNCTIONALITY Internal #> @@ -19,53 +25,63 @@ function Set-CIPPSensitiveInfoType { $Name = $Template.Name - # Build FileData byte array from either advanced (FileDataBase64) or simple (Pattern) mode - $FileDataBytes = $null + # Resolve the rule pack XML from advanced (FileDataBase64) or simple (Pattern) mode. + $XmlString = $null if ($Template.FileDataBase64) { try { - $FileDataBytes = [System.Convert]::FromBase64String($Template.FileDataBase64) + $RawBytes = [System.Convert]::FromBase64String($Template.FileDataBase64) } catch { - $msg = "SIT '$Name' has invalid FileDataBase64 ($($_.Exception.Message)) — skipping in $TenantFilter." + $msg = "SIT '$Name' has invalid FileDataBase64 ($($_.Exception.Message)) - skipping in $TenantFilter." Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $msg -sev Error return $msg } + # Captured/synthesized packs are UTF-16; fall back to UTF-8 if that doesn't look like the XML. + $XmlString = [System.Text.Encoding]::Unicode.GetString($RawBytes) + if ($XmlString -notmatch ' + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $true)] + [string]$SiteUrl, + + [string]$ListId, + + [Parameter(Mandatory = $true)] + [ValidateSet('read', 'contribute', 'edit', 'design', 'fullControl')] + [string]$PermissionLevel, + + [Parameter(Mandatory = $true)] + [string[]]$GroupNames, + + [switch]$CreateMissingGroups, + + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + $APIName = 'Set SharePoint Permission', + $Headers + ) + + # Standard SharePoint role definition IDs. + $RoleDefinitionIds = @{ + 'read' = 1073741826 + 'contribute' = 1073741827 + 'design' = 1073741828 + 'fullControl' = 1073741829 + 'edit' = 1073741830 + } + $RoleDefId = $RoleDefinitionIds[$PermissionLevel] + + # Resolve group display names against the target tenant, CA-template style. + $AllGroups = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/groups?$select=id,displayName,groupTypes&$top=999' -tenantid $TenantFilter -AsApp $true + + $Principals = [System.Collections.Generic.List[object]]::new() + $NotFound = [System.Collections.Generic.List[string]]::new() + foreach ($GroupName in $GroupNames) { + if ([string]::IsNullOrWhiteSpace($GroupName)) { continue } + $MatchedGroup = @($AllGroups | Where-Object -Property displayName -EQ $GroupName) | Select-Object -First 1 + $NewlyCreated = $false + if (-not $MatchedGroup -and $CreateMissingGroups.IsPresent) { + # Create a security group carrying the requested display name. + try { + $MailNickname = ($GroupName -replace '[^A-Za-z0-9]', '').ToLower() + if (-not $MailNickname) { $MailNickname = "cippgroup$((New-Guid).Guid.Substring(0,8))" } + $GroupBody = ConvertTo-Json -Compress -InputObject @{ + displayName = $GroupName + mailEnabled = $false + mailNickname = $MailNickname + securityEnabled = $true + description = 'Created by CIPP during SharePoint template deployment' + } + $MatchedGroup = New-GraphPostRequest -AsApp $true -uri 'https://graph.microsoft.com/v1.0/groups' -tenantid $TenantFilter -type POST -body $GroupBody + $NewlyCreated = $true + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Created security group $GroupName because it did not exist." -sev Info + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to create security group $GroupName. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $NotFound.Add("$GroupName (creation failed)") + continue + } + } + if (-not $MatchedGroup) { + $NotFound.Add($GroupName) + continue + } + # Microsoft 365 groups use the federated directory claim; security groups the tenant claim. + $LogonName = if (@($MatchedGroup.groupTypes) -contains 'Unified') { + "c:0o.c|federateddirectoryclaimprovider|$($MatchedGroup.id)" + } else { + "c:0t.c|tenant|$($MatchedGroup.id)" + } + $Principals.Add([PSCustomObject]@{ + LogonName = $LogonName + Label = $GroupName + NewlyCreated = $NewlyCreated + }) + } + + if ($Principals.Count -eq 0) { + throw "None of the groups ($($GroupNames -join ', ')) could be found in $TenantFilter by display name." + } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + $TargetLabel = if ($ListId) { "library $ListId" } else { 'site root' } + + if (-not $PSCmdlet.ShouldProcess($SiteUrl, "Grant $PermissionLevel on $TargetLabel")) { return } + + # Libraries inherit from the web by default: break inheritance (copying assignments) first. + if ($ListId) { + $ListInfo = New-GraphGetRequest -uri "$BaseUri/web/lists(guid'$ListId')?`$select=HasUniqueRoleAssignments" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + if (-not $ListInfo.HasUniqueRoleAssignments) { + $null = New-GraphPostRequest -uri "$BaseUri/web/lists(guid'$ListId')/breakroleinheritance(copyRoleAssignments=true,clearSubscopes=false)" -tenantid $TenantFilter -scope $Scope -type POST -body '{}' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } + $AssignmentUri = "$BaseUri/web/lists(guid'$ListId')/roleassignments" + } else { + $AssignmentUri = "$BaseUri/web/roleassignments" + } + + $Granted = [System.Collections.Generic.List[string]]::new() + $Failed = [System.Collections.Generic.List[string]]::new() + foreach ($Principal in $Principals) { + try { + $EnsureBody = ConvertTo-Json -Compress -InputObject @{ logonName = $Principal.LogonName } + + # Newly created groups take a while to replicate from Entra to SharePoint, so + # ensureuser initially fails with 'could not be found'. Retry with backoff: + # generously for groups created moments ago, briefly for pre-existing ones. + $MaxAttempts = $Principal.NewlyCreated ? 8 : 2 + $EnsuredUser = $null + for ($Attempt = 1; $Attempt -le $MaxAttempts; $Attempt++) { + try { + $EnsuredUser = New-GraphPostRequest -uri "$BaseUri/web/ensureuser" -tenantid $TenantFilter -scope $Scope -type POST -body $EnsureBody -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + break + } catch { + $IsNotFound = $_.Exception.Message -match 'could not be found|-2146232832' + if ($IsNotFound -and $Attempt -lt $MaxAttempts) { + Write-Information "ensureuser for $($Principal.Label) not resolvable yet (attempt $Attempt/$MaxAttempts), waiting for directory replication..." + Start-Sleep -Seconds 15 + } else { + throw + } + } + } + if (-not $EnsuredUser.Id) { + throw 'Could not resolve principal on the site.' + } + $null = New-GraphPostRequest -uri "$AssignmentUri/addroleassignment(principalid=$($EnsuredUser.Id),roledefid=$RoleDefId)" -tenantid $TenantFilter -scope $Scope -type POST -body '{}' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + $Granted.Add($Principal.Label) + } catch { + # Principals here are always groups, resolved from display names above. + $Failed.Add("$($Principal.Label) - $(Get-CIPPSharePointErrorMessage -ErrorMessage $_.Exception.Message -IsGroup)") + } + } + + $Messages = [System.Collections.Generic.List[string]]::new() + if ($Granted.Count -gt 0) { + $Messages.Add("Granted $PermissionLevel on $TargetLabel to $($Granted -join ', ').") + } + if ($Failed.Count -gt 0) { + # The explanations are already sentences, so trim before adding the closing period. + $Messages.Add("Failed for $(($Failed -join '; ').TrimEnd('.')).") + } + if ($NotFound.Count -gt 0) { + $Messages.Add("Not found by display name: $($NotFound -join ', ').") + } + $Result = $Messages -join ' ' + $Severity = if ($Granted.Count -gt 0) { 'Info' } else { 'Error' } + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "$SiteUrl : $Result" -sev $Severity + + if ($Granted.Count -eq 0) { + throw $Result + } + return $Result +} diff --git a/Modules/CIPPCore/Public/Set-CIPPUser.ps1 b/Modules/CIPPCore/Public/Set-CIPPUser.ps1 new file mode 100644 index 0000000000000..f3f317103eba0 --- /dev/null +++ b/Modules/CIPPCore/Public/Set-CIPPUser.ps1 @@ -0,0 +1,271 @@ +function Set-CIPPUser { + [CmdletBinding()] + param ( + $UserObj, + $APIName = 'Edit User', + $Headers + ) + + $Results = [System.Collections.Generic.List[object]]::new() + $licenses = ($UserObj.licenses).value + $Aliases = if ($UserObj.AddedAliases) { ($UserObj.AddedAliases) -split '\s' } + $AddToGroups = $UserObj.AddToGroups + $RemoveFromGroups = $UserObj.RemoveFromGroups + + $UseExchangeForGroup = { + param($AddedFields) + $Calculated = $AddedFields.calculatedGroupType + if ($Calculated) { + return $Calculated -in @('distributionList', 'security') + } + return $AddedFields.groupType -in @('Distribution List', 'Mail-Enabled Security', 'distributionList') + } + + + #Edit the user + try { + $UserPrincipalName = "$($UserObj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.primDomain.value)" + $normalizedOtherMails = @( + @($UserObj.otherMails) | ForEach-Object { + if ($null -ne $_) { + [string]$_ -split ',' + } + } | ForEach-Object { + $_.Trim() + } | Where-Object { + -not [string]::IsNullOrWhiteSpace($_) + } + ) + $BodyToship = [pscustomobject] @{ + 'givenName' = $UserObj.givenName + 'surname' = $UserObj.surname + 'displayName' = $UserObj.displayName + 'department' = $UserObj.department + 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname + 'userPrincipalName' = $UserPrincipalName + 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation + 'jobTitle' = $UserObj.jobTitle + 'mobilePhone' = $UserObj.mobilePhone + 'streetAddress' = $UserObj.streetAddress + 'city' = $UserObj.city + 'state' = $UserObj.state + 'postalCode' = $UserObj.postalCode + 'country' = $UserObj.country + 'companyName' = $UserObj.companyName + 'businessPhones' = $UserObj.businessPhones ? @($UserObj.businessPhones) : @() + 'otherMails' = $normalizedOtherMails + 'passwordProfile' = @{ + 'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass + } + } | ForEach-Object { + $NonEmptyProperties = $_.PSObject.Properties | + Where-Object { -not [string]::IsNullOrWhiteSpace($_.Value) } | + Select-Object -ExpandProperty Name + $_ | Select-Object -Property $NonEmptyProperties + } + # Explicit clears: the frontend lists the profile fields the user actively emptied. + # We re-add them as null (scalars) / empty array (collections) so Graph clears them, while + # untouched empty fields stay omitted. Whitelisted to safe attributes + $ClearableFields = @( + 'givenName', 'surname', 'department', 'jobTitle', 'mobilePhone', + 'streetAddress', 'city', 'state', 'postalCode', 'country', 'companyName', + 'businessPhones', 'otherMails' + ) + $ClearList = @($UserObj.clearProperties | Where-Object { -not [string]::IsNullOrWhiteSpace($_) }) + foreach ($Prop in $ClearList) { + if ($Prop -notin $ClearableFields) { continue } + # Pass @() literally; routing it through a variable unrolls it back to $null. + if ($Prop -in 'businessPhones', 'otherMails') { + $BodyToShip | Add-Member -NotePropertyName $Prop -NotePropertyValue @() -Force + } else { + $BodyToShip | Add-Member -NotePropertyName $Prop -NotePropertyValue $null -Force + } + } + if ($UserObj.defaultAttributes) { + $UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object { + if (-not [string]::IsNullOrWhiteSpace($UserObj.defaultAttributes.$($_.Name).value)) { + 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.' ) + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Edited user $($UserObj.DisplayName) with id $($UserObj.id)" -Sev Info + if ($UserObj.password) { + $passwordProfile = [pscustomobject]@{'passwordProfile' = @{ 'password' = $UserObj.password; 'forceChangePasswordNextSignIn' = [boolean]$UserObj.MustChangePass } } | ConvertTo-Json + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type PATCH -body $PasswordProfile -Verbose + $Results.Add("Success. The password has been set to $($UserObj.password)") + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Reset $($UserObj.DisplayName)'s Password" -Sev Info + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "User edit API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results.Add( "Failed to edit user. $($ErrorMessage.NormalizedError)") + } + + + #Reassign the licenses + try { + + if ($licenses -or $UserObj.removeLicenses) { + if ($UserObj.sherwebLicense.value) { + $null = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 + $Results.Add('Added Sherweb License, scheduling assignment') + $taskObject = [PSCustomObject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "Assign License: $UserPrincipalName" + Command = @{ + value = 'Set-CIPPUserLicense' + } + Parameters = [pscustomobject]@{ + UserId = $UserObj.id + APIName = 'Sherweb License Assignment' + AddLicenses = $licenses + UserPrincipalName = $UserPrincipalName + } + ScheduledTime = 0 #right now, which is in the next 15 minutes and should cover most cases. + PostExecution = @{ + Webhook = [bool]$UserObj.PostExecution.webhook + Email = [bool]$UserObj.PostExecution.email + PSA = [bool]$UserObj.PostExecution.psa + } + } + Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers + } else { + $CurrentLicenses = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter + #if the list of skuIds in $CurrentLicenses.assignedLicenses is EXACTLY the same as $licenses, we don't need to do anything, but the order in both can be different. + if (($CurrentLicenses.assignedLicenses.skuId -join ',') -eq ($licenses -join ',') -and $UserObj.removeLicenses -eq $false) { + Write-Host "$($CurrentLicenses.assignedLicenses.skuId -join ',') $(($licenses -join ','))" + $Results.Add( 'Success. User license is already correct.' ) + } else { + if ($UserObj.removeLicenses) { + $licResults = Set-CIPPUserLicense -UserPrincipalName $UserPrincipalName -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 -UserPrincipalName $UserPrincipalName -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $RemoveLicenses -AddLicenses $licenses -Headers $Headers -APIName $APIName + $Results.Add($licResults) + } + + } + } + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "License assign API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage + $Results.Add( "We've failed to assign the license. $($ErrorMessage.NormalizedError)") + Write-Warning "License assign API failed. $($_.Exception.Message)" + Write-Information $_.InvocationInfo.PositionMessage + } + + #Add Aliases, removal currently not supported. + try { + if ($Aliases) { + Write-Host ($Aliases | ConvertTo-Json) + foreach ($Alias in $Aliases) { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -Verbose + } + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$UserPrincipalName`"}" -Verbose + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Added Aliases to $($UserObj.DisplayName)" -Sev Info + $Results.Add( 'Success. Added aliases to user.') + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add aliases to user $($UserObj.DisplayName). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + + if ($UserObj.CopyFrom.value) { + $CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $UserObj.CopyFrom.value -UserID $UserPrincipalName -TenantFilter $UserObj.tenantFilter + $Results.AddRange(@($CopyFrom)) + } + + if ($AddToGroups) { + $AddToGroups | ForEach-Object { + + $GroupType = $_.addedFields.groupType + $GroupID = $_.value + $GroupName = $_.label + Write-Host "About to add $($UserObj.userPrincipalName) to $GroupName. Group ID is: $GroupID and type is: $GroupType" + + try { + if (& $UseExchangeForGroup $_.addedFields) { + Write-Host 'Adding to group via Add-DistributionGroupMember' + $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } + $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + } else { + Write-Host 'Adding to group via Graph' + $UserBody = [PSCustomObject]@{ + '@odata.id' = "https://graph.microsoft.com/beta/directoryObjects/$($UserObj.id)" + } + $UserBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $UserBody + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $UserBodyJSON -Verbose + } + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Added $($UserObj.DisplayName) to $GroupName group" -Sev Info + $Results.Add("Success. $($UserObj.DisplayName) has been added to $GroupName") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to add member $($UserObj.DisplayName) to $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + } + } + + if ($RemoveFromGroups) { + $RemoveFromGroups | ForEach-Object { + + $GroupType = $_.addedFields.groupType + $GroupID = $_.value + $GroupName = $_.label + Write-Host "About to remove $($UserObj.userPrincipalName) from $GroupName. Group ID is: $GroupID and type is: $GroupType" + + try { + if (& $UseExchangeForGroup $_.addedFields) { + Write-Host 'Removing From group via Remove-DistributionGroupMember' + $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } + $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true + } else { + Write-Host 'Removing From group via Graph' + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/$($UserObj.id)/`$ref" -tenantid $UserObj.tenantFilter -type DELETE + } + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Removed $($UserObj.DisplayName) from $GroupName group" -Sev Info + $Results.Add("Success. $($UserObj.DisplayName) has been removed from $GroupName") + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Message = "Failed to remove member $($UserObj.DisplayName) from $GroupName. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage + $Results.Add($Message) + } + } + } + + if ($UserObj.setManager.value) { + $ManagerResults = Set-CIPPManager -Users $UserPrincipalName -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($ManagerResults.Result) + } + + if ($UserObj.setSponsor.value) { + $SponsorResults = Set-CIPPSponsor -Users $UserPrincipalName -Sponsor $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers + $Results.Add($SponsorResults.Result) + } + + return @{ + Results = $Results + UserPrincipalName = $UserPrincipalName + } +} diff --git a/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 index 937adef2d434d..518131d481bbe 100644 --- a/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 +++ b/Modules/CIPPCore/Public/Set-CippKeyVaultSecret.ps1 @@ -38,10 +38,9 @@ function Set-CippKeyVaultSecret { try { # Derive vault name if not provided if (-not $VaultName) { - if ($env:WEBSITE_DEPLOYMENT_ID) { - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] - } else { - throw "VaultName not provided and WEBSITE_DEPLOYMENT_ID environment variable not set" + $VaultName = Get-CippKeyVaultName + if (-not $VaultName) { + throw 'VaultName not provided and could not be derived (WEBSITE_SITE_NAME / WEBSITE_DEPLOYMENT_ID not set)' } } diff --git a/Modules/CIPPCore/Public/Sync-CIPPReusablePolicySettings.ps1 b/Modules/CIPPCore/Public/Sync-CIPPReusablePolicySettings.ps1 index 3a87963cba8c9..8e88186827bb4 100644 --- a/Modules/CIPPCore/Public/Sync-CIPPReusablePolicySettings.ps1 +++ b/Modules/CIPPCore/Public/Sync-CIPPReusablePolicySettings.ps1 @@ -12,7 +12,8 @@ function Sync-CIPPReusablePolicySettings { $reusableRefs = @($TemplateInfo.ReusableSettings) if (-not $reusableRefs) { return $result } - $existingReusableSettings = New-GraphGETRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/reusablePolicySettings?$top=999' -tenantid $Tenant + # The list endpoint omits settingInstance unless explicitly selected, which would make every compare fail + $existingReusableSettings = New-GraphGETRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/reusablePolicySettings?$top=999&$select=id,displayName,description,settingDefinitionId,settingInstance,version' -tenantid $Tenant $table = Get-CippTable -tablename 'templates' $templateEntities = Get-CIPPAzDataTableEntity @table -Filter "PartitionKey eq 'IntuneReusableSettingTemplate'" diff --git a/Modules/CIPPCore/Public/TenantGroups/Test-CIPPDynamicGroupFilter.ps1 b/Modules/CIPPCore/Public/TenantGroups/Test-CIPPDynamicGroupFilter.ps1 index f8138c9720948..58cabd113dc86 100644 --- a/Modules/CIPPCore/Public/TenantGroups/Test-CIPPDynamicGroupFilter.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Test-CIPPDynamicGroupFilter.ps1 @@ -27,8 +27,8 @@ function Test-CIPPDynamicGroupFilter { [hashtable]$TenantGroupMembersCache = @{} ) - $AllowedOperators = @('eq', 'ne', 'like', 'notlike', 'in', 'notin', 'contains', 'notcontains') - $AllowedProperties = @('delegatedAccessStatus', 'availableLicense', 'availableServicePlan', 'tenantGroupMember', 'customVariable') + $AllowedOperators = @('eq', 'ne', 'like', 'notlike', 'in', 'notin', 'contains', 'notcontains', 'gt', 'ge', 'lt', 'le') + $AllowedProperties = @('delegatedAccessStatus', 'availableLicense', 'availableServicePlan', 'tenantGroupMember', 'customVariable', 'gdapRelationshipAge') # Regex for sanitizing string values - block characters that enable code injection $SafeValueRegex = [regex]'^[^;|`\$\{\}\(\)]*$' @@ -202,6 +202,22 @@ function Test-CIPPDynamicGroupFilter { } } } + 'gdapRelationshipAge' { + if ($OperatorLower -notin @('eq', 'ne', 'gt', 'ge', 'lt', 'le')) { + Write-Warning "Unsupported operator '$OperatorLower' for gdapRelationshipAge" + return $null + } + $RawDays = if ($null -ne $Value.value) { $Value.value } else { $Value } + $Days = 0 + if (-not [int]::TryParse([string]$RawDays, [ref]$Days) -or $Days -lt 0) { + Write-Warning "Blocked invalid day count in gdapRelationshipAge rule: '$RawDays'" + return $null + } + # Tenants without an active GDAP relationship have a $null age and never match an + # age rule - without the null guard, '$null -lt 14' would be true and direct + # tenants would permanently land in every 'younger than' group. + return "(`$null -ne `$_.gdapRelationshipAgeDays -and `$_.gdapRelationshipAgeDays -$OperatorLower $Days)" + } default { Write-Warning "Unknown property type: $Property" return $null diff --git a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 index 1ce08749fcc09..1585fa8ff11eb 100644 --- a/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 +++ b/Modules/CIPPCore/Public/TenantGroups/Update-CIPPDynamicTenantGroups.ps1 @@ -43,6 +43,8 @@ function Update-CIPPDynamicTenantGroups { $TotalMembersAdded = 0 $TotalMembersRemoved = 0 $GroupsProcessed = 0 + $GdapAgeByCustomer = $null + $GdapFetchAttempted = $false # Pre-load tenant group memberships for tenantGroupMember rules # This creates a cache to avoid repeated table queries during rule evaluation @@ -69,8 +71,37 @@ function Update-CIPPDynamicTenantGroups { $RequiresLicense = $Rules.property -contains 'availableLicense' $RequiresCustomVariables = $Rules.property -contains 'customVariable' $RequiresServicePlans = $Rules.property -contains 'availableServicePlan' + $RequiresGdapAge = $Rules.property -contains 'gdapRelationshipAge' Write-Information "Processing $($Rules.Count) rules for group '$($Group.Name)'" + if ($RequiresGdapAge) { + if (-not $GdapFetchAttempted) { + $GdapFetchAttempted = $true + try { + $Relationships = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships?`$top=300" -tenantid $env:TenantID -NoAuthCheck $true -ComplexFilter + $Now = (Get-Date).ToUniversalTime() + $AgeMap = @{} + foreach ($Relationship in $Relationships) { + $RelCustomerId = [string]$Relationship.customer.tenantId + if ([string]::IsNullOrEmpty($RelCustomerId) -or -not $Relationship.activatedDateTime) { continue } + if ($Relationship.status -in @('terminated', 'expired')) { continue } + $AgeDays = [int][math]::Floor(($Now - ([datetime]$Relationship.activatedDateTime).ToUniversalTime()).TotalDays) + # Oldest active relationship wins - relationship age should not reset + # when an additional/replacement relationship is accepted later. + if (-not $AgeMap.ContainsKey($RelCustomerId) -or $AgeMap[$RelCustomerId] -lt $AgeDays) { + $AgeMap[$RelCustomerId] = $AgeDays + } + } + $GdapAgeByCustomer = $AgeMap + } catch { + Write-LogMessage -API 'TenantGroups' -message "Failed to get GDAP relationships for dynamic group evaluation: $((Get-NormalizedError -Message $_.Exception.Message))" -sev Error + } + } + if ($null -eq $GdapAgeByCustomer) { + throw 'Could not retrieve GDAP relationships, skipping this group so existing membership is preserved.' + } + } + $TenantObj = foreach ($Tenant in $AllTenants) { $LicenseInfo = $null $SKUId = @() @@ -126,6 +157,7 @@ function Update-CIPPDynamicTenantGroups { servicePlans = $ServicePlans delegatedPrivilegeStatus = $Tenant.delegatedPrivilegeStatus customVariables = $TenantVariables + gdapRelationshipAgeDays = if ($GdapAgeByCustomer -and $GdapAgeByCustomer.ContainsKey([string]$Tenant.customerId)) { $GdapAgeByCustomer[[string]$Tenant.customerId] } else { $null } } } # Evaluate rules safely using Test-CIPPDynamicGroupFilter with AND/OR logic @@ -208,6 +240,12 @@ function Update-CIPPDynamicTenantGroups { # Bust the TenantGroups cache so subsequent calls reflect the changes made above Get-TenantGroups -SkipCache | Out-Null + # Roles scoped to a tenant group resolve through this membership, so the cached access + # scope rules are stale too. Only worth the write when membership actually moved. + if ($TotalMembersAdded -gt 0 -or $TotalMembersRemoved -gt 0) { + Clear-CippAccessScopeCache + } + return @{ MembersAdded = $TotalMembersAdded MembersRemoved = $TotalMembersRemoved diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 index fe23662fcb033..48a561c3b4ce9 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessPermissions.ps1 @@ -32,7 +32,7 @@ function Test-CIPPAccessPermissions { } if ($env:MSI_SECRET) { try { - $KV = $env:WEBSITE_DEPLOYMENT_ID + $KV = Get-CippKeyVaultName $KeyVaultRefresh = Get-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -AsPlainText if ($env:RefreshToken -ne $KeyVaultRefresh) { $Success = $false diff --git a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 index 66c987c0d00f7..6f44afc1a6a15 100644 --- a/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1 @@ -23,6 +23,9 @@ function Test-CIPPAccessTenant { @{ Name = 'Domain Name Administrator'; Id = '8329153b-31d0-4727-b945-745eb3bc5f31'; Optional = $true } ) + # Global Administrator implicitly grants every role listed above. + $GlobalAdminRoleId = '62e90394-69f5-4237-9190-012177145e10' + $TenantParams = @{ IncludeErrors = $true } @@ -50,13 +53,20 @@ function Test-CIPPAccessTenant { $GraphStatus = $false $ExchangeStatus = $false + # Direct tenants authenticate with their own per-tenant refresh token rather than through a + # GDAP relationship, so directory roles granted to the partner tenant do not apply to them. + $IsDirectTenant = $Tenant.delegatedPrivilegeStatus -eq 'directTenant' + $TenantType = if ($IsDirectTenant) { 'Direct' } else { 'GDAP' } + $Results = [PSCustomObject]@{ TenantName = $Tenant.defaultDomainName + TenantType = $TenantType + ServiceAccount = '' GraphStatus = $false GraphTest = '' ExchangeStatus = $false ExchangeTest = '' - GDAPRoles = '' + AssignedRoles = '' MissingRoles = '' OrgManagementRoles = @() OrgManagementRolesMissing = @() @@ -66,46 +76,89 @@ function Test-CIPPAccessTenant { $AddedText = '' try { $TenantId = $Tenant.customerId - $BulkRequests = $ExpectedRoles | ForEach-Object { @( - @{ - id = "roleManagement_$($_.Id)" - method = 'GET' - url = "roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '$($_.Id)'&`$expand=principal" - } - ) - } - $GDAPRolesGraph = New-GraphBulkRequest -tenantid $TenantId -Requests $BulkRequests - $GDAPRoles = [System.Collections.Generic.List[object]]::new() + $AssignedRoles = [System.Collections.Generic.List[object]]::new() $MissingRoles = [System.Collections.Generic.List[object]]::new() - foreach ($RoleId in $ExpectedRoles) { - $GraphRole = $GDAPRolesGraph.body.value | Where-Object -Property roleDefinitionId -EQ $RoleId.Id - $Role = $GraphRole.principal | Where-Object -Property organizationId -EQ $env:TenantID + if ($IsDirectTenant) { + # A direct tenant is reached with the service account's own delegated token, so the + # roles that matter are the ones that account holds inside the tenant itself rather + # than anything assigned to the partner tenant. + $ServiceAccount = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/me?$select=id,displayName,userPrincipalName' -tenantid $TenantId -ErrorAction Stop + $Results.ServiceAccount = $ServiceAccount.userPrincipalName + + $Memberships = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/me/transitiveMemberOf' -tenantid $TenantId -ErrorAction Stop + $DirectoryRoles = @($Memberships | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.directoryRole' }) + $IsGlobalAdmin = $DirectoryRoles.roleTemplateId -contains $GlobalAdminRoleId + + foreach ($RoleId in $ExpectedRoles) { + $HeldRole = $DirectoryRoles | Where-Object { $_.roleTemplateId -eq $RoleId.Id } + if ($HeldRole) { + $AssignedRoles.Add([PSCustomObject]@{ + Role = $RoleId.Name + Group = $ServiceAccount.userPrincipalName + }) + } elseif ($IsGlobalAdmin) { + $AssignedRoles.Add([PSCustomObject]@{ + Role = $RoleId.Name + Group = "$($ServiceAccount.userPrincipalName) (via Global Administrator)" + }) + } else { + $MissingRoles.Add( + [PSCustomObject]@{ + Name = $RoleId.Name + Type = 'Tenant' + Optional = $RoleId.Optional + } + ) + } + } - if (!$Role) { - $MissingRoles.Add( - [PSCustomObject]@{ - Name = $RoleId.Name - Type = 'Tenant' - Optional = $RoleId.Optional + $RequiredMissingRoles = $MissingRoles | Where-Object { $_.Optional -ne $true } + if (($RequiredMissingRoles | Measure-Object).Count -gt 0) { + $AddedText = 'but the service account is missing required roles' + } elseif (($MissingRoles | Measure-Object).Count -gt 0) { + $AddedText = 'but the service account is missing optional roles' + } + } else { + $BulkRequests = $ExpectedRoles | ForEach-Object { @( + @{ + id = "roleManagement_$($_.Id)" + method = 'GET' + url = "roleManagement/directory/roleAssignments?`$filter=roleDefinitionId eq '$($_.Id)'&`$expand=principal" } ) - } else { - $GDAPRoles.Add([PSCustomObject]@{ - Role = $RoleId.Name - Group = $Role.displayName - }) } - } + $GDAPRolesGraph = New-GraphBulkRequest -tenantid $TenantId -Requests $BulkRequests + + foreach ($RoleId in $ExpectedRoles) { + $GraphRole = $GDAPRolesGraph.body.value | Where-Object -Property roleDefinitionId -EQ $RoleId.Id + $Role = $GraphRole.principal | Where-Object -Property organizationId -EQ $env:TenantID + + if (!$Role) { + $MissingRoles.Add( + [PSCustomObject]@{ + Name = $RoleId.Name + Type = 'Tenant' + Optional = $RoleId.Optional + } + ) + } else { + $AssignedRoles.Add([PSCustomObject]@{ + Role = $RoleId.Name + Group = $Role.displayName + }) + } + } - $RequiredMissingRoles = $MissingRoles | Where-Object { $_.Optional -ne $true } - if (($RequiredMissingRoles | Measure-Object).Count -gt 0) { - $AddedText = 'but missing required GDAP roles' - } elseif (($MissingRoles | Measure-Object).Count -gt 0) { - $AddedText = 'but missing optional GDAP roles' + $RequiredMissingRoles = $MissingRoles | Where-Object { $_.Optional -ne $true } + if (($RequiredMissingRoles | Measure-Object).Count -gt 0) { + $AddedText = 'but missing required GDAP roles' + } elseif (($MissingRoles | Measure-Object).Count -gt 0) { + $AddedText = 'but missing optional GDAP roles' + } } - $GraphTest = "Successfully connected to Graph $($AddedText)" + $GraphTest = "Successfully connected to Graph $($AddedText)".Trim() $GraphStatus = $true } catch { $ErrorMessage = Get-CippException -Exception $_ @@ -176,7 +229,7 @@ function Test-CIPPAccessTenant { $Results.GraphTest = $GraphTest $Results.ExchangeStatus = $ExchangeStatus $Results.ExchangeTest = $ExchangeTest - $Results.GDAPRoles = @($GDAPRoles) + $Results.AssignedRoles = @($AssignedRoles) $Results.MissingRoles = @($MissingRoles) $Headers = $Headers.UserDetails diff --git a/Modules/CIPPCore/Public/Test-CIPPAutopilotProfileName.ps1 b/Modules/CIPPCore/Public/Test-CIPPAutopilotProfileName.ps1 new file mode 100644 index 0000000000000..5de69afaedfc2 --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CIPPAutopilotProfileName.ps1 @@ -0,0 +1,32 @@ +function Test-CIPPAutopilotProfileName { + <# + .SYNOPSIS + Validates an Autopilot deployment profile name against the character set Intune accepts. + .DESCRIPTION + Intune only accepts letters, numbers, spaces and the special characters : " ? . @ $ & _ [ ] { } | \ + in a deployment profile name. Anything else (a hyphen being the common one) is rejected by the + service with a generic 500 that carries no reason, so we check up front to return a usable error. + Leading and trailing spaces are allowed. + .OUTPUTS + PSCustomObject with IsValid and Message properties. Message is empty when the name is valid. + #> + [CmdletBinding()] + param( + [string]$DisplayName + ) + + $AllowedPattern = '^[\p{L}\p{N} :"?.@$&_\[\]{}|\\]+$' + + if ([string]::IsNullOrWhiteSpace($DisplayName)) { + $Message = 'Autopilot profile name is required.' + } elseif ($DisplayName -notmatch $AllowedPattern) { + $Message = 'Autopilot profile name contains characters Intune does not accept. Only letters, numbers, spaces and : " ? . @ $ & _ [ ] { } | \ are allowed.' + } else { + $Message = '' + } + + return [PSCustomObject]@{ + IsValid = [string]::IsNullOrEmpty($Message) + Message = $Message + } +} diff --git a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 index 6a259ea06a9d4..740056e8e8b03 100644 --- a/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 +++ b/Modules/CIPPCore/Public/Test-CIPPRerun.ps1 @@ -28,9 +28,12 @@ function Test-CIPPRerun { } } - # Use BaseTime if provided, otherwise use current time - $CurrentUnixTime = if ($BaseTime -gt 0) { $BaseTime } else { [int][double]::Parse((Get-Date -UFormat %s)) } - $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference + # Real wall-clock time, used to decide whether enough time has actually elapsed to allow a rerun. + $Now = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds + # Anchor time for *recording* the next run. For scheduled tasks we anchor to the task's + # ScheduledTime (BaseTime) so EstimatedNextRun aligns to the schedule; otherwise use now. + $AnchorTime = if ($BaseTime -gt 0) { $BaseTime } else { $Now } + $EstimatedNextRun = $AnchorTime + $EstimatedDifference try { $Filters = [System.Collections.Generic.List[string]]::new() @@ -63,7 +66,7 @@ function Test-CIPPRerun { if ($NewSettings.Length -ne $PreviousSettings.Length) { Write-Host "$($NewSettings.Length) vs $($PreviousSettings.Length) - settings have changed." $RerunData | Add-Member -MemberType NoteProperty -Name 'EstimatedNextRun' -Value $EstimatedNextRun -Force - $RerunData | Add-Member -MemberType NoteProperty -Name 'LastScheduledTime' -Value "$CurrentUnixTime" -Force + $RerunData | Add-Member -MemberType NoteProperty -Name 'LastScheduledTime' -Value "$AnchorTime" -Force $RerunData | Add-Member -MemberType NoteProperty -Name 'Settings' -Value "$($Settings | ConvertTo-Json -Depth 10 -Compress)" -Force Add-CIPPAzDataTableEntity @RerunTable -Entity $RerunData -Force return $false # Not a rerun because settings have changed. @@ -79,24 +82,24 @@ function Test-CIPPRerun { Add-CIPPAzDataTableEntity @RerunTable -Entity $RerunData -Force return $false } - if ($RerunData.EstimatedNextRun -gt $CurrentUnixTime) { + if ($RerunData.EstimatedNextRun -gt $Now) { Write-LogMessage -API $API -message "$Type rerun detected for $($API). Prevented from running again." -tenant $TenantFilter -headers $Headers -Sev 'Info' return $true } else { $RerunData | Add-Member -MemberType NoteProperty -Name 'EstimatedNextRun' -Value $EstimatedNextRun -Force - $RerunData | Add-Member -MemberType NoteProperty -Name 'LastScheduledTime' -Value "$BaseTime" -Force + $RerunData | Add-Member -MemberType NoteProperty -Name 'LastScheduledTime' -Value "$AnchorTime" -Force $RerunData | Add-Member -MemberType NoteProperty -Name 'Settings' -Value "$($Settings | ConvertTo-Json -Depth 10 -Compress)" -Force Add-CIPPAzDataTableEntity @RerunTable -Entity $RerunData -Force return $false } } else { - $EstimatedNextRun = $CurrentUnixTime + $EstimatedDifference + $EstimatedNextRun = $AnchorTime + $EstimatedDifference $NewEntity = @{ PartitionKey = "$TenantFilter" RowKey = "$($Type)_$($API)" Settings = "$($Settings | ConvertTo-Json -Depth 10 -Compress)" EstimatedNextRun = $EstimatedNextRun - LastScheduledTime = "$CurrentUnixTime" + LastScheduledTime = "$AnchorTime" } Add-CIPPAzDataTableEntity @RerunTable -Entity $NewEntity -Force return $false diff --git a/Modules/CIPPCore/Public/Test-CippOffloadFunctionApp.ps1 b/Modules/CIPPCore/Public/Test-CippOffloadFunctionApp.ps1 new file mode 100644 index 0000000000000..9fa5c3d299c8b --- /dev/null +++ b/Modules/CIPPCore/Public/Test-CippOffloadFunctionApp.ps1 @@ -0,0 +1,27 @@ +function Test-CippOffloadFunctionApp { + <# + .SYNOPSIS + Returns $true when the given (or current) function app is an offloaded app. + + .DESCRIPTION + Thin boolean wrapper over [[Get-CippOffloadSuffix]] for readability at detection sites. + An app is "offloaded" when its name ends with a known offload suffix (e.g. '-standards'). + A dashed main-app name (e.g. 'compaction-01-z2ir2') is NOT offloaded. + + .PARAMETER SiteName + Function app name to inspect. Defaults to $env:WEBSITE_SITE_NAME (the current app). + + .EXAMPLE + Test-CippOffloadFunctionApp -SiteName 'compaction-01-z2ir2-proc' # -> $true + #> + [CmdletBinding()] + [OutputType([bool])] + param( + [Parameter(Mandatory = $false)] + [AllowNull()] + [AllowEmptyString()] + [string]$SiteName = $env:WEBSITE_SITE_NAME + ) + + return [bool](Get-CippOffloadSuffix -SiteName $SiteName) +} diff --git a/Modules/CIPPCore/Public/Tools/Get-CIPPSchedulerBlockedCommands.ps1 b/Modules/CIPPCore/Public/Tools/Get-CIPPSchedulerBlockedCommands.ps1 index 9ed724c78ed65..be6aeed06a6ad 100644 --- a/Modules/CIPPCore/Public/Tools/Get-CIPPSchedulerBlockedCommands.ps1 +++ b/Modules/CIPPCore/Public/Tools/Get-CIPPSchedulerBlockedCommands.ps1 @@ -14,6 +14,7 @@ function Get-CIPPSchedulerBlockedCommands { # Token & authentication functions - would exfiltrate access/refresh tokens 'Get-GraphToken' 'Get-GraphTokenFromCert' + 'New-CIPPCertificateAssertion' 'Get-ClassicAPIToken' 'Get-CIPPAzIdentityToken' 'Get-CIPPAuthentication' @@ -42,6 +43,10 @@ function Get-CIPPSchedulerBlockedCommands { 'Get-CippKeyVaultSecret' 'Set-CippKeyVaultSecret' 'Remove-CippKeyVaultSecret' + 'Get-CIPPSAMCertificate' + 'New-CIPPSAMCertificate' + 'Set-CIPPSAMCertificate' + 'Update-CIPPSAMCertificate' 'Get-ExtensionAPIKey' 'Set-ExtensionAPIKey' 'Remove-ExtensionAPIKey' diff --git a/Modules/CIPPCore/Public/Update-CIPPSAMCertificate.ps1 b/Modules/CIPPCore/Public/Update-CIPPSAMCertificate.ps1 new file mode 100644 index 0000000000000..8fb1cec650878 --- /dev/null +++ b/Modules/CIPPCore/Public/Update-CIPPSAMCertificate.ps1 @@ -0,0 +1,161 @@ +function Update-CIPPSAMCertificate { + <# + .SYNOPSIS + Creates or renews the SAM app certificate + + .DESCRIPTION + Checks the stored SAM certificate and renews it when missing (first-run bootstrap), + within the renewal threshold of expiry, or when the stored certificate is not registered + on the SAM app (drift from a previously failed run). Renewal generates a new self-signed + certificate, registers it on the app registration via a full keyCredentials PATCH + (addKey requires a proof-of-possession token signed by an existing key, which is + impossible at bootstrap), then stores the PFX via Set-CIPPSAMCertificate. Still-valid + existing key credentials are kept during rotation so in-flight assertions keep working; + expired ones are pruned in the same PATCH. If storage fails, the new credential is + rolled back off the app registration so renewal is retried on the next run. + + .PARAMETER RenewalThresholdDays + Renew when the stored certificate expires within this many days. Defaults to 30. + + .PARAMETER Force + Renew regardless of the stored certificate's expiry. + + .PARAMETER ApplicationId + The app registration (client) id to manage the certificate for. Defaults to the SAM app. + + .PARAMETER Headers + Optional pre-built authorization headers for the Graph calls (e.g. the delegated token + during the setup wizard, before the app's own credentials are usable). + + .EXAMPLE + Update-CIPPSAMCertificate + + .EXAMPLE + Update-CIPPSAMCertificate -Force + #> + [CmdletBinding(SupportsShouldProcess = $true)] + param( + [Parameter(Mandatory = $false)] + [int]$RenewalThresholdDays = 30, + + [switch]$Force, + + [Parameter(Mandatory = $false)] + [string]$ApplicationId, + + [Parameter(Mandatory = $false)] + $Headers + ) + + $AppId = if ($ApplicationId) { $ApplicationId } else { $env:ApplicationID } + $AppRegistration = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$AppId')?`$select=id,keyCredentials" -NoAuthCheck $true -AsApp $true -Headers $Headers -ErrorAction Stop + + $Stored = $null + try { + $Stored = Get-CIPPSAMCertificate -SkipCache -ErrorAction Stop + } catch { + Write-Warning "Could not retrieve stored SAM certificate: $($_.Exception.Message)" + } + + $RenewalReason = if ($Force) { + 'Forced renewal requested' + } elseif ($null -eq $Stored) { + 'No stored certificate found, creating initial certificate' + } elseif ($Stored.NotAfter -lt (Get-Date).AddDays($RenewalThresholdDays).ToUniversalTime()) { + "Stored certificate expires $($Stored.NotAfter), within the $RenewalThresholdDays day renewal threshold" + } else { + # Drift check: the stored certificate should be registered on the app. If it is not, + # a previous run failed between storage and Graph (or its rollback failed) - self-heal. + # Graph returns customKeyIdentifier as the hex thumbprint string, but tolerate the + # base64-encoded thumbprint bytes form as well. + $Identifiers = @($AppRegistration.keyCredentials.customKeyIdentifier) + if ($Identifiers -notcontains $Stored.Thumbprint -and $Identifiers -notcontains [Convert]::ToBase64String([Convert]::FromHexString($Stored.Thumbprint))) { + 'Stored certificate is not registered on the app registration, re-registering' + } else { + $null + } + } + + if (-not $RenewalReason) { + Write-Information "SAM certificate is valid until $($Stored.NotAfter) and registered on the app. No renewal needed." + return [PSCustomObject]@{ + Renewed = $false + Thumbprint = $Stored.Thumbprint + NotAfter = $Stored.NotAfter + } + } + + if (-not $PSCmdlet.ShouldProcess($AppId, "Renew SAM certificate: $RenewalReason")) { + return + } + + Write-Information "Renewing SAM certificate for $AppId. Reason: $RenewalReason" + + # Ensure the CIPP exemption policy covers key credential restrictions (asymmetricKeyLifetime / + # trustedCertificateAuthority would otherwise block registering a 1 year self-signed certificate) + try { + $AppPolicyStatus = Update-AppManagementPolicy -ApplicationId $AppId -Headers $Headers + if ($AppPolicyStatus.PolicyAction) { Write-Information $AppPolicyStatus.PolicyAction } + } catch { + Write-Warning "Error updating app management policy $($_.Exception.Message)." + } + + $NewCert = New-CIPPSAMCertificate + + # Keep still-valid credentials (rotation overlap) and prune expired ones in the same PATCH. + # Existing credentials are sent back with their keyId and null key material, which Graph + # preserves; only the appended entry carries new key material. + $Now = (Get-Date).ToUniversalTime() + $KeyCredentials = [System.Collections.Generic.List[object]]::new() + foreach ($Credential in $AppRegistration.keyCredentials) { + if ($Credential.endDateTime -ge $Now) { + $KeyCredentials.Add($Credential) + } else { + Write-Information "Pruning expired key credential $($Credential.keyId) (expired $($Credential.endDateTime))" + } + } + # Record which instance issued the certificate: machine name for local dev, site name in Azure + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $InstanceName = [System.Environment]::MachineName + } else { + $InstanceName = $env:WEBSITE_SITE_NAME + } + $KeyCredentials.Add(@{ + type = 'AsymmetricX509Cert' + usage = 'Verify' + key = $NewCert.PublicKeyBase64 + displayName = "CIPP-SAM Certificate ($InstanceName)" + }) + + $PatchBody = @{ keyCredentials = $KeyCredentials } | ConvertTo-Json -Compress -Depth 10 + New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/v1.0/applications/$($AppRegistration.id)" -Body $PatchBody -NoAuthCheck $true -AsApp $true -Headers $Headers -ErrorAction Stop + Write-Information "Registered new SAM certificate $($NewCert.Thumbprint) on application $AppId" + + try { + $StoreResult = Set-CIPPSAMCertificate -PfxBase64 $NewCert.PfxBase64 -ErrorAction Stop + } catch { + # The new certificate is registered on the app but not retrievable where CIPP reads it, + # and as the newest credential it would suppress renewal on the next run. Roll it back + # off the app registration so state stays consistent and renewal is retried. + Write-LogMessage -API 'SAMCertificate' -message "Failed to store new SAM certificate for $AppId. Rolling back the registered key credential, see Log Data for details." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + try { + $RollbackCredentials = $KeyCredentials | Where-Object { $_.key -ne $NewCert.PublicKeyBase64 } + $RollbackBody = @{ keyCredentials = @($RollbackCredentials) } | ConvertTo-Json -Compress -Depth 10 + New-GraphPOSTRequest -type PATCH -uri "https://graph.microsoft.com/v1.0/applications/$($AppRegistration.id)" -Body $RollbackBody -NoAuthCheck $true -AsApp $true -Headers $Headers -ErrorAction Stop + Write-Information "Rolled back unstored SAM certificate $($NewCert.Thumbprint) from application $AppId" + } catch { + # Rollback failed - the drift check on the next run will force a fresh renewal + Write-LogMessage -API 'SAMCertificate' -message "Failed to roll back unstored SAM certificate $($NewCert.Thumbprint) for $AppId, see Log Data for details. Renewal will retry on the next run." -sev 'CRITICAL' -LogData (Get-CippException -Exception $_) + } + throw + } + + Write-LogMessage -API 'SAMCertificate' -message "SAM certificate renewed for $AppId. Thumbprint: $($NewCert.Thumbprint), expires: $($NewCert.NotAfter), storage mode: $($StoreResult.StorageMode). Reason: $RenewalReason" -sev 'Info' + + return [PSCustomObject]@{ + Renewed = $true + Thumbprint = $NewCert.Thumbprint + NotAfter = $NewCert.NotAfter + StorageMode = $StoreResult.StorageMode + } +} diff --git a/Modules/CIPPCore/Public/Update-CIPPSAMCertificateEnvCache.ps1 b/Modules/CIPPCore/Public/Update-CIPPSAMCertificateEnvCache.ps1 new file mode 100644 index 0000000000000..60edc22bb2109 --- /dev/null +++ b/Modules/CIPPCore/Public/Update-CIPPSAMCertificateEnvCache.ps1 @@ -0,0 +1,30 @@ +function Update-CIPPSAMCertificateEnvCache { + <# + .SYNOPSIS + Refreshes the in-process SAM certificate caches after a store + + .DESCRIPTION + Updates the preloaded environment variable and invalidates the script-scope certificate + cache so the current runspace immediately serves the newly stored certificate. Other + runspaces pick it up when their 1 hour memory cache expires or on restart; the previous + certificate remains valid on the app registration during that window. + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Name, + + [Parameter(Mandatory = $true)] + [string]$PfxBase64 + ) + + if ($Name -eq 'SAMCertificate') { + $env:SAMCertificate = $PfxBase64 + } + if ($script:SAMCertificateCache) { + $script:SAMCertificateCache.Remove($Name) + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 index 528d0bdf07355..c13c4a18eb526 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPPartnerWebhookProcessing.ps1 @@ -6,7 +6,15 @@ function Invoke-CippPartnerWebhookProcessing { try { if ($Data.AuditUri) { - $AuditLog = New-GraphGetRequest -uri $Data.AuditUri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + $ParsedAuditUri = $null + if ([System.Uri]::TryCreate([string]$Data.AuditUri, [System.UriKind]::Absolute, [ref]$ParsedAuditUri) -and + $ParsedAuditUri.Scheme -eq 'https' -and + $ParsedAuditUri.Host -eq 'api.partnercenter.microsoft.com') { + $AuditLog = New-GraphGetRequest -uri $ParsedAuditUri.AbsoluteUri -tenantid $env:TenantID -NoAuthCheck $true -scope 'https://api.partnercenter.microsoft.com/.default' + } else { + Write-LogMessage -API 'Webhooks' -message "Partner Center webhook rejected: AuditUri is not a Partner Center API URL ($($Data.AuditUri))" -Sev 'Alert' + return + } } switch ($Data.EventName) { diff --git a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 index 161463bcd458b..3943899658d9b 100644 --- a/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Invoke-CIPPWebhookProcessing.ps1 @@ -124,6 +124,38 @@ function Invoke-CippWebhookProcessing { $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 -AlertComment $AlertComment -CustomSubject $Data.CIPPCustomSubject + # Derive the affected end-user from the audit record so PSA tickets can be linked to the + # right HaloPSA contact when HaloPSA.LinkTicketsToUsers is enabled. The upstream GUID mapper + # has already attached CIPP-prefixed properties (e.g. CIPPObjectId) holding the resolved UPN + # for any property that contained a user's Object ID; the raw property usually still holds + # the original GUID, which we can use directly as the AzureOID for the Halo lookup. + $AffectedUser = $null + $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}$' + $UserCandidates = @( + @{ Raw = 'ObjectId'; Mapped = 'CIPPObjectId' } + @{ Raw = 'UserId'; Mapped = 'CIPPUserId' } + @{ Raw = 'Userkey'; Mapped = 'CIPPUserkey' } + ) + foreach ($Candidate in $UserCandidates) { + $RawValue = $Data.$($Candidate.Raw) + $MappedValue = $Data.$($Candidate.Mapped) + if (-not $RawValue -and -not $MappedValue) { continue } + + $UPN = $null; $OID = $null + if ($MappedValue -is [string] -and $MappedValue -match '@') { $UPN = $MappedValue } + elseif ($RawValue -is [string] -and $RawValue -match '@') { $UPN = $RawValue } + + if ($RawValue -is [string] -and $RawValue -match $GuidRegex) { $OID = $RawValue } + + if ($UPN -or $OID) { + $AffectedUser = [pscustomobject]@{ + UPN = $UPN + AzureOID = $OID + } + break + } + } + Write-Host 'Going to create the content' foreach ($action in $ActionList ) { switch ($action) { @@ -145,6 +177,9 @@ function Invoke-CippWebhookProcessing { HTMLContent = $GenerateEmail.htmlcontent TenantFilter = $TenantFilter } + if ($AffectedUser) { + $CIPPAlert.AffectedUser = $AffectedUser + } Send-CIPPAlert @CIPPAlert } 'generateWebhook' { diff --git a/Modules/CIPPCore/Public/Webhooks/Push-AuditLogDownloadV2.ps1 b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogDownloadV2.ps1 new file mode 100644 index 0000000000000..8a729938833ae --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogDownloadV2.ps1 @@ -0,0 +1,125 @@ +function Push-AuditLogDownloadV2 { + <# + .SYNOPSIS + Per-tenant audit-log download activity (V2). Polls created searches, downloads succeeded ones + to CacheWebhooks, and advances the AuditLogCoverage ledger. + .DESCRIPTION + For the tenant's ledger rows in state 'Created' (and due): + * bulk-poll Graph search status + * succeeded -> download records to CacheWebhooks, mark Downloaded (+ RecordCount) + * failed -> re-plan a fresh search (State = Planned, clear SearchId); dead-letter at cap + * running/notStarted -> leave Created; if stuck > 4h, re-plan + * download error -> increment Attempts + backoff; dead-letter at cap (NOT terminal) + Returns a summary the PostExecution (AuditLogProcessV2) uses to decide whether to process. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $MaxAttempts = 6 + $StuckHours = 4 + $Downloaded = 0 + + try { + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + $Now = (Get-Date).ToUniversalTime() + $Rows = @(Get-CIPPAzDataTableEntity @Ledger -Filter "PartitionKey eq '$TenantFilter' and State eq 'Created'") + $Rows = $Rows | Where-Object { -not $_.NextAttemptUtc -or ([datetimeoffset]$_.NextAttemptUtc).UtcDateTime -le $Now } + $Rows = @($Rows) + if ($Rows.Count -eq 0) { + return @{ TenantFilter = $TenantFilter; Success = $true; Downloaded = 0 } + } + + # Bulk-poll Graph search status for this tenant's created searches + $Requests = foreach ($Row in $Rows) { + if ($Row.SearchId) { @{ id = [string]$Row.SearchId; url = "security/auditLog/queries/$($Row.SearchId)"; method = 'GET' } } + } + $Requests = @($Requests) + $StatusById = @{} + if ($Requests.Count -gt 0) { + $Responses = New-GraphBulkRequest -Requests $Requests -AsApp $true -TenantId $TenantFilter + foreach ($Response in $Responses) { + if ($Response.body -and $Response.body.id) { $StatusById[[string]$Response.body.id] = [string]$Response.body.status } + } + } + + $CacheTable = Get-CippTable -TableName 'CacheWebhooks' + + foreach ($Row in $Rows) { + $SearchId = [string]$Row.SearchId + $Status = $StatusById[$SearchId] + $CreatedAgeHours = if ($Row.CreatedUtc) { ($Now - ([datetimeoffset]$Row.CreatedUtc).UtcDateTime).TotalHours } else { 999 } + + if ($Status -eq 'succeeded') { + try { + $Results = @(Get-CippAuditLogSearchResults -TenantFilter $TenantFilter -QueryId $SearchId) + foreach ($SearchResult in $Results) { + Add-CIPPAzDataTableEntity @CacheTable -Entity @{ + RowKey = [string]$SearchResult.id + PartitionKey = [string]$TenantFilter + SearchId = $SearchId + JSON = [string]($SearchResult | ConvertTo-Json -Depth 10 -Compress) + CippProcessing = $false + CippProcessingStarted = '' + } -Force + } + $Downloaded += $Results.Count + # Empty windows have nothing to process - mark them Processed directly so they + # don't sit at Downloaded forever. Windows with records go to Downloaded and are + # advanced to Processed by Push-AuditLogTenantProcessV2 once their rows are drained. + $DownloadState = if ($Results.Count -eq 0) { 'Processed' } else { 'Downloaded' } + $LedgerUpdate = @{ + PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = $DownloadState + RecordCount = [int]$Results.Count; DownloadedUtc = $Now; Attempts = 0 + SearchStatus = 'succeeded'; LastPolledUtc = $Now + } + if ($DownloadState -eq 'Processed') { + $LedgerUpdate.ProcessedUtc = $Now + $LedgerUpdate.MatchedCount = 0 + } + Add-CIPPAzDataTableEntity @Ledger -Entity $LedgerUpdate -OperationType UpsertMerge + Write-Information "AuditLogV2: downloaded $($Results.Count) record(s) for $TenantFilter window $($Row.RowKey)" + } catch { + $Attempts = [int]$Row.Attempts + 1 + $RetryTotal = [int]$Row.RetryCount + 1 + if ($Attempts -ge $MaxAttempts) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'DeadLetter'; Attempts = $Attempts; RetryCount = $RetryTotal; LastError = [string]$_.Exception.Message; LastErrorUtc = $Now } -OperationType UpsertMerge + } else { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; Attempts = $Attempts; RetryCount = $RetryTotal; NextAttemptUtc = (Get-CippAuditLogNextAttempt -Attempts $Attempts); LastError = [string]$_.Exception.Message; LastErrorUtc = $Now } -OperationType UpsertMerge + } + Write-Information "AuditLogV2: download error for $TenantFilter window $($Row.RowKey): $($_.Exception.Message)" + } + } elseif ($Status -eq 'failed') { + $Attempts = [int]$Row.Attempts + 1 + $RetryTotal = [int]$Row.RetryCount + 1 + if ($Attempts -ge $MaxAttempts) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'DeadLetter'; Attempts = $Attempts; RetryCount = $RetryTotal; SearchStatus = 'failed'; LastPolledUtc = $Now; LastError = 'Graph search failed'; LastErrorUtc = $Now } -OperationType UpsertMerge + } else { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned'; SearchId = ''; Attempts = $Attempts; RetryCount = $RetryTotal; SearchStatus = ''; LastPolledUtc = $Now; NextAttemptUtc = (Get-CippAuditLogNextAttempt -Attempts $Attempts); LastError = 'Graph search failed; re-planning'; LastErrorUtc = $Now } -OperationType UpsertMerge + } + } elseif ($Status -in @('running', 'notStarted')) { + if ($CreatedAgeHours -ge $StuckHours) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned'; SearchId = ''; SearchStatus = ''; LastPolledUtc = $Now; RetryCount = ([int]$Row.RetryCount + 1); LastError = 'Search stuck; re-planning'; LastErrorUtc = $Now } -OperationType UpsertMerge + } else { + # Not ready yet: leave Created, but persist the live Graph search status so a pending + # window shows WHY it is still in-flight (e.g. 'running') rather than looking stuck. + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; SearchStatus = [string]$Status; LastPolledUtc = $Now } -OperationType UpsertMerge + } + } else { + # Unknown / search no longer present on Graph + if ($CreatedAgeHours -ge $StuckHours) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned'; SearchId = ''; SearchStatus = ''; LastPolledUtc = $Now; RetryCount = ([int]$Row.RetryCount + 1); LastError = 'Search not found; re-planning'; LastErrorUtc = $Now } -OperationType UpsertMerge + } else { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; SearchStatus = $(if ($Status) { [string]$Status } else { 'unknown' }); LastPolledUtc = $Now } -OperationType UpsertMerge + } + } + } + + return @{ TenantFilter = $TenantFilter; Success = $true; Downloaded = $Downloaded } + } catch { + Write-Information ('Push-AuditLogDownloadV2 error for {0}: {1}' -f $TenantFilter, $_.Exception.Message) + return @{ TenantFilter = $TenantFilter; Success = $false; Downloaded = $Downloaded; Error = $_.Exception.Message } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessV2.ps1 b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessV2.ps1 new file mode 100644 index 0000000000000..7c52ccf09c766 --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessV2.ps1 @@ -0,0 +1,53 @@ +function Push-AuditLogProcessV2 { + <# + .SYNOPSIS + PostExecution step of the V2 ingestion orchestrator. If the per-tenant download succeeded, + enqueues a per-tenant processing orchestrator (post-exec style). + .DESCRIPTION + Receives the download orchestrator's aggregated results ($Item.Results) and the tenant filter + ($Item.Parameters.TenantFilter). When at least one record was downloaded, it starts a + per-tenant processing orchestrator whose QueueFunction (AuditLogProcessingBatchV2) pages that + tenant's CacheWebhooks rows into batches handled by the existing AuditLogTenantProcess engine. + If nothing was downloaded, processing is skipped. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + try { + $TenantFilter = $Item.Parameters.TenantFilter + if (-not $TenantFilter) { + $TenantFilter = (@($Item.Results) | Where-Object { $_.TenantFilter } | Select-Object -First 1).TenantFilter + } + if (-not $TenantFilter) { + Write-Information 'AuditLogProcessV2: no tenant filter resolved; skipping' + return @{ Success = $false } + } + + # Fire processing whenever the tenant has rows pending in the cache - records just downloaded + # this cycle OR rows left behind by an earlier crash. Not gated on the download count, so a + # crashed/partial processing run is retried on the next cycle. The batch builder is the + # authoritative gate (claims claimable rows; returns nothing if there's truly no work). + $CacheTable = Get-CippTable -TableName 'CacheWebhooks' + $Pending = @(Get-CIPPAzDataTableEntity @CacheTable -Filter "PartitionKey eq '$TenantFilter'" -Property @('PartitionKey', 'RowKey')) + if ($Pending.Count -eq 0) { + Write-Information "AuditLogProcessV2: no pending cache rows for $TenantFilter; nothing to process" + return @{ Success = $true; Processed = $false } + } + + Write-Information "AuditLogProcessV2: enqueueing processing for $TenantFilter ($($Pending.Count) pending cache row(s))" + $InputObject = [PSCustomObject]@{ + OrchestratorName = "AuditLogProcessV2-$TenantFilter" + QueueFunction = [PSCustomObject]@{ + FunctionName = 'AuditLogProcessingBatchV2' + Parameters = @{ TenantFilter = $TenantFilter } + } + SkipLog = $true + } + $InstanceId = Start-CIPPOrchestrator -InputObject $InputObject + return @{ Success = $true; Processed = $true; InstanceId = $InstanceId } + } catch { + Write-Information ('Push-AuditLogProcessV2 error: {0}' -f $_.Exception.Message) + return @{ Success = $false; Error = $_.Exception.Message } + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessingBatchV2.ps1 b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessingBatchV2.ps1 new file mode 100644 index 0000000000000..fad2047ad5c9d --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogProcessingBatchV2.ps1 @@ -0,0 +1,66 @@ +function Push-AuditLogProcessingBatchV2 { + <# + .SYNOPSIS + QueueFunction for the per-tenant V2 processing orchestrator. Builds processing batches from a + single tenant's CacheWebhooks rows. + .DESCRIPTION + Tenant-scoped variant of Push-AuditLogProcessingBatch. Pages the CacheWebhooks rows for the + tenant supplied via the QueueFunction Parameters, claims unclaimed (or stale > 2h) rows by + stamping CippProcessing = true, and returns 500-row batch items routed to the + AuditLogTenantProcessV2 activity (which runs Test-CIPPAuditLogRules and advances the ledger). + Scoping to one tenant avoids cross-tenant scans and claim races when many tenants process + concurrently. The 2h stale window lets a crashed processing run be re-claimed and retried. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.Parameters.TenantFilter ?? $Item.TenantFilter + if (-not $TenantFilter) { + Write-Information 'AuditLogProcessingBatchV2: no tenant filter; nothing to process' + return @() + } + + $WebhookCacheTable = Get-CippTable -TableName 'CacheWebhooks' + $AllBatchItems = [System.Collections.Generic.List[object]]::new() + $NowUtc = (Get-Date).ToUniversalTime() + $StaleThreshold = $NowUtc.AddHours(-2) + + $Rows = @(Get-CIPPAzDataTableEntity @WebhookCacheTable -Filter "PartitionKey eq '$TenantFilter'" -Property @('PartitionKey', 'RowKey', 'ETag', 'Timestamp', 'CippProcessing')) + $Claimable = @($Rows | Where-Object { + -not $_.CippProcessing -or ($_.Timestamp -and $_.Timestamp.UtcDateTime -lt $StaleThreshold) + }) + if ($Claimable.Count -eq 0) { + Write-Information "AuditLogProcessingBatchV2: no claimable rows for $TenantFilter" + return @() + } + + $RowIds = @($Claimable.RowKey) + foreach ($Row in $Claimable) { + Add-CIPPAzDataTableEntity @WebhookCacheTable -Entity ([PSCustomObject]@{ + PartitionKey = $TenantFilter + RowKey = $Row.RowKey + CippProcessing = $true + }) -OperationType UpsertMerge + } + + for ($i = 0; $i -lt $RowIds.Count; $i += 500) { + $BatchRowIds = $RowIds[$i..([Math]::Min($i + 499, $RowIds.Count - 1))] + $AllBatchItems.Add([PSCustomObject]@{ + TenantFilter = $TenantFilter + RowIds = $BatchRowIds + FunctionName = 'AuditLogTenantProcessV2' + }) + } + + if ($AllBatchItems.Count -gt 0) { + $ProcessQueue = New-CippQueueEntry -Name "Audit Logs Process V2 - $TenantFilter" -Reference 'AuditLogsProcessV2' -TotalTasks $RowIds.Count + foreach ($BatchItem in $AllBatchItems) { + $BatchItem | Add-Member -MemberType NoteProperty -Name QueueId -Value $ProcessQueue.RowKey -Force + } + Write-Information "AuditLogProcessingBatchV2: $($AllBatchItems.Count) batch item(s) across $($RowIds.Count) row(s) for $TenantFilter" + } + + return $AllBatchItems.ToArray() +} diff --git a/Modules/CIPPCore/Public/Webhooks/Push-AuditLogSearchCreationV2.ps1 b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogSearchCreationV2.ps1 new file mode 100644 index 0000000000000..8b24005bf76ac --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogSearchCreationV2.ps1 @@ -0,0 +1,150 @@ +function Push-AuditLogSearchCreationV2 { + <# + .SYNOPSIS + Per-tenant audit-log search creation activity (V2). Seeds owed regular (35-min) and 12-hour + reconciliation windows into the AuditLogCoverage ledger, then creates Graph searches for the + due ones - oldest first, capped per cycle, with manual throttle handling. + .DESCRIPTION + 1. Seed owed regular windows (Get-CippAuditLogPlannedWindows) and reconciliation windows + (Get-CippAuditLogReconciliationWindows) as Planned ledger rows. + 2. Take the oldest <= MaxPerCycle (6) due Planned windows (regular + reconciliation combined) + and create a Graph search for each, with auto-retry DISABLED (New-CippAuditLogSearchV2 -> + maxRetries 1). + 3. Throttling: the createSearch 429 is a per-tenant cap of ~10 concurrent searches, not a rate + limit, so on a 429 we stop and defer the current window AND all remaining queued windows to + the next cycle (no Attempts increment - a cap is not a failure, so it never dead-letters). + Other transient errors (UnknownError, 5xx, gateway) retry the individual window with backoff + and dead-letter at MaxAttempts. AuditingDisabled and AccessDenied (token failure - e.g. + AADSTS7000229 missing service principal) cache the tenant as disabled for 24h and stop. + + Capping at 6/cycle keeps us well under the ~10 concurrent-search ceiling (they complete within + the cycle and free slots). Oldest-first means gaps/backlog/reconciliation drain before the + freshest window; in steady state only the one new window is due, so latency is unaffected. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $TenantId = $Item.TenantId + $MaxPerCycle = 6 + $MaxAttempts = 8 + + try { + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + $Rows = @(Get-CIPPAzDataTableEntity @Ledger -Filter "PartitionKey eq '$TenantFilter'") + $Now = (Get-Date).ToUniversalTime() + + # 1) Seed owed regular + reconciliation windows as Planned. + foreach ($Window in (Get-CippAuditLogPlannedWindows -ExistingRows $Rows -Now $Now)) { + $Entity = @{ + PartitionKey = [string]$TenantFilter; RowKey = [string]$Window.RowKey; TenantId = [string]$TenantId + WindowStart = [datetime]$Window.WindowStart; WindowEnd = [datetime]$Window.WindowEnd + State = 'Planned'; Type = 'Window'; Attempts = 0; RetryCount = 0; ThrottleCount = 0; SearchId = ''; LastError = '' + } + Add-CIPPAzDataTableEntity @Ledger -Entity $Entity -Force + $Rows += [pscustomobject]$Entity + } + foreach ($Window in (Get-CippAuditLogReconciliationWindows -ExistingRows $Rows -Now $Now)) { + $Entity = @{ + PartitionKey = [string]$TenantFilter; RowKey = [string]$Window.RowKey; TenantId = [string]$TenantId + WindowStart = [datetime]$Window.WindowStart; WindowEnd = [datetime]$Window.WindowEnd + State = 'Planned'; Type = 'Reconciliation'; Attempts = 0; RetryCount = 0; ThrottleCount = 0; SearchId = ''; LastError = '' + } + Add-CIPPAzDataTableEntity @Ledger -Entity $Entity -Force + $Rows += [pscustomobject]$Entity + } + + # 2) Build the create batch: the freshest regular window FIRST (so live events alert + # fast even during a backlog), then the oldest of whatever remains - regular + + # reconciliation - to drain gaps before they age out. Reconciliation windows are + # never "current"; they flow through the oldest-first backfill slots unchanged. + $Due = @($Rows | Where-Object { + $_.State -eq 'Planned' -and (-not $_.NextAttemptUtc -or ([datetimeoffset]$_.NextAttemptUtc).UtcDateTime -le $Now) + } | Sort-Object @{ Expression = { ([datetimeoffset]$_.WindowStart).UtcDateTime } }) + if ($Due.Count -eq 0) { + Write-Information "AuditLogV2: no due windows for $TenantFilter" + return $true + } + # Newest regular (14-digit RowKey) window = the live period; reconciliation (RECON-*) is never current. + $CurrentWindow = @($Due | Where-Object { [string]$_.RowKey -match '^\d{14}$' } | Select-Object -Last 1) + if ($CurrentWindow.Count -gt 0) { + $CurrentKey = [string]$CurrentWindow[0].RowKey + $Backfill = @($Due | Where-Object { [string]$_.RowKey -ne $CurrentKey } | Select-Object -First ($MaxPerCycle - 1)) + $Batch = @($CurrentWindow[0]) + $Backfill + } else { + # Only reconciliation windows are due: oldest-first, capped. + $Batch = @($Due | Select-Object -First $MaxPerCycle) + } + + # 3) Create searches (no auto-retry). On 429 or a tenant-level disable, defer current + + # remaining to next cycle. + $Bail = $false + $BailReason = '' + foreach ($Row in $Batch) { + if ($Bail) { + # Deferred (not attempted): just set NextAttemptUtc, leave Attempts/State as Planned. + Add-CIPPAzDataTableEntity @Ledger -Entity @{ + PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned' + NextAttemptUtc = (Get-CippAuditLogNextAttempt -Attempts 1) + ThrottleCount = ([int]$Row.ThrottleCount + 1); LastError = $BailReason; LastErrorUtc = $Now + } -OperationType UpsertMerge + continue + } + + $Start = ([datetimeoffset]$Row.WindowStart).UtcDateTime + $End = ([datetimeoffset]$Row.WindowEnd).UtcDateTime + $Result = New-CippAuditLogSearchV2 -TenantFilter $TenantFilter -StartTime $Start -EndTime $End + $Attempts = [int]$Row.Attempts + 1 + + if ($Result.Outcome -eq 'Created' -and $Result.Id) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ + PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Created' + SearchId = [string]$Result.Id; Attempts = 0; CreatedUtc = $Now + SearchStatus = [string]$Result.Status; LastPolledUtc = $Now + } -OperationType UpsertMerge + Write-Information "AuditLogV2: created search for $TenantFilter window $($Row.RowKey)" + } elseif ($Result.Throttled) { + # 429 = tenant cap full. Defer this window (no Attempts bump - a cap isn't a failure) and bail. + $Bail = $true + $BailReason = 'Deferred: tenant search cap (429)' + Add-CIPPAzDataTableEntity @Ledger -Entity @{ + PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned' + NextAttemptUtc = (Get-CippAuditLogNextAttempt -Attempts 1) + ThrottleCount = ([int]$Row.ThrottleCount + 1); LastError = 'Tenant search cap (429)'; LastErrorUtc = $Now + } -OperationType UpsertMerge + Write-Information "AuditLogV2: 429 for $TenantFilter - deferring this + remaining windows to next cycle" + } elseif ($Result.Outcome -eq 'AuditingDisabled' -or $Result.Outcome -eq 'AccessDenied') { + # AuditingDisabled = unified auditing off; AccessDenied = we can't get a token for the + # tenant at all (e.g. missing service principal). Either way: disable for 24h and stop. + $Bail = $true + $BailReason = 'Deferred: tenant audit log collection disabled' + $DisableStatus = if ($Result.Outcome -eq 'AccessDenied') { [string]$Result.Status } else { 'AuditingDisabledTenant' } + $LedgerError = if ($Result.Message) { [string]$Result.Message } else { $DisableStatus } + try { + $AuditDisabledTable = Get-CIPPTable -TableName 'AuditLogDisabledTenants' + Add-CIPPAzDataTableEntity @AuditDisabledTable -Entity @{ + PartitionKey = 'AuditDisabledTenant'; RowKey = [string]$TenantFilter; TenantFilter = [string]$TenantFilter + Status = $DisableStatus; ExpiresAtUnix = [int64]([datetimeoffset]::UtcNow.AddHours(24).ToUnixTimeSeconds()) + } -Force + } catch {} + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Skipped'; LastError = $LedgerError; LastErrorUtc = $Now } -OperationType UpsertMerge + Write-Information "AuditLogV2: $DisableStatus for $TenantFilter; disabled for 24h" + } else { + # Other transient: retry this window next cycle; dead-letter at cap. + $RetryTotal = [int]$Row.RetryCount + 1 + if ($Attempts -ge $MaxAttempts) { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'DeadLetter'; Attempts = $Attempts; RetryCount = $RetryTotal; LastError = [string]$Result.Message; LastErrorUtc = $Now } -OperationType UpsertMerge + } else { + Add-CIPPAzDataTableEntity @Ledger -Entity @{ PartitionKey = $TenantFilter; RowKey = $Row.RowKey; State = 'Planned'; Attempts = $Attempts; RetryCount = $RetryTotal; NextAttemptUtc = (Get-CippAuditLogNextAttempt -Attempts $Attempts); LastError = [string]$Result.Message; LastErrorUtc = $Now } -OperationType UpsertMerge + } + } + } + return $true + } catch { + Write-Information ('Push-AuditLogSearchCreationV2 error for {0}: {1}' -f $TenantFilter, $_.Exception.Message) + Write-Information $_.InvocationInfo.PositionMessage + return $false + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Push-AuditLogTenantProcessV2.ps1 b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogTenantProcessV2.ps1 new file mode 100644 index 0000000000000..e04ec02ca7c5e --- /dev/null +++ b/Modules/CIPPCore/Public/Webhooks/Push-AuditLogTenantProcessV2.ps1 @@ -0,0 +1,104 @@ +function Push-AuditLogTenantProcessV2 { + <# + .SYNOPSIS + Per-batch audit-log processing activity (V2). Processes a batch of cached rows via the + existing Test-CIPPAuditLogRules engine, then advances the AuditLogCoverage ledger to + 'Processed' for any SearchId whose rows are now fully drained from the cache. + .DESCRIPTION + Same processing as the V1 Push-AuditLogTenantProcess (reads the RowIds from CacheWebhooks + and runs Test-CIPPAuditLogRules, which removes processed rows). Additionally: + * captures the distinct SearchIds represented by this batch's rows + * after processing, for each of those SearchIds with zero remaining CacheWebhooks rows, + marks the matching ledger window State = 'Processed' (ProcessedUtc + MatchedCount) + Because the mark is gated on "no rows left for this SearchId", a search split across + multiple 500-row batches is only marked Processed when its final batch completes. + .FUNCTIONALITY + Entrypoint + #> + [CmdletBinding()] + param($Item) + + $TenantFilter = $Item.TenantFilter + $RowIds = $Item.RowIds + + try { + $CacheWebhooksTable = Get-CippTable -TableName 'CacheWebhooks' + $SearchIds = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + + $Rows = foreach ($RowId in $RowIds) { + $CacheEntity = Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$RowId'" + if ($CacheEntity) { + if ($CacheEntity.SearchId) { [void]$SearchIds.Add([string]$CacheEntity.SearchId) } + $CacheEntity.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + } + } + + if ($Rows.Count -eq 0) { + Write-Information "AuditLogV2: no rows found in cache for the provided row IDs ($TenantFilter)" + return $false + } + + Write-Information "AuditLogV2: processing $($Rows.Count) row(s) for $TenantFilter" + $Result = Test-CIPPAuditLogRules -TenantFilter $TenantFilter -Rows $Rows + $MatchedLogs = [int]($Result.MatchedLogs ?? 0) + + # Advance the ledger to Processed for any SearchId now fully drained from the cache. + if ($SearchIds.Count -gt 0) { + $Ledger = Get-CippTable -TableName 'AuditLogCoverage' + $SingleSearch = ($SearchIds.Count -eq 1) + $Now = (Get-Date).ToUniversalTime() + foreach ($SearchId in $SearchIds) { + $Remaining = @(Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$SearchId'" -Property PartitionKey, RowKey) + if ($Remaining.Count -gt 0) { continue } + + $LedgerRows = @(Get-CIPPAzDataTableEntity @Ledger -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$SearchId'") + foreach ($LedgerRow in $LedgerRows) { + $Update = @{ + PartitionKey = $TenantFilter + RowKey = $LedgerRow.RowKey + State = 'Processed' + ProcessedUtc = $Now + } + # Only attribute matched count when this batch was a single search (unambiguous). + if ($SingleSearch) { $Update.MatchedCount = $MatchedLogs } + Add-CIPPAzDataTableEntity @Ledger -Entity $Update -OperationType UpsertMerge + Write-Information "AuditLogV2: marked window $($LedgerRow.RowKey) Processed for $TenantFilter (search $SearchId)" + } + } + } + + # Sweep orphaned Downloaded windows. Once this batch's rows are processed, re-scan every + # window left at 'Downloaded' for the tenant and cross-check it against the cache by SearchId. + # If no CacheWebhooks rows remain for that search, the records were already processed - often + # under an OVERLAPPING window's search, because CacheWebhooks is keyed by record id, so a 5-min + # window overlap (or a legacy 60-min window sharing record ids) overwrites the SearchId and the + # per-batch marking above never sees this window's id. Mark it Processed. Windows whose search + # still has cache rows are left as-is; they get picked up on the next process round. + try { + $SweepLedger = Get-CippTable -TableName 'AuditLogCoverage' + $SweepNow = (Get-Date).ToUniversalTime() + $DownloadedRows = @(Get-CIPPAzDataTableEntity @SweepLedger -Filter "PartitionKey eq '$TenantFilter' and State eq 'Downloaded'") + foreach ($DownRow in $DownloadedRows) { + $Sid = [string]$DownRow.SearchId + if (-not $Sid) { continue } + $Remaining = @(Get-CIPPAzDataTableEntity @CacheWebhooksTable -Filter "PartitionKey eq '$TenantFilter' and SearchId eq '$Sid'" -Property PartitionKey, RowKey) + if ($Remaining.Count -gt 0) { continue } + Add-CIPPAzDataTableEntity @SweepLedger -Entity @{ + PartitionKey = $TenantFilter + RowKey = $DownRow.RowKey + State = 'Processed' + ProcessedUtc = $SweepNow + MatchedCount = 0 + } -OperationType UpsertMerge + Write-Information "AuditLogV2: swept window $($DownRow.RowKey) to Processed for $TenantFilter (search $Sid drained, no cache rows)" + } + } catch { + Write-Information ('Push-AuditLogTenantProcessV2 sweep error for {0}: {1}' -f $TenantFilter, $_.Exception.Message) + } + + return $true + } catch { + Write-Information ('Push-AuditLogTenantProcessV2: Error {0} line {1} - {2}' -f $_.InvocationInfo.ScriptName, $_.InvocationInfo.ScriptLineNumber, $_.Exception.Message) + return $false + } +} diff --git a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 index 8e16d05cc436b..19053df0c8d85 100644 --- a/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 +++ b/Modules/CIPPCore/Public/Webhooks/Test-CIPPAuditLogRules.ps1 @@ -153,9 +153,14 @@ function Test-CIPPAuditLogRules { $ExpandedTenants = Expand-CIPPTenantGroups -TenantFilter $Tenants # Check if the TenantFilter matches any tenant in the expanded list or AllTenants if ($ExpandedTenants.value -contains $TenantFilter -or $ExpandedTenants.value -contains 'AllTenants') { + # Expand tenant groups in exclusions the same way as inclusions + $ExcludedTenants = $ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($ExcludedTenants) { + $ExcludedTenants = @(Expand-CIPPTenantGroups -TenantFilter $ExcludedTenants) + } [pscustomobject]@{ Tenants = $Tenants - Excluded = ($ConfigEntry.excludedTenants | ConvertFrom-Json -ErrorAction SilentlyContinue) + Excluded = $ExcludedTenants Conditions = $ConfigEntry.Conditions Actions = $ConfigEntry.Actions LogType = $ConfigEntry.Type diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheApps.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheApps.ps1 index 56b65c6c07d1c..ac1b1d7aeceb7 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheApps.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheApps.ps1 @@ -19,10 +19,8 @@ function Set-CIPPDBCacheApps { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching applications' -sev Debug - $Apps = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/applications?$top=999&expand=owners' -tenantid $TenantFilter - if (!$Apps) { $Apps = @() } - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -Data $Apps -AddCount - $Apps = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/applications?$top=999&expand=owners' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Apps' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached applications successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheBitlockerKeys.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheBitlockerKeys.ps1 index 71b70fd9a2508..55cf9e78815af 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheBitlockerKeys.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheBitlockerKeys.ps1 @@ -19,10 +19,8 @@ function Set-CIPPDBCacheBitlockerKeys { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching BitLocker recovery keys' -sev Debug - $BitlockerKeys = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/informationProtection/bitlocker/recoveryKeys' -tenantid $TenantFilter - if (!$BitlockerKeys) { $BitlockerKeys = @() } - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'BitlockerKeys' -Data $BitlockerKeys -AddCount - $BitlockerKeys = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/informationProtection/bitlocker/recoveryKeys' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'BitlockerKeys' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached BitLocker recovery keys successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsExternalAccessPolicy.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsExternalAccessPolicy.ps1 index 96afe6b7eab90..baf9ca9be9e2c 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsExternalAccessPolicy.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsExternalAccessPolicy.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsExternalAccessPolicy { Caches the Teams External Access Policy (Global) .DESCRIPTION - Calls Get-CsExternalAccessPolicy via New-TeamsRequest and writes the + Calls Get-CsExternalAccessPolicy via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsExternalAccessPolicy'. Used by CIS tests 8.2.1 (external domains) and 8.2.2 (unmanaged Teams users). @@ -24,7 +24,7 @@ function Set-CIPPDBCacheCsExternalAccessPolicy { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams External Access Policy' -sev Debug - $ExternalAccess = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{ Identity = 'Global' } + $ExternalAccess = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'ExternalAccessPolicy' -Action Get -Identity 'Global' if ($ExternalAccess) { $Data = @($ExternalAccess) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsAppPermissionPolicy.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsAppPermissionPolicy.ps1 index 66c2a171aecad..a7e3eda73371a 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsAppPermissionPolicy.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsAppPermissionPolicy.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsTeamsAppPermissionPolicy { Caches the Teams App Permission Policy (all policies) .DESCRIPTION - Calls Get-CsTeamsAppPermissionPolicy via New-TeamsRequest and writes + Calls Get-CsTeamsAppPermissionPolicy via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsTeamsAppPermissionPolicy'. Used by CIS test 8.4.1. @@ -24,7 +24,7 @@ function Set-CIPPDBCacheCsTeamsAppPermissionPolicy { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams App Permission Policies' -sev Debug - $AppPermissionPolicies = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsTeamsAppPermissionPolicy' + $AppPermissionPolicies = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TeamsAppPermissionPolicy' -Action Get -ListAll if ($AppPermissionPolicies) { $Data = @($AppPermissionPolicies) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsClientConfiguration.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsClientConfiguration.ps1 index 1db2ec626fe98..8e5ef591c4a23 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsClientConfiguration.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsClientConfiguration.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsTeamsClientConfiguration { Caches the Teams Client Configuration (Global) .DESCRIPTION - Calls Get-CsTeamsClientConfiguration via New-TeamsRequest and writes + Calls Get-CsTeamsClientConfiguration via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsTeamsClientConfiguration'. Used by CIS tests 8.1.1 (external file sharing storage providers) and 8.1.2 (channel email). @@ -25,7 +25,7 @@ function Set-CIPPDBCacheCsTeamsClientConfiguration { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams Client Configuration' -sev Debug - $ClientConfig = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{ Identity = 'Global' } + $ClientConfig = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TeamsClientConfiguration' -Action Get -Identity 'Global' if ($ClientConfig) { $Data = @($ClientConfig) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMeetingPolicy.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMeetingPolicy.ps1 index 5a67acdb1ddb0..33bdc29669c56 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMeetingPolicy.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMeetingPolicy.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsTeamsMeetingPolicy { Caches the Teams Global Meeting Policy .DESCRIPTION - Calls Get-CsTeamsMeetingPolicy via New-TeamsRequest and writes the + Calls Get-CsTeamsMeetingPolicy via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsTeamsMeetingPolicy'. Used by CIS tests 8.5.1 - 8.5.9. @@ -24,7 +24,7 @@ function Set-CIPPDBCacheCsTeamsMeetingPolicy { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams Meeting Policy' -sev Debug - $MeetingPolicy = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{ Identity = 'Global' } + $MeetingPolicy = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TeamsMeetingPolicy' -Action Get -Identity 'Global' if ($MeetingPolicy) { $Data = @($MeetingPolicy) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingConfiguration.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingConfiguration.ps1 new file mode 100644 index 0000000000000..bff91cce2f2f6 --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingConfiguration.ps1 @@ -0,0 +1,40 @@ +function Set-CIPPDBCacheCsTeamsMessagingConfiguration { + <# + .SYNOPSIS + Caches the Teams Messaging Configuration (Global) + + .DESCRIPTION + Calls the Teams ConfigAPI (TeamsMessagingConfiguration) via New-TeamsRequestV2 and + writes the result into the CippReportingDB under Type 'CsTeamsMessagingConfiguration'. + Holds the org-wide message-safety settings (FileTypeCheck, UrlReputationCheck, + ContentBasedPhishingCheck, ReportIncorrectSecurityDetections, etc.). + + .PARAMETER TenantFilter + The tenant to cache the messaging configuration for + + .PARAMETER QueueId + The queue ID to update with total tasks (optional) + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams Messaging Configuration' -sev Debug + + $MessagingConfig = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TeamsMessagingConfiguration' -Action Get -Identity 'Global' + + if ($MessagingConfig) { + $Data = @($MessagingConfig) + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'CsTeamsMessagingConfiguration' -Data $Data -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Teams Messaging Configuration' -sev Debug + } + $MessagingConfig = $null + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache Teams Messaging Configuration: $($_.Exception.Message)" -sev Error + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingPolicy.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingPolicy.ps1 index 2fc1ef784c239..a843c6cfa7b52 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingPolicy.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTeamsMessagingPolicy.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsTeamsMessagingPolicy { Caches the Teams Messaging Policy (Global) .DESCRIPTION - Calls Get-CsTeamsMessagingPolicy via New-TeamsRequest and writes the + Calls Get-CsTeamsMessagingPolicy via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsTeamsMessagingPolicy'. Used by CIS tests 8.2.3 (external Teams users initiating chat) and 8.6.1 (security reporting in Teams). @@ -25,7 +25,7 @@ function Set-CIPPDBCacheCsTeamsMessagingPolicy { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams Messaging Policy' -sev Debug - $MessagingPolicy = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{ Identity = 'Global' } + $MessagingPolicy = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TeamsMessagingPolicy' -Action Get -Identity 'Global' if ($MessagingPolicy) { $Data = @($MessagingPolicy) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTenantFederationConfiguration.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTenantFederationConfiguration.ps1 index 47d09881239e5..a27c559fcaf88 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTenantFederationConfiguration.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheCsTenantFederationConfiguration.ps1 @@ -4,7 +4,7 @@ function Set-CIPPDBCacheCsTenantFederationConfiguration { Caches the Teams Tenant Federation Configuration .DESCRIPTION - Calls Get-CsTenantFederationConfiguration via New-TeamsRequest and + Calls Get-CsTenantFederationConfiguration via New-TeamsRequestV2 and writes the result into the CippReportingDB under Type 'CsTenantFederationConfiguration'. Used by CIS tests 8.2.1 (external domains allow/block list) and 8.2.4 (trial Teams tenants). @@ -25,7 +25,7 @@ function Set-CIPPDBCacheCsTenantFederationConfiguration { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Teams Tenant Federation Configuration' -sev Debug - $Federation = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{ Identity = 'Global' } + $Federation = New-TeamsRequestV2 -TenantFilter $TenantFilter -Type 'TenantFederationConfiguration' -Action Get -Identity 'Global' if ($Federation) { $Data = @($Federation) diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDefenderCVEs.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDefenderCVEs.ps1 new file mode 100644 index 0000000000000..f6cf4850f65fb --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDefenderCVEs.ps1 @@ -0,0 +1,135 @@ +function Set-CIPPDBCacheDefenderCVEs { + <# + .SYNOPSIS + Caches all vulnerabilities devices for a tenant + + .PARAMETER TenantFilter + The tenant to cache vulnerabilities for + + .PARAMETER QueueId + The queue ID to update with total tasks (optional) + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + try { + $AllVulns = Get-DefenderTvmRaw -TenantId $TenantFilter -MaxPages 0 + + if (-not $AllVulns) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No vulnerability data returned from Defender TVM" -sev 'Warning' + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Retrieved $($AllVulns.Count) CVE records from Defender TVM" -sev 'Debug' + try{ + # Initialize a tracker for this tenant session + $CveAggregator = @{} + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Aggregator Failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + try{ + # Group the raw TVM records into unified CVE buckets + foreach ($Vuln in $AllVulns) { + $CveId = $Vuln.cveId + try{ + if (-not $CveAggregator.ContainsKey($CveId)) { + # Establish global CVE & software properties for this specific tenant + $CveAggregator[$CveId] = @{ + cveId = $CveId + customerId = $TenantFilter + softwareVendor = $Vuln.softwareVendor ?? '' + softwareName = $Vuln.softwareName ?? '' + vulnerabilitySeverityLevel = $Vuln.vulnerabilitySeverityLevel ?? '' + recommendedSecurityUpdate = $Vuln.recommendedSecurityUpdate ?? '' + recommendedSecurityUpdateUrl = $Vuln.recommendedSecurityUpdateUrl ?? '' + exploitabilityLevel = $Vuln.exploitabilityLevel ?? '' + + # Arrays to collect device metadata efficiently + AffectedDevices = [System.Collections.Generic.List[object]]::new() + } + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to establish global: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + try{ + # Extract properties specific to this device instance + $DevicePayload = @{ + deviceId = ($Vuln.deviceId -join ',') ?? '' + deviceName = ($Vuln.deviceName -join ',') ?? '' + osVersion = $Vuln.osVersion ?? '' + softwareVersion = ($Vuln.softwareVersion -join ',') ?? '' + diskPaths = if ($Vuln.diskPaths) { $Vuln.diskPaths -join ';' } else { '' } + registryPaths = if ($Vuln.registryPaths) { $Vuln.registryPaths -join ';' } else { '' } + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to extract: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + # Append to our tracking list + [void]$CveAggregator[$CveId].AffectedDevices.Add($DevicePayload) + } + }catch{ + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Allover Build: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + + $Entities = [System.Collections.Generic.List[object]]::new() + + foreach ($CveKey in $CveAggregator.Keys) { + $CveData = $CveAggregator[$CveKey] + + # Flatten or convert device info arrays into a compact, compressed JSON string + $CompactDeviceJson = $CveData.AffectedDevices | ConvertTo-Json -Compress + + [void]$Entities.Add(@{ + PartitionKey = $CveKey + RowKey = $TenantFilter # RowKey becomes just the Tenant, ensuring 1 row per CVE per Tenant + customerId = $TenantFilter + cveId = $CveKey + softwareVendor = $CveData.softwareVendor + softwareName = $CveData.softwareName + vulnerabilitySeverityLevel = $CveData.vulnerabilitySeverityLevel + recommendedSecurityUpdate = $CveData.recommendedSecurityUpdate + recommendedSecurityUpdateUrl = $CveData.recommendedSecurityUpdateUrl + exploitabilityLevel = $CveData.exploitabilityLevel + + # Meta aggregation counts + deviceCount = $CveData.AffectedDevices.Count + + # All individual device variations compressed safely inside a single field + deviceDetailsJson = $CompactDeviceJson + + lastUpdated = [string]$(Get-Date (Get-Date).ToUniversalTime() -UFormat '+%Y-%m-%dT%H:%M:%S.000Z') + }) + } + + if ($Entities.Count -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No valid CVE records to cache" -sev 'Warning' + return + } + + $SuccessCount = 0 + $FailCount = 0 + + $UniqueCves = ($Entities | Select-Object -ExpandProperty cveId -Unique).Count + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached $UniqueCves CVEs" -sev 'Info' + $Entities | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefenderCVEs' -AddCount + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CVE Cache failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "CVE Cache Refresh failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDetectedApps.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDetectedApps.ps1 index 09c22d47b137d..158b818122cda 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDetectedApps.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDetectedApps.ps1 @@ -24,8 +24,9 @@ function Set-CIPPDBCacheDetectedApps { $JobRow = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" if (-not $JobRow) { - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No $ReportName job submitted - skipping detected apps cache" -sev Info - return + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No $ReportName export job pending - submitting a new one" -sev Info + $null = New-CIPPIntuneReportExportJob -TenantFilter $TenantFilter -ReportName $ReportName + $JobRow = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" } $JobId = $JobRow.JobId @@ -35,26 +36,30 @@ function Set-CIPPDBCacheDetectedApps { return } - try { - $Job = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/$JobId" -tenantid $TenantFilter - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId not retrievable: $($ErrorMessage.NormalizedError)" -sev Warning -LogData $ErrorMessage - Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue - return - } - switch ($Job.status) { - 'completed' { } - 'failed' { + $Deadline = [datetime]::UtcNow.AddMinutes(4) + while ($true) { + try { + $Job = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/$JobId" -tenantid $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId not retrievable: $($ErrorMessage.NormalizedError)" -sev Warning -LogData $ErrorMessage + Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue + return + } + + if ($Job.status -eq 'completed') { break } + if ($Job.status -eq 'failed') { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId failed" -sev Error Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue return } - default { - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId still '$($Job.status)' - skipping" -sev Info + if ([datetime]::UtcNow -ge $Deadline) { + # Keep the job row so the next cache run can consume the result + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId still '$($Job.status)' after waiting - the result will be cached on the next run" -sev Info return } + Start-Sleep -Seconds 20 } if (-not $Job.url) { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDeviceSettings.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDeviceSettings.ps1 index 79dd4c4cff821..a9be98143e58f 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDeviceSettings.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDeviceSettings.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheDeviceSettings { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching device settings' -sev Debug - $DeviceSettings = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/deviceLocalCredentials' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceSettings' -Data @($DeviceSettings) -AddCount - $DeviceSettings = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/deviceLocalCredentials' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DeviceSettings' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached device settings successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDevices.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDevices.ps1 index cb2bec81698f2..a51fd7ce1b03b 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDevices.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDevices.ps1 @@ -19,10 +19,8 @@ function Set-CIPPDBCacheDevices { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Azure AD devices' -sev Debug - $Devices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$top=999&$select=id,displayName,operatingSystem,operatingSystemVersion,trustType,accountEnabled,approximateLastSignInDateTime' -tenantid $TenantFilter - if (!$Devices) { $Devices = @() } - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -Data $Devices -AddCount - $Devices = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$top=999&$select=id,displayName,operatingSystem,operatingSystemVersion,trustType,accountEnabled,approximateLastSignInDateTime' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Devices' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Azure AD devices successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDirectoryRecommendations.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDirectoryRecommendations.ps1 index 75074c9ab3b48..3a191fb6a10c3 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDirectoryRecommendations.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDirectoryRecommendations.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheDirectoryRecommendations { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching directory recommendations' -sev Debug - $Recommendations = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/recommendations?$top=999' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -Data $Recommendations -AddCount - $Recommendations = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/directory/recommendations?$top=999' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'DirectoryRecommendations' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached directory recommendations successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDomains.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDomains.ps1 index 0a67432e77b8b..1dbe4a8964dc7 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDomains.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheDomains.ps1 @@ -18,9 +18,8 @@ function Set-CIPPDBCacheDomains { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching domains' -sev Debug - $Domains = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' -Data @($Domains) -AddCount - $Domains = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/domains' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Domains' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached domains successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheGuests.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheGuests.ps1 index 7a25235e6946d..42fadf461acd9 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheGuests.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheGuests.ps1 @@ -19,10 +19,8 @@ function Set-CIPPDBCacheGuests { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching guest users' -sev Debug - $Guests = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userType eq 'Guest'&`$expand=sponsors&`$top=999" -tenantid $TenantFilter - if (!$Guests) { $Guests = @() } - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -Data $Guests -AddCount - $Guests = $null + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=userType eq 'Guest'&`$expand=sponsors&`$top=999" -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Guests' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached guest users successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheIntuneAppInstallStatus.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheIntuneAppInstallStatus.ps1 index 329145fd4b641..8a72b2aaf8116 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheIntuneAppInstallStatus.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheIntuneAppInstallStatus.ps1 @@ -30,8 +30,11 @@ function Set-CIPPDBCacheIntuneAppInstallStatus { $JobRow = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" if (-not $JobRow) { - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No $ReportName job submitted - skipping app install status cache" -sev Info - return + # No pending job - the nightly submission was already consumed by a previous cache run + # or never ran. Submit a new export job now so forced cache runs are self-sufficient. + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "No $ReportName export job pending - submitting a new one" -sev Info + $null = New-CIPPIntuneReportExportJob -TenantFilter $TenantFilter -ReportName $ReportName + $JobRow = Get-CIPPAzDataTableEntity @JobsTable -Filter "PartitionKey eq '$TenantFilter' and RowKey eq '$ReportName'" } $JobId = $JobRow.JobId @@ -41,26 +44,32 @@ function Set-CIPPDBCacheIntuneAppInstallStatus { return } - try { - $Job = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/$JobId" -tenantid $TenantFilter - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId not retrievable: $($ErrorMessage.NormalizedError)" -sev Warning -LogData $ErrorMessage - Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue - return - } + # Poll the export job until it completes. Jobs submitted by the nightly orchestrator are + # long since completed and pass on the first check; freshly self-submitted jobs get a + # bounded wait so a forced run still returns fresh data. + $Deadline = [datetime]::UtcNow.AddMinutes(4) + while ($true) { + try { + $Job = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs/$JobId" -tenantid $TenantFilter + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId not retrievable: $($ErrorMessage.NormalizedError)" -sev Warning -LogData $ErrorMessage + Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue + return + } - switch ($Job.status) { - 'completed' { } - 'failed' { + if ($Job.status -eq 'completed') { break } + if ($Job.status -eq 'failed') { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId failed" -sev Error Remove-AzDataTableEntity @JobsTable -Entity $JobRow -Force -ErrorAction SilentlyContinue return } - default { - Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId still '$($Job.status)' - skipping" -sev Info + if ([datetime]::UtcNow -ge $Deadline) { + # Keep the job row so the next cache run can consume the result + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "$ReportName job $JobId still '$($Job.status)' after waiting - the result will be cached on the next run" -sev Info return } + Start-Sleep -Seconds 20 } if (-not $Job.url) { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheMailboxUsage.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheMailboxUsage.ps1 index 1488af0eda4c0..f523adf31fd16 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheMailboxUsage.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheMailboxUsage.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheMailboxUsage { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching mailbox usage' -sev Debug - $MailboxUsage = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -Data $MailboxUsage -AddCount - $MailboxUsage = $null + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getMailboxUsageDetail(period='D7')?`$format=application%2fjson" -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'MailboxUsage' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached mailbox usage successfully' -sev Debug } catch { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheManagedDevices.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheManagedDevices.ps1 index 5c462e1d91e31..27032d5d4a4e2 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheManagedDevices.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheManagedDevices.ps1 @@ -18,10 +18,8 @@ function Set-CIPPDBCacheManagedDevices { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching managed devices' -sev Debug - $ManagedDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices?$top=999' -tenantid $TenantFilter - if (!$ManagedDevices) { $ManagedDevices = @() } - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -Data $ManagedDevices -AddCount - $ManagedDevices = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/deviceManagement/managedDevices?$top=999' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ManagedDevices' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached managed devices successfully' -sev Debug } catch { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOfficeActivations.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOfficeActivations.ps1 index 272f1fc317d65..c3592e6f259b1 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOfficeActivations.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOfficeActivations.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheOfficeActivations { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching Office activations' -sev Debug - $Activations = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getOffice365ActivationsUserDetail?`$format=application%2fjson" -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OfficeActivations' -Data $Activations -AddCount - $Activations = $null + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/reports/getOffice365ActivationsUserDetail?`$format=application%2fjson" -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OfficeActivations' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached Office activations successfully' -sev Debug } catch { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOneDriveRootPermissions.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOneDriveRootPermissions.ps1 new file mode 100644 index 0000000000000..6d8aefb5ffbc9 --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOneDriveRootPermissions.ps1 @@ -0,0 +1,129 @@ +function Set-CIPPDBCacheOneDriveRootPermissions { + <# + .SYNOPSIS + Caches OneDrive root permissions for every personal site in a tenant. + + .DESCRIPTION + Self-contained cache writer: enumerates personal sites via paginated Graph getAllSites, + fans out batched collection activities (20 sites each), and aggregates results in + Push-StoreOneDriveRootPermissions (PostExecution). + + One row per OneDrive site in OneDriveRootPermissions with permissionsJson (compressed grant + array string), nullable hasNonStandardAccess, and collectionStatus (Full | Skipped). + + Does not read OneDriveUsage or other CIPPDB caches. Requires SharePoint/OneDrive license + (Test-CIPPStandardLicense -Preset SharePoint); unlicensed tenants exit before enumeration. + Scheduling via CIPPDBCacheTypes.json is deferred — manual test: + Invoke-ExecCIPPDBCache?TenantFilter={tenant}&Name=OneDriveRootPermissions + + Site enumeration dedupes getAllSites results by siteId before batching. Empty tenants write + an empty cache directly (PostExecution is skipped when there are zero batches). + + PostExecution passes ExpectedSiteCount; Push-StoreOneDriveRootPermissions throws without writing + if flattened row count does not match (prevents partial replace-mode wipe). Skipped site rows + are merged with prior Full cache data when available (merge-on-Skip) so transient failures + do not overwrite good grant data. + + Owner resolution uses drive.owner (not Owners group or OneDriveUsage). permissionsJson grant + paths: SiteAdmin, SiteRoleGroup, WebRoleAssignment, LibraryRoleAssignment, DriveRootGrant, + DriveRootLink. Groups are stored as principals without Entra expansion. + + Consumer limitations: grant paths != effective access; unprovisioned OneDrives absent; + Skipped sites without a prior Full row have empty permissionsJson; merge-on-Skip may + restore prior Full data after transient failures; count DriveRootLink entries by distinct + permissionId (named recipients produce multiple grant rows per link); child folder/file + sharing is out of scope (SharePointSharingLinks cache). + + .PARAMETER TenantFilter + Tenant to cache OneDrive root permissions for + + .PARAMETER QueueId + Optional queue ID for progress tracking + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + $BatchSize = 20 + + try { + $LicenseCheck = Test-CIPPStandardLicense -StandardName 'OneDriveRootPermissionsCache' -TenantFilter $TenantFilter -Preset SharePoint -SkipLog + if ($LicenseCheck -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have SharePoint/OneDrive license, skipping OneDrive root permissions cache' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting OneDrive root permissions collection' -sev Debug + + $RawSites = @(New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/getAllSites?`$filter=isPersonalSite eq true&`$select=id,webUrl,displayName" -tenantid $TenantFilter -asapp $true) + + $SiteById = @{} + foreach ($Site in $RawSites) { + if ($Site.id) { $SiteById[$Site.id] = $Site } + } + $Sites = @($SiteById.Values) + $ExpectedSiteCount = $Sites.Count + + if ($ExpectedSiteCount -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No personal sites found; writing empty OneDriveRootPermissions cache' -sev Debug + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'OneDriveRootPermissions' -Data @() -AddCount + return + } + + $Batches = [System.Collections.Generic.List[object]]::new() + $TotalBatches = [Math]::Ceiling($Sites.Count / $BatchSize) + for ($i = 0; $i -lt $Sites.Count; $i += $BatchSize) { + $BatchSites = $Sites[$i..[Math]::Min($i + $BatchSize - 1, $Sites.Count - 1)] + $BatchNumber = [Math]::Floor($i / $BatchSize) + 1 + $SiteSeeds = foreach ($Site in $BatchSites) { + [PSCustomObject]@{ + id = $Site.id + webUrl = $Site.webUrl + displayName = $Site.displayName + } + } + $BatchItem = [PSCustomObject]@{ + FunctionName = 'DBCacheOneDriveRootPermissionsBatch' + TenantFilter = $TenantFilter + QueueName = "OneDrive Root Permissions Batch $BatchNumber/$TotalBatches - $TenantFilter" + BatchNumber = $BatchNumber + TotalBatches = $TotalBatches + Sites = @($SiteSeeds) + } + if ($QueueId) { + $BatchItem | Add-Member -NotePropertyName 'QueueId' -NotePropertyValue $QueueId -Force + } + [void]$Batches.Add($BatchItem) + } + + if ($QueueId -and $Batches.Count -gt 0) { + try { + Update-CippQueueEntry -RowKey $QueueId -TotalTasks $Batches.Count -IncrementTotalTasks + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Could not update queue $QueueId with OneDrive root permission batch tasks: $($_.Exception.Message)" -sev Warning + } + } + + $InputObject = [PSCustomObject]@{ + Batch = @($Batches) + OrchestratorName = "OneDriveRootPermissions_$TenantFilter" + PostExecution = @{ + FunctionName = 'StoreOneDriveRootPermissions' + Parameters = @{ + TenantFilter = $TenantFilter + ExpectedSiteCount = $ExpectedSiteCount + } + } + } + + $null = Start-CIPPOrchestrator -InputObject $InputObject + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Started OneDrive root permissions collection across $ExpectedSiteCount sites in $($Batches.Count) batches" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to start OneDrive root permissions collection: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + throw + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOrganization.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOrganization.ps1 index 80b4dea03bf43..af291016ea5fb 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOrganization.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheOrganization.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheOrganization { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching organization data' -sev Debug - $Organization = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' -Data $Organization -AddCount - $Organization = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/organization' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Organization' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached organization data successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 index 04b802332c703..06387748b9dcb 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleAssignmentScheduleInstances.ps1 @@ -18,9 +18,18 @@ function Set-CIPPDBCacheRoleAssignmentScheduleInstances { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role assignment schedule instances' -sev Debug - $RoleAssignmentScheduleInstances = New-GraphGetRequest -Uri 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleInstances' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleAssignmentScheduleInstances' -Data @($RoleAssignmentScheduleInstances) -AddCount - $RoleAssignmentScheduleInstances = $null + # -AsApp is required: the RoleManagement.*.Directory grant is an APPLICATION permission, + # so it only appears in an app-only token. The default delegated path (service account + + # GDAP) fails with "Attempted to perform an unauthorized operation" because PIM reads via + # delegated access additionally need the signed-in user to hold a directory role such as + # Privileged Role Administrator, which GDAP does not grant. + # $expand=principal is required by Get-CippDbRoleMembers, which reads + # $member.principal.displayName/.userPrincipalName/.'@odata.type'. The API returns only + # principalId (a GUID) by default, so without this those all resolve to $null and every + # role member surfaces with a blank name. + $Uri = 'https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleInstances?$expand=principal' + New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter -AsApp $true -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleAssignmentScheduleInstances' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role assignment schedule instances successfully' -sev Debug } catch { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 index 3a3b4208ced57..cdef0a857ee3e 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleEligibilitySchedules.ps1 @@ -18,9 +18,13 @@ function Set-CIPPDBCacheRoleEligibilitySchedules { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role eligibility schedules' -sev Debug - $RoleEligibilitySchedules = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilitySchedules' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' -Data @($RoleEligibilitySchedules) -AddCount - $RoleEligibilitySchedules = $null + # -AsApp is required: RoleManagement.*.Directory is an APPLICATION permission and only + # lands in an app-only token. The default delegated path returns "unauthorized". + # $expand=principal — see the note in Set-CIPPDBCacheRoleAssignmentScheduleInstances; + # Get-CippDbRoleMembers reads principal.displayName off these records too. + $Uri = 'https://graph.microsoft.com/beta/roleManagement/directory/roleEligibilitySchedules?$expand=principal' + New-GraphGetRequest -uri $Uri -tenantid $TenantFilter -AsApp $true -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleEligibilitySchedules' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role eligibility schedules successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleManagementPolicies.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleManagementPolicies.ps1 index 6d88d55f0259a..3e68308d27a52 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleManagementPolicies.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheRoleManagementPolicies.ps1 @@ -1,13 +1,36 @@ function Set-CIPPDBCacheRoleManagementPolicies { <# .SYNOPSIS - Caches role management policies for a tenant + Caches PIM role management policies for a tenant, keyed by the role they apply to .PARAMETER TenantFilter The tenant to cache role management policies for .PARAMETER QueueId The queue ID to update with total tasks (optional) + + .NOTES + Reads roleManagementPolicyAssignments, NOT roleManagementPolicies, because only the + assignment carries roleDefinitionId — the policy record does not identify the role it + applies to, and the role id is not derivable from it (its id embeds a policy GUID that + matches no roleTemplateId). Consumers need to find "the policy for role X", so the + assignment is the correct entity. + https://learn.microsoft.com/graph/api/policyroot-list-rolemanagementpolicyassignments + + $filter is REQUIRED by this API — it must be scoped to a scopeId and scopeType, and the + request errors without it. rules/effectiveRules are navigation properties on the policy, + so they need a nested $expand; they are absent from the default response and consumers + read both. + + The policy is flattened up one level so cached records expose roleDefinitionId alongside + rules/effectiveRules, which is the shape the tests consume. This costs -Stream (the + Select-Object has to materialize), but the result set is small (~144 records/tenant). + + -AsApp is required: RoleManagement.*.Directory is an APPLICATION permission and only + lands in an app-only token. The default delegated path returns "unauthorized". + + A tenant that has never onboarded PIM returns "MissingProvider: The provider is missing" + regardless of query or permissions. That is tenant state, not a bug in this call. #> [CmdletBinding()] param( @@ -18,9 +41,13 @@ function Set-CIPPDBCacheRoleManagementPolicies { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching role management policies' -sev Debug - $RoleManagementPolicies = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/policies/roleManagementPolicies' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleManagementPolicies' -Data @($RoleManagementPolicies) -AddCount - $RoleManagementPolicies = $null + + $Uri = "https://graph.microsoft.com/beta/policies/roleManagementPolicyAssignments?`$filter=scopeId eq '/' and scopeType eq 'DirectoryRole'&`$expand=policy(`$expand=rules,effectiveRules)" + New-GraphGetRequest -uri $Uri -tenantid $TenantFilter -AsApp $true | + Select-Object -Property policyId, roleDefinitionId, scopeId, scopeType, + @{ Name = 'rules'; Expression = { $_.policy.rules } }, + @{ Name = 'effectiveRules'; Expression = { $_.policy.effectiveRules } } | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'RoleManagementPolicies' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached role management policies successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheServicePrincipals.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheServicePrincipals.ps1 index 166b6cac7fd63..c36e84f9137ce 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheServicePrincipals.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheServicePrincipals.ps1 @@ -19,9 +19,8 @@ function Set-CIPPDBCacheServicePrincipals { try { Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching service principals' -sev Debug - $ServicePrincipals = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter - Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -Data $ServicePrincipals -AddCount - $ServicePrincipals = $null + New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/servicePrincipals' -tenantid $TenantFilter -Stream | + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'ServicePrincipals' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached service principals successfully' -sev Debug diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointPermissions.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointPermissions.ps1 new file mode 100644 index 0000000000000..28d80fe2f4286 --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointPermissions.ps1 @@ -0,0 +1,121 @@ +function Set-CIPPDBCacheSharePointPermissions { + <# + .SYNOPSIS + Fans out SharePoint site and document library permission collection, batched by site. + + .DESCRIPTION + Enumerates every non-personal site in the tenant and starts a child orchestration with one + activity per batch of 20 sites (Push-DBCacheSharePointPermissionsBatch). A single + PostExecution (Push-StoreSharePointPermissions) aggregates every batch and writes the + SharePointPermissions cache once. + + Batching rather than one activity per site: this scan costs roughly ten calls per site plus + one per library that holds its own permissions, so it is proportional to libraries rather + than to files. That is orders of magnitude cheaper than the sharing link scan + (Set-CIPPDBCacheSharePointSharingLinks), which walks every drive's whole file tree and so + needs a whole activity per site to bound memory. + + Personal sites are excluded - OneDrive permissions are covered by the separate + OneDriveRootPermissions cache. + + .PARAMETER TenantFilter + The tenant to cache SharePoint permissions for + + .PARAMETER QueueId + Optional queue ID for progress tracking + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + $BatchSize = 20 + + try { + $LicenseCheck = Test-CIPPStandardLicense -StandardName 'SharePointPermissionsCache' -TenantFilter $TenantFilter -Preset SharePoint -SkipLog + if ($LicenseCheck -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have a SharePoint license, skipping SharePoint permissions cache' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting SharePoint permissions collection' -sev Debug + + # Personal sites are filtered out here rather than with $filter=isPersonalSite eq false: + # that filter returns an empty set against getAllSites, so the site list is fetched whole + # and narrowed locally, the same way the sharing links cache does it. + $RawSites = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/getAllSites?`$select=id,displayName,name,webUrl,isPersonalSite&`$top=999" -tenantid $TenantFilter -asapp $true) + + # getAllSites can return the same site more than once across pages. + $SiteById = @{} + foreach ($Site in $RawSites) { + if ($Site.id -and -not $Site.isPersonalSite) { $SiteById[$Site.id] = $Site } + } + $Sites = @($SiteById.Values) + $ExpectedSiteCount = $Sites.Count + + if ($ExpectedSiteCount -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No SharePoint sites found; writing empty SharePointPermissions cache' -sev Debug + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointPermissions' -Data @() -AddCount + return + } + + $Batches = [System.Collections.Generic.List[object]]::new() + $TotalBatches = [Math]::Ceiling($Sites.Count / $BatchSize) + for ($i = 0; $i -lt $Sites.Count; $i += $BatchSize) { + $BatchSites = $Sites[$i..[Math]::Min($i + $BatchSize - 1, $Sites.Count - 1)] + $BatchNumber = [Math]::Floor($i / $BatchSize) + 1 + $SiteSeeds = foreach ($Site in $BatchSites) { + [PSCustomObject]@{ + id = $Site.id + webUrl = $Site.webUrl + # Left null when the site genuinely has no name - some system sites (the + # Search Centre, for one) come back from getAllSites without one. A readable + # label is derived from the URL by Invoke-ListSharePointPermissions rather + # than stored here, because a URL in a name column renders as a link. + displayName = $Site.displayName ?? $Site.name + } + } + $BatchItem = [PSCustomObject]@{ + FunctionName = 'DBCacheSharePointPermissionsBatch' + TenantFilter = $TenantFilter + QueueName = "SharePoint Permissions Batch $BatchNumber/$TotalBatches - $TenantFilter" + BatchNumber = $BatchNumber + TotalBatches = $TotalBatches + Sites = @($SiteSeeds) + } + if ($QueueId) { + $BatchItem | Add-Member -NotePropertyName 'QueueId' -NotePropertyValue $QueueId -Force + } + [void]$Batches.Add($BatchItem) + } + + if ($QueueId -and $Batches.Count -gt 0) { + try { + Update-CippQueueEntry -RowKey $QueueId -TotalTasks $Batches.Count -IncrementTotalTasks + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Could not update queue $QueueId with SharePoint permission batch tasks: $($_.Exception.Message)" -sev Warning + } + } + + $InputObject = [PSCustomObject]@{ + Batch = @($Batches) + OrchestratorName = "SharePointPermissions_$TenantFilter" + SkipLog = $true + PostExecution = @{ + FunctionName = 'StoreSharePointPermissions' + Parameters = @{ + TenantFilter = $TenantFilter + ExpectedSiteCount = $ExpectedSiteCount + } + } + } + + $null = Start-CIPPOrchestrator -InputObject $InputObject + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Started SharePoint permissions collection across $ExpectedSiteCount sites in $($Batches.Count) batches" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to start SharePoint permissions collection: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointSharingLinks.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointSharingLinks.ps1 new file mode 100644 index 0000000000000..0516291c1b9f8 --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSharePointSharingLinks.ps1 @@ -0,0 +1,90 @@ +function Set-CIPPDBCacheSharePointSharingLinks { + <# + .SYNOPSIS + Fans out SharePoint & OneDrive sharing link collection, one activity per site. + + .DESCRIPTION + Enumerates every site in the tenant (SharePoint sites and OneDrive personal sites) and the + tenant's verified domains, then starts a child orchestration with one activity per site + (Push-DBCacheSharePointSiteSharingLinks). Each site activity scans its own drives for shared + items and returns the sharing-link rows; a single PostExecution + (Push-StoreSharePointSharingLinks) aggregates all sites and writes the SharePointSharingLinks + cache once. Scanning all sites inline in one activity buffers the whole tenant's file tree and + OOM-kills the worker on large tenants - per-site fan-out bounds memory and runtime per activity. + + .PARAMETER TenantFilter + The tenant to cache sharing links for + + .PARAMETER QueueId + The queue ID to update with total tasks (optional) + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + try { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Starting SharePoint/OneDrive sharing link collection (per-site fan-out)' -sev Debug + + # Verified domains, used by each site activity to tell internal from external recipients. + $InternalDomains = [System.Collections.Generic.List[string]]::new() + try { + $Domains = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/domains?`$select=id,isVerified" -tenantid $TenantFilter -asapp $true + foreach ($Domain in ($Domains | Where-Object { $_.isVerified })) { $InternalDomains.Add([string]$Domain.id) } + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Could not list verified domains for sharing link classification: $($_.Exception.Message)" -sev Warning + } + + # All sites, including OneDrive personal sites. Cheap - just the site list, no drive scan here. + $Sites = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/getAllSites?`$select=id,displayName,name,webUrl,isPersonalSite&`$top=999" -tenantid $TenantFilter -asapp $true) + + if ($Sites.Count -eq 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No sites found; writing empty SharePointSharingLinks cache' -sev Debug + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointSharingLinks' -Data @() -AddCount + return + } + + $Batch = foreach ($Site in $Sites) { + [PSCustomObject]@{ + FunctionName = 'DBCacheSharePointSiteSharingLinks' + TenantFilter = $TenantFilter + SiteId = $Site.id + SiteName = $Site.displayName ?? $Site.name + SiteUrl = $Site.webUrl + IsPersonalSite = [bool]$Site.isPersonalSite + InternalDomains = @($InternalDomains) + QueueId = $QueueId + QueueName = "Sharing Links - $($Site.webUrl)" + } + } + + # Track the per-site activities against the same queue counter. + if ($QueueId) { + try { + Update-CippQueueEntry -RowKey $QueueId -TotalTasks $Sites.Count -IncrementTotalTasks + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Could not update queue $QueueId with sharing-link tasks: $($_.Exception.Message)" -sev Warning + } + } + + $InputObject = [PSCustomObject]@{ + Batch = @($Batch) + OrchestratorName = "SharePointSharingLinks_$TenantFilter" + SkipLog = $true + PostExecution = @{ + FunctionName = 'StoreSharePointSharingLinks' + Parameters = @{ + TenantFilter = $TenantFilter + } + } + } + + $null = Start-CIPPOrchestrator -InputObject $InputObject + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Started sharing link collection across $($Sites.Count) sites" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to start SharePoint sharing link collection: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSiteActivity.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSiteActivity.ps1 new file mode 100644 index 0000000000000..b6c01f2bdcb65 --- /dev/null +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheSiteActivity.ps1 @@ -0,0 +1,379 @@ +function Set-CIPPDBCacheSiteActivity { + <# + .SYNOPSIS + Caches per-site activity from Microsoft usage reports for a tenant. + + .DESCRIPTION + SiteActivity is not SharePoint-, OneDrive-, or Teams-specific. It stores one row per siteId + with a siteType classifier (SharePoint, SharePointAndTeams, OneDrive) and workload-prefixed + activity columns. SharePoint, OneDrive, and Teams are current data sources — additional + workloads could add their own prefixed fields later without new cache types. + + Each row also includes teamLinkResolutionStatus (Complete/Partial) so consumers can gauge + whether Team-link enrichment was fully resolved for the run. + + Site membership is the union of non-deleted rows from getSharePointSiteUsageDetail and + getOneDriveUsageAccountDetail, but a row is written only when required fields for its + siteType are present after getAllSites backfill (incomplete report rows are skipped). + sites/getAllSites is identity backfill only (displayName, webUrl, isPersonalSite, etc.). + Stored id/siteId values are normalized (lowercase, no braces) for stable Add-CIPPDbItem row keys. + + SharePointAndTeams means a provisioned Team exists for the Group-connected site, not that + the team activity report contains a row. teamsLastActivityDate may be null when the Team + exists but had no activity in the D180 window. + + effectiveLastActivityDate: passthrough report values for all siteTypes; for SharePointAndTeams + uses whichever of sharePointLastActivityDate and teamsLastActivityDate is later (original string). + + Foundational fetches (SP report, OneDrive report, getAllSites, getTeamsTeamActivityDetail) run + as one New-GraphBulkRequest and must succeed or the cache write is aborted. Graph usage reports + are not license-gated at the API level — unlicensed or inactive workloads typically return empty + rows, not errors. The SharePoint license gate above only skips tenants CIPP knows lack + SP/OneDrive SKUs before calling Graph. Team-provisioned groups lookup and bulk + groups/{id}/sites/root resolution are non-fatal enrichments. Graph groups list cannot + $expand=sites — site sharepointIds require per-group sites/root calls (batched). + + Cache write behavior follows CIPPDB convention: on foundational fetch failure, the function + logs and exits without replacing existing SiteActivity rows (last-known-good is preserved). + + Report data reflects a D180 window with typical Microsoft report lag. + + .PARAMETER TenantFilter + The tenant to cache site activity for + + .PARAMETER QueueId + Optional queue context passed by orchestrators; reserved for queue-aware cache flows. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + [string]$QueueId + ) + + try { + $LicenseCheck = Test-CIPPStandardLicense -StandardName 'SiteActivityCache' -TenantFilter $TenantFilter -Preset SharePoint -SkipLog + if ($LicenseCheck -eq $false) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Tenant does not have SharePoint/OneDrive license, skipping SiteActivity cache' -sev Debug + return + } + + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Caching SiteActivity' -sev Debug + + $FoundationalRequests = @( + @{ + id = 'sharePointUsage' + method = 'GET' + url = "reports/getSharePointSiteUsageDetail(period='D180')?`$format=application/json" + } + @{ + id = 'oneDriveUsage' + method = 'GET' + url = "reports/getOneDriveUsageAccountDetail(period='D180')?`$format=application/json" + } + @{ + id = 'listAllSites' + method = 'GET' + url = "sites/getAllSites?`$select=id,webUrl,displayName,isPersonalSite,createdDateTime,sharepointIds&`$top=999" + } + @{ + id = 'teamsActivity' + method = 'GET' + url = "reports/getTeamsTeamActivityDetail(period='D180')?`$format=application/json" + } + ) + $FoundationalResults = @(New-GraphBulkRequest -tenantid $TenantFilter -Requests @($FoundationalRequests) -asapp $true) + + function Get-SiteActivityBulkReportRows { + param( + [Parameter(Mandatory = $true)]$Responses, + [Parameter(Mandatory = $true)][string]$Id, + [Parameter(Mandatory = $true)][string]$Label + ) + $Response = $Responses | Where-Object { $_.id -eq $Id } | Select-Object -First 1 + if (-not $Response) { + throw "$Label response missing from Graph bulk batch" + } + if ($Response.status -and $Response.status -ne 200) { + throw ($Response.body.error.message ?? "$Label request failed with status $($Response.status)") + } + $Body = $Response.body + if ($Body -is [string]) { + $Json = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Body)) + return @(($Json | ConvertFrom-Json).value) + } + return @($Body.value) + } + + $SharePointRows = @(Get-SiteActivityBulkReportRows -Responses $FoundationalResults -Id 'sharePointUsage' -Label 'SharePoint site usage report') + $OneDriveRows = @(Get-SiteActivityBulkReportRows -Responses $FoundationalResults -Id 'oneDriveUsage' -Label 'OneDrive usage report') + $TeamRows = @(Get-SiteActivityBulkReportRows -Responses $FoundationalResults -Id 'teamsActivity' -Label 'Teams team activity report') + + $AllSitesResponse = $FoundationalResults | Where-Object { $_.id -eq 'listAllSites' } | Select-Object -First 1 + if (-not $AllSitesResponse) { + throw 'getAllSites response missing from Graph bulk batch' + } + if ($AllSitesResponse.status -and $AllSitesResponse.status -ne 200) { + throw ($AllSitesResponse.body.error.message ?? "getAllSites request failed with status $($AllSitesResponse.status)") + } + $AllSites = @($AllSitesResponse.body.value) + + $SiteIndex = @{} + foreach ($Site in $AllSites) { + if ($null -eq $Site -or -not $Site.sharepointIds.siteId) { continue } + $IndexKey = $Site.sharepointIds.siteId.ToString().Trim().Trim('{}').ToLowerInvariant() + if ($IndexKey -and -not $SiteIndex.ContainsKey($IndexKey)) { + $SiteIndex[$IndexKey] = $Site + } + } + + $TeamActivityById = @{} + foreach ($Team in $TeamRows) { + if (-not $Team.teamId) { continue } + $TeamKey = $Team.teamId.ToString().Trim().Trim('{}').ToLowerInvariant() + if ($TeamKey -eq '00000000-0000-0000-0000-000000000000') { continue } + $TeamActivityById[$TeamKey] = $Team + } + + # Run-level Team link enrichment quality indicator written to every record. + $TeamLinkResolutionStatus = 'Complete' + $TeamProvisionedById = @{} + try { + $TeamGroups = @(New-GraphGetRequest -tenantid $TenantFilter -uri "https://graph.microsoft.com/beta/groups?`$filter=resourceProvisioningOptions/Any(x:x eq 'Team')&`$select=id,displayName&`$top=999" -AsApp $true) + foreach ($Group in $TeamGroups) { + if (-not $Group.id) { continue } + $GroupKey = $Group.id.ToString().Trim().Trim('{}').ToLowerInvariant() + if ($GroupKey -eq '00000000-0000-0000-0000-000000000000') { continue } + $TeamProvisionedById[$GroupKey] = $Group + } + } catch { + $TeamLinkResolutionStatus = 'Partial' + $GroupError = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SiteActivity: unable to load Team-provisioned groups (continuing): $($GroupError.NormalizedError)" -Sev 'Warning' -LogData $GroupError + } + + # Graph groups list does not support $expand=sites; resolve Team siteId per group via bulk sites/root. + # Any partial failure downgrades Team link resolution status for the entire run. + $TeamSiteBySiteKey = @{} + if ($TeamProvisionedById.Count -gt 0) { + try { + $TeamSiteRequests = foreach ($GroupKey in $TeamProvisionedById.Keys) { + @{ + id = $GroupKey + method = 'GET' + url = "groups/$GroupKey/sites/root?`$select=sharepointIds,webUrl,displayName" + } + } + $TeamSiteResponses = @(New-GraphBulkRequest -tenantid $TenantFilter -Requests @($TeamSiteRequests) -AsApp $true) + $TeamSiteFailures = 0 + foreach ($Response in $TeamSiteResponses) { + if ($Response.status -ne 200 -or -not $Response.body.sharepointIds.siteId) { + $TeamSiteFailures++ + continue + } + $MappedSiteKey = $Response.body.sharepointIds.siteId.ToString().Trim().Trim('{}').ToLowerInvariant() + if (-not $MappedSiteKey) { continue } + $TeamSiteBySiteKey[$MappedSiteKey] = $Response.id + } + if ($TeamSiteFailures -gt 0) { + $TeamLinkResolutionStatus = 'Partial' + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SiteActivity: $TeamSiteFailures Team site lookups failed or returned no sharepointIds (continuing)" -sev Debug + } + } catch { + $TeamLinkResolutionStatus = 'Partial' + $TeamSiteError = Get-CippException -Exception $_ + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SiteActivity: unable to resolve Team SharePoint sites (continuing): $($TeamSiteError.NormalizedError)" -Sev 'Warning' -LogData $TeamSiteError + } + } + + $CachedAt = (Get-Date).ToString('o') + $OneDriveSiteIds = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $Records = [System.Collections.Generic.List[object]]::new() + $SkippedIncomplete = 0 + + function Test-SiteActivityCacheComplete { + param( + [Parameter(Mandatory = $true)] + [string]$SiteType, + [string]$WebUrl, + [string]$DisplayName, + [string]$TeamsTeamId, + [string]$TeamsTeamName, + [string]$OwnerPrincipalName + ) + if ([string]::IsNullOrWhiteSpace($WebUrl)) { return $false } + if ([string]::IsNullOrWhiteSpace($DisplayName)) { return $false } + switch ($SiteType) { + 'OneDrive' { + if ([string]::IsNullOrWhiteSpace($OwnerPrincipalName)) { return $false } + } + 'SharePointAndTeams' { + if ([string]::IsNullOrWhiteSpace($TeamsTeamId)) { return $false } + if ([string]::IsNullOrWhiteSpace($TeamsTeamName)) { return $false } + } + } + return $true + } + + foreach ($Row in $OneDriveRows) { + if ($null -eq $Row -or $Row.isDeleted -eq $true) { continue } + if (-not $Row.siteId) { continue } + + $SiteKey = $Row.siteId.ToString().Trim().Trim('{}').ToLowerInvariant() + if (-not $SiteKey) { continue } + + $IndexedSite = $SiteIndex[$SiteKey] + $WebUrl = $Row.siteUrl + if ([string]::IsNullOrWhiteSpace($WebUrl)) { $WebUrl = $IndexedSite.webUrl } + + $DisplayName = $Row.displayName + if ([string]::IsNullOrWhiteSpace($DisplayName)) { $DisplayName = $IndexedSite.displayName } + if ([string]::IsNullOrWhiteSpace($DisplayName)) { $DisplayName = $Row.ownerDisplayName } + + if (-not (Test-SiteActivityCacheComplete -SiteType 'OneDrive' -WebUrl $WebUrl -DisplayName $DisplayName -OwnerPrincipalName $Row.ownerPrincipalName)) { + $SkippedIncomplete++ + continue + } + + [void]$OneDriveSiteIds.Add($SiteKey) + $OneDriveLastActivity = $Row.lastActivityDate + + $Records.Add([PSCustomObject]@{ + id = $SiteKey + siteId = $SiteKey + siteType = 'OneDrive' + effectiveLastActivityDate = $OneDriveLastActivity + webUrl = $WebUrl + displayName = $DisplayName + ownerDisplayName = $Row.ownerDisplayName + ownerPrincipalName = $Row.ownerPrincipalName + rootWebTemplate = $Row.rootWebTemplate + isPersonalSite = $true + isDeleted = $false + createdDateTime = $IndexedSite?.createdDateTime + webId = $IndexedSite?.sharepointIds?.webId + oneDriveLastActivityDate = $OneDriveLastActivity + oneDriveFileCount = $Row.fileCount + oneDriveStorageUsedInBytes = $Row.storageUsedInBytes + oneDriveStorageAllocatedInBytes = $Row.storageAllocatedInBytes + teamLinkResolutionStatus = $TeamLinkResolutionStatus + reportPeriod = 'D180' + cachedAt = $CachedAt + }) + } + + foreach ($Row in $SharePointRows) { + if ($null -eq $Row -or $Row.isDeleted -eq $true) { continue } + if (-not $Row.siteId) { continue } + + $SiteKey = $Row.siteId.ToString().Trim().Trim('{}').ToLowerInvariant() + if (-not $SiteKey) { continue } + if ($OneDriveSiteIds.Contains($SiteKey)) { continue } + if ($Row.rootWebTemplate -eq 'SPSPERS') { continue } + + $IndexedSite = $SiteIndex[$SiteKey] + if ($IndexedSite.isPersonalSite -eq $true) { continue } + + $WebUrl = $Row.siteUrl + if ([string]::IsNullOrWhiteSpace($WebUrl)) { $WebUrl = $IndexedSite.webUrl } + + $DisplayName = $Row.displayName + if ([string]::IsNullOrWhiteSpace($DisplayName)) { $DisplayName = $IndexedSite.displayName } + if ([string]::IsNullOrWhiteSpace($DisplayName)) { $DisplayName = $Row.ownerDisplayName } + + $SharePointLastActivity = $Row.lastActivityDate + $SiteType = 'SharePoint' + $TeamsTeamId = $null + $TeamsTeamName = $null + $TeamsLastActivity = $null + $TeamsLinkStatus = $null + $EffectiveLastActivity = $SharePointLastActivity + + if ($TeamSiteBySiteKey.ContainsKey($SiteKey)) { + $GroupId = $TeamSiteBySiteKey[$SiteKey] + $SiteType = 'SharePointAndTeams' + $TeamsTeamId = $GroupId + $ProvisionedGroup = $TeamProvisionedById[$GroupId] + $TeamsTeamName = $ProvisionedGroup.displayName + $TeamsLinkStatus = 'Linked' + + if ($TeamActivityById.ContainsKey($GroupId)) { + $TeamRow = $TeamActivityById[$GroupId] + if ($TeamRow.teamName) { $TeamsTeamName = $TeamRow.teamName } + $TeamsLastActivity = $TeamRow.lastActivityDate + } + + if ($TeamsLastActivity) { + if ($SharePointLastActivity) { + try { + if ([datetime]$TeamsLastActivity -gt [datetime]$SharePointLastActivity) { + $EffectiveLastActivity = $TeamsLastActivity + } + } catch { + $EffectiveLastActivity = $TeamsLastActivity + } + } else { + $EffectiveLastActivity = $TeamsLastActivity + } + } + } + + $Record = [PSCustomObject]@{ + id = $SiteKey + siteId = $SiteKey + siteType = $SiteType + effectiveLastActivityDate = $EffectiveLastActivity + webUrl = $WebUrl + displayName = $DisplayName + ownerDisplayName = $Row.ownerDisplayName + ownerPrincipalName = $Row.ownerPrincipalName + rootWebTemplate = $Row.rootWebTemplate + isPersonalSite = $false + isDeleted = $false + createdDateTime = $IndexedSite?.createdDateTime + webId = $IndexedSite?.sharepointIds?.webId + sharePointLastActivityDate = $SharePointLastActivity + sharePointFileCount = $Row.fileCount + sharePointStorageUsedInBytes = $Row.storageUsedInBytes + sharePointStorageAllocatedInBytes = $Row.storageAllocatedInBytes + teamLinkResolutionStatus = $TeamLinkResolutionStatus + reportPeriod = 'D180' + cachedAt = $CachedAt + } + + if ($SiteType -eq 'SharePointAndTeams') { + $Record | Add-Member -NotePropertyName 'teamsTeamId' -NotePropertyValue $TeamsTeamId -Force + $Record | Add-Member -NotePropertyName 'teamsTeamName' -NotePropertyValue $TeamsTeamName -Force + $Record | Add-Member -NotePropertyName 'teamsLastActivityDate' -NotePropertyValue $TeamsLastActivity -Force + $Record | Add-Member -NotePropertyName 'teamsLinkStatus' -NotePropertyValue $TeamsLinkStatus -Force + } + + if (-not (Test-SiteActivityCacheComplete -SiteType $SiteType -WebUrl $WebUrl -DisplayName $DisplayName -TeamsTeamId $TeamsTeamId -TeamsTeamName $TeamsTeamName)) { + $SkippedIncomplete++ + continue + } + + $Records.Add($Record) + } + + if ($SkippedIncomplete -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SiteActivity: skipped $SkippedIncomplete report rows with incomplete required data" -sev Debug + } + + if ($Records.Count -eq 0) { + if ($SkippedIncomplete -gt 0) { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "SiteActivity: no rows were cache-complete (skipped $SkippedIncomplete); preserving existing SiteActivity cache" -sev Warning + return + } + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'No site activity rows to cache; writing empty SiteActivity cache' -sev Debug + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SiteActivity' -Data @() -AddCount + return + } + + Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'SiteActivity' -Data @($Records) -AddCount + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Cached SiteActivity successfully ($($Records.Count) sites)" -sev Debug + + } catch { + Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message "Failed to cache SiteActivity: $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_) + } +} diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheTeamsVoice.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheTeamsVoice.ps1 index 37b9be41b2a85..4cc7c897c1c80 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheTeamsVoice.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheTeamsVoice.ps1 @@ -12,13 +12,19 @@ function Set-CIPPDBCacheTeamsVoice { $TenantId = (Get-Tenants -TenantFilter $TenantFilter).customerId $Users = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=id,userPrincipalName,displayName" -tenantid $TenantFilter + # Keep the cached rows in step with the live list, which resolves LocationId to a label. + $LocationLookup = Get-CippTeamsLocationLookup -TenantFilter $TenantFilter $Skip = 0 $AllNumbers = [System.Collections.Generic.List[object]]::new() do { - $Results = New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($TenantId)/telephone-numbers?skip=$($Skip)&locale=en-US&top=999" -tenantid $TenantFilter + $Results = New-TeamsRequestV2 -TenantFilter $TenantFilter -Path "Skype.TelephoneNumberMgmt/Tenants/$TenantId/telephone-numbers" ` + -QueryParameters @{ skip = $Skip; locale = 'en-US'; top = 999 } ` + -AdditionalHeaders @{ 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' } $Data = @($Results.TelephoneNumbers | ForEach-Object { - $CompleteRequest = $_ | Select-Object *, @{Name = 'AssignedTo'; Expression = { $Users | Where-Object -Property id -EQ $_.TargetId } } + $CompleteRequest = $_ | Select-Object *, + @{Name = 'AssignedTo'; Expression = { $Users | Where-Object -Property id -EQ $_.TargetId } }, + @{Name = 'EmergencyLocation'; Expression = { if ($_.LocationId) { $LocationLookup[[string]$_.LocationId] } } } if ($CompleteRequest.AcquisitionDate) { $CompleteRequest.AcquisitionDate = $_.AcquisitionDate -split 'T' | Select-Object -First 1 } else { diff --git a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheUsers.ps1 b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheUsers.ps1 index e78271e0650f7..14eb2bef641d1 100644 --- a/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheUsers.ps1 +++ b/Modules/CIPPDB/Public/DBCache/Set-CIPPDBCacheUsers.ps1 @@ -87,7 +87,7 @@ function Set-CIPPDBCacheUsers { } # Stream users directly from Graph API to batch processor - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=$Top&`$select=$Select&`$count=true" -ComplexFilter -tenantid $TenantFilter | + New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=$Top&`$select=$Select&`$count=true" -ComplexFilter -tenantid $TenantFilter -Stream | Add-CIPPDbItem -TenantFilter $TenantFilter -Type 'Users' -AddCount Write-LogMessage -API 'CIPPDBCache' -tenant $TenantFilter -message 'Cached users successfully' -sev Debug diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 index 222e7abed29d8..867ce9a67cb0d 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecCippFunction.ps1 @@ -14,7 +14,12 @@ function Invoke-ExecCippFunction { $BlockList = @( 'Get-GraphToken' 'Get-GraphTokenFromCert' + 'New-CIPPCertificateAssertion' 'Get-ClassicAPIToken' + 'Get-CIPPSAMCertificate' + 'New-CIPPSAMCertificate' + 'Set-CIPPSAMCertificate' + 'Update-CIPPSAMCertificate' ) $Function = $Request.Body.FunctionName diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 index bd5cd4d8e0112..7beffb2959103 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecEditTemplate.ps1 @@ -12,7 +12,7 @@ function Invoke-ExecEditTemplate { 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) + $JSON = ConvertTo-Json -Compress -Depth 100 -InputObject ($request.Body | Select-Object * -ExcludeProperty GUID, source, isSynced, package) $Type = $request.Query.Type ?? $Request.Body.Type if ($Type -eq 'IntuneTemplate') { @@ -63,13 +63,14 @@ function Invoke-ExecEditTemplate { } Set-CIPPIntuneTemplate @IntuneTemplate } else { - $Table.Force = $true - Add-CIPPAzDataTableEntity @Table -Entity @{ + $Entity = @{ JSON = "$JSON" RowKey = "$GUID" PartitionKey = "$Type" GUID = "$GUID" + SHA = '' } + Add-CIPPAzDataTableEntity @Table -Entity $Entity -OperationType 'UpsertMerge' 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' } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecRemoveSnooze.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecRemoveSnooze.ps1 index 3c9c50adc18fb..506af62287af0 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecRemoveSnooze.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecRemoveSnooze.ps1 @@ -3,7 +3,7 @@ function Invoke-ExecRemoveSnooze { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - CIPP.Alert.ReadWrite + CIPP.AlertSnooze.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSAMCertificate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSAMCertificate.ps1 new file mode 100644 index 0000000000000..7be0de1667a54 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSAMCertificate.ps1 @@ -0,0 +1,75 @@ +function Invoke-ExecSAMCertificate { + <# + .SYNOPSIS + Get SAM certificate status or trigger a renewal + .DESCRIPTION + Returns status information about the SAM app certificate (thumbprint, validity, + registration state) or forces a renewal via Update-CIPPSAMCertificate. Never + returns private key material. + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + try { + $Action = $Request.Body.Action ?? $Request.Query.Action ?? 'Get' + + switch ($Action) { + 'Get' { + $Stored = Get-CIPPSAMCertificate -SkipCache -ErrorAction SilentlyContinue + if ($null -eq $Stored) { + $Body = @{ + Configured = $false + Results = 'No SAM certificate found. One will be created automatically by the weekly token update, or use the Renew action to create it now.' + } + } else { + $RegisteredOnApp = $false + try { + $AppRegistration = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/applications(appId='$($env:ApplicationID)')?`$select=id,keyCredentials" -NoAuthCheck $true -AsApp $true -ErrorAction Stop + # Graph returns customKeyIdentifier as the hex thumbprint string, but tolerate base64 as well + $Identifiers = @($AppRegistration.keyCredentials.customKeyIdentifier) + $RegisteredOnApp = $Identifiers -contains $Stored.Thumbprint -or $Identifiers -contains [Convert]::ToBase64String([Convert]::FromHexString($Stored.Thumbprint)) + } catch { + Write-Warning "Could not check app registration key credentials: $($_.Exception.Message)" + } + $Body = @{ + Configured = $true + Thumbprint = $Stored.Thumbprint + NotBefore = $Stored.NotBefore + NotAfter = $Stored.NotAfter + DaysRemaining = [math]::Floor(($Stored.NotAfter - (Get-Date).ToUniversalTime()).TotalDays) + RegisteredOnApp = $RegisteredOnApp + } + } + $StatusCode = [HttpStatusCode]::OK + } + 'Renew' { + $Result = Update-CIPPSAMCertificate -Force -ErrorAction Stop + $Body = @{ + Results = "SAM certificate renewed. Thumbprint: $($Result.Thumbprint), expires: $($Result.NotAfter)" + Thumbprint = $Result.Thumbprint + NotAfter = $Result.NotAfter + StorageMode = $Result.StorageMode + } + $StatusCode = [HttpStatusCode]::OK + } + default { + throw "Invalid action: $Action. Valid actions are 'Get' or 'Renew'" + } + } + } catch { + Write-LogMessage -API 'ExecSAMCertificate' -message "Failed to process SAM certificate request: $($_.Exception.Message)" -sev 'Error' -LogData (Get-CippException -Exception $_) + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ + Results = "Failed to process SAM certificate request: $($_.Exception.Message)" + } + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSnoozeAlert.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSnoozeAlert.ps1 index 262bf2fe87b4b..1cc28caaf8a49 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSnoozeAlert.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ExecSnoozeAlert.ps1 @@ -3,7 +3,7 @@ function Invoke-ExecSnoozeAlert { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - CIPP.Alert.ReadWrite + CIPP.AlertSnooze.ReadWrite #> [CmdletBinding()] param($Request, $TriggerMetadata) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAlertResults.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAlertResults.ps1 new file mode 100644 index 0000000000000..15246398a35b9 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListAlertResults.ps1 @@ -0,0 +1,85 @@ +function Invoke-ListAlertResults { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Alert.Read + .DESCRIPTION + Lists the currently-active fired alert items for a tenant, read from the + AlertLastRun table. AlertLastRun stores the items produced by the most recent + run of each scripted alert (Get-CIPPAlert*) after snoozed items have already + been filtered out, so this returns the active (non-snoozed) instances. Each + item is returned with a content preview/hash (matching the snooze format) and + the raw alert item so the frontend can snooze it via ExecSnoozeAlert. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + try { + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'tenantFilter is required.' } + }) + } + + $Table = Get-CIPPTable -tablename 'AlertLastRun' + # AlertLastRun: PartitionKey = run date (yyyyMMdd), RowKey = "{tenant}-{cmdlet}" + $SafeTenant = ConvertTo-CIPPODataFilterValue -Value $TenantFilter -Type String + $Rows = Get-CIPPAzDataTableEntity @Table -Filter "Tenant eq '$SafeTenant'" + + # Keep only the most recent run (highest date partition) per alert. RowKey is + # "{tenant}-{cmdlet}", uniquely identifying the alert for this tenant. Write-AlertTrace + # only writes a new row when the data changes, so the latest row is the current state. + $LatestByAlert = @{} + foreach ($Row in @($Rows)) { + $Key = $Row.RowKey + $Existing = $LatestByAlert[$Key] + if (-not $Existing -or [string]$Row.PartitionKey -gt [string]$Existing.PartitionKey) { + $LatestByAlert[$Key] = $Row + } + } + $StaleCutoff = [datetime]::UtcNow.AddDays(-7).ToString('yyyyMMdd') + + $Results = [System.Collections.Generic.List[object]]::new() + foreach ($Row in $LatestByAlert.Values) { + if ([string]$Row.PartitionKey -lt $StaleCutoff) { continue } + if ([string]::IsNullOrWhiteSpace($Row.LogData)) { continue } + try { + $Items = $Row.LogData | ConvertFrom-Json -ErrorAction Stop + } catch { + Write-Information "Failed to parse AlertLastRun LogData for $($Row.RowKey): $($_.Exception.Message)" + continue + } + + foreach ($Item in @($Items)) { + if ($null -eq $Item) { continue } + $Hash = Get-AlertContentHash -AlertItem $Item + $Results.Add([PSCustomObject]@{ + CmdletName = $Row.CmdletName + AlertComment = $Row.AlertComment + Tenant = $Row.Tenant + LastRun = $Row.PartitionKey + ContentHash = $Hash.ContentHash + ContentPreview = $Hash.ContentPreview + AlertItem = $Item + }) + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @($Results) + }) + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to list alert results: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = "Failed to list alert results: $($ErrorMessage.NormalizedError)" } + }) + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 index ac2d3ca6f91d8..88f641d1f0bf9 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListApiTest.ps1 @@ -27,8 +27,13 @@ function Invoke-ListApiTest { $Request = New-CIPPAzRestRequest -Method POST -Resource 'https://management.azure.com/' -Uri 'https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2022-10-01' -Body $Json $Response.ResourceGraphTest = $Request } - $Response.AllowedTenants = $script:CippAllowedTenantsStorage.Value - $Response.AllowedGroups = $script:CippAllowedGroupsStorage.Value + # Has to come from CIPPCore. These slots are module scoped, so reading $script:Cipp*Storage + # from here would return CIPPHTTP's own - always empty - variables and report that no tenant + # scoping is applied regardless of what is actually in force. + $RequestContext = Get-CippRequestContext + $Response.AllowedTenants = $RequestContext.AllowedTenants + $Response.AllowedGroups = $RequestContext.AllowedGroups + $Response.RequestContext = $RequestContext return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListFeatureFlags.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListFeatureFlags.ps1 index d4d924f206839..b9476feb1597b 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListFeatureFlags.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListFeatureFlags.ps1 @@ -1,7 +1,7 @@ function Invoke-ListFeatureFlags { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE CIPP.Core.Read .DESCRIPTION @@ -24,6 +24,18 @@ function Invoke-ListFeatureFlags { elseIf ($Flag.Id -eq 'AppInsights') { $Flag.Enabled = $false } + elseIf ($Flag.Id -eq 'FunctionOffloading') { + $Flag.Enabled = $false + } + } + } + + # Hosted instances hide the backend settings page (Azure resource URLs) + if ($env:CIPP_HOSTED -eq 'true') { + foreach ($Flag in $FeatureFlags) { + if ($Flag.Id -eq 'BackendSettings') { + $Flag.Enabled = $false + } } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListSnoozedAlerts.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListSnoozedAlerts.ps1 index b4e897b7999a4..0f689058aa179 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListSnoozedAlerts.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListSnoozedAlerts.ps1 @@ -3,7 +3,7 @@ function Invoke-ListSnoozedAlerts { .FUNCTIONALITY Entrypoint,AnyTenant .ROLE - CIPP.Alert.Read + CIPP.AlertSnooze.Read .DESCRIPTION Lists alerts that have been snoozed (temporarily suppressed), filterable by cmdlet name. Returns snooze duration and scope details. #> @@ -41,6 +41,7 @@ function Invoke-ListSnoozedAlerts { RowKey = $_.RowKey CmdletName = $_.PartitionKey Tenant = $_.Tenant + ContentHash = $_.ContentHash ContentPreview = $_.ContentPreview SnoozedBy = $_.SnoozedBy SnoozedAt = $_.SnoozedAt diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 index f3443d1471c64..bb5101bde039f 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Scheduler/Invoke-AddScheduledItem.ps1 @@ -7,11 +7,6 @@ function Invoke-AddScheduledItem { #> [CmdletBinding()] param($Request, $TriggerMetadata) - if ($null -eq $Request.Query.hidden) { - $hidden = $false - } else { - $hidden = $true - } $DisallowDuplicateName = $Request.Query.DisallowDuplicateName ?? $Request.Body.DisallowDuplicateName @@ -25,14 +20,17 @@ function Invoke-AddScheduledItem { $ExistingTask = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) } - if ($ExistingTask -and $Request.Body.RunNow -eq $true) { - $RerunParams = @{ - TenantFilter = $ExistingTask.Tenant - Type = 'ScheduledTask' - API = $Request.Body.RowKey - Clear = $true + if ($null -eq $Request.Query.hidden) { + if ($ExistingTask -and $null -ne $ExistingTask.Hidden) { + $hidden = [bool]$ExistingTask.Hidden + } else { + $hidden = $false } - $null = Test-CIPPRerun @RerunParams + } else { + $hidden = $true + } + + if ($ExistingTask -and $Request.Body.RunNow -eq $true) { # Clear ExecutedTime so the one-time task rerun guard in Push-ExecScheduledCommand does not block re-execution $null = Update-AzDataTableEntity -Force @Table -Entity @{ PartitionKey = $ExistingTask.PartitionKey diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 index e65eb6bfcbdd9..d4be9b96014de 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAccessChecks.ps1 @@ -48,9 +48,12 @@ function Invoke-ExecAccessChecks { TenantId = $Tenant.customerId TenantName = $Tenant.displayName DefaultDomainName = $Tenant.defaultDomainName + TenantType = if ($Tenant.delegatedPrivilegeStatus -eq 'directTenant') { 'Direct' } else { 'GDAP' } + ServiceAccount = $Tenant.directTenantUserPrincipalName + ServiceAccountLastAuth = $Tenant.directTenantAuthDate GraphStatus = 'Not run yet' ExchangeStatus = 'Not run yet' - GDAPRoles = '' + AssignedRoles = '' MissingRoles = '' LastRun = '' GraphTest = '' @@ -63,7 +66,9 @@ function Invoke-ExecAccessChecks { $Data = @($TenantCheck.Data | ConvertFrom-Json -ErrorAction Stop) $TenantResult.GraphStatus = $Data.GraphStatus $TenantResult.ExchangeStatus = $Data.ExchangeStatus - $TenantResult.GDAPRoles = $Data.GDAPRoles + # Fall back to the old property name so checks cached before the rename + # keep rendering until the tenant is checked again. + $TenantResult.AssignedRoles = $Data.AssignedRoles ?? $Data.GDAPRoles $TenantResult.MissingRoles = $Data.MissingRoles $TenantResult.LastRun = $Data.LastRun $TenantResult.GraphTest = $Data.GraphTest @@ -71,6 +76,11 @@ function Invoke-ExecAccessChecks { $TenantResult.OrgManagementRoles = $Data.OrgManagementRoles ? @($Data.OrgManagementRoles) : @() $TenantResult.OrgManagementRolesMissing = $Data.OrgManagementRolesMissing ? @($Data.OrgManagementRolesMissing) : @() $TenantResult.OrgManagementRepairNeeded = $Data.OrgManagementRolesMissing.Count -gt 0 + # The check reads the account live, so it also backfills direct tenants + # onboarded before the service account was recorded on the tenant. + if ($Data.ServiceAccount) { + $TenantResult.ServiceAccount = $Data.ServiceAccount + } } $TenantResult } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAppServiceDomains.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAppServiceDomains.ps1 new file mode 100644 index 0000000000000..2931bae489bd8 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecAppServiceDomains.ps1 @@ -0,0 +1,385 @@ +function Invoke-ExecAppServiceDomains { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.SuperAdmin.ReadWrite + .SYNOPSIS + Manage custom domains (hostname bindings) and managed certificates on the CIPP App Service. + .DESCRIPTION + Drives the super-admin "Custom Domains" page. All actions operate on the App Service that + hosts this CIPP instance (Microsoft.Web/sites/$env:WEBSITE_SITE_NAME) using the managed + identity via New-CIPPAzRestRequest — the same resource and auth path the Container + Management page uses. + + Actions (passed as Query.Action or Body.Action): + List - Site metadata (default hostname, inbound IP, verification id) plus every + hostname binding and any App Service Managed Certificate that matches. + CheckDns - Live DoH lookup of the two records a custom domain needs (ownership TXT + at asuid. and the CNAME/A alias). Powers wizard step 1 + resume. + AddBinding - Create the hostname binding (wizard step 2). Azure re-validates ownership. + AddCertificate - Create an App Service Managed Certificate and enable the SNI SSL binding + (wizard step 3). Safe to re-run — reuses an existing cert if present. + Remove - Delete a custom hostname binding (and its managed cert, best effort). + + Every action is independently re-runnable so the wizard can resume a half-finished domain or + retry a failed step without redoing the ones that already succeeded. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $Action = $Request.Query.Action ?? $Request.Body.Action + $ApiVersion = '2024-11-01' + + # Resolve the ARM coordinates of the App Service running this instance. Mirrors the resolution + # the Container Management endpoint uses (platform env + managed identity token), so a missing + # resource group fails loudly rather than guessing. + function Get-AppServiceSiteInfo { + $SiteName = $env:WEBSITE_SITE_NAME + $RGName = Get-CIPPFunctionAppResourceGroup -SiteName $SiteName + return @{ + Subscription = Get-CIPPAzFunctionAppSubId + SiteName = $SiteName + RGName = $RGName + } + } + + function Get-SiteArmBase { + param($Site) + return "https://management.azure.com/subscriptions/$($Site.Subscription)/resourceGroups/$($Site.RGName)/providers/Microsoft.Web/sites/$($Site.SiteName)" + } + + # Work out which DNS records a given custom hostname needs. Azure accepts either a CNAME (to the + # app's default hostname) or an A record (to the inbound IP) for the alias itself, plus a TXT + # ownership record at asuid.. Wildcards verify ownership at the parent domain. + function Get-DomainRecordPlan { + param( + [string]$Hostname, + [string]$DefaultHostName, + [string]$InboundIp, + [string]$VerificationId + ) + $IsWildcard = $Hostname.StartsWith('*.') + $BaseHost = $IsWildcard ? $Hostname.Substring(2) : $Hostname + $Labels = $BaseHost.Split('.') + # 2-label names (contoso.com) are treated as apex → A record. Everything else is a subdomain + # → CNAME. This is a heuristic (multi-part TLDs like co.uk can't be detected without a public + # suffix list); the UI lets the operator pick the other record type, and Azure accepts either. + $IsApex = -not $IsWildcard -and $Labels.Count -le 2 + $AsuidHost = $IsWildcard ? "asuid.$BaseHost" : "asuid.$Hostname" + + return [pscustomobject]@{ + Hostname = $Hostname + IsWildcard = $IsWildcard + IsApex = $IsApex + RecommendedType = $IsApex ? 'A' : 'CNAME' + AsuidHost = $AsuidHost + VerificationId = $VerificationId + CnameAlias = $Hostname + CnameTarget = $DefaultHostName + ARecordAlias = $Hostname + ARecordTarget = $InboundIp + } + } + + # DoH lookup that never throws — returns the trimmed data strings for a record type, or @(). + function Resolve-DohRecord { + param([string]$Name, [string]$Type) + try { + $Result = Resolve-DnsHttpsQuery -Domain $Name -RecordType $Type -ErrorAction Stop + if ($Result.Answer) { + return @($Result.Answer | ForEach-Object { ($_.data -replace '^"' -replace '"$').Trim().TrimEnd('.') }) + } + } catch { + Write-Information "DoH lookup failed for $Type $Name : $($_.Exception.Message)" + } + return @() + } + + try { + switch ($Action) { + 'List' { + $Site = Get-AppServiceSiteInfo + $ArmBase = Get-SiteArmBase -Site $Site + + $SiteObj = New-CIPPAzRestRequest -Uri "$($ArmBase)?api-version=$ApiVersion" -Method GET + $DefaultHostName = $SiteObj.properties.defaultHostName + $InboundIp = $SiteObj.properties.inboundIpAddress + $VerificationId = $SiteObj.properties.customDomainVerificationId + + $BindingResponse = New-CIPPAzRestRequest -Uri "$($ArmBase)/hostNameBindings?api-version=$ApiVersion" -Method GET + + # Pull managed certs in the RG once so we can attach expiry/thumbprint per domain. + $Certs = @() + try { + $CertResponse = New-CIPPAzRestRequest -Uri "https://management.azure.com/subscriptions/$($Site.Subscription)/resourceGroups/$($Site.RGName)/providers/Microsoft.Web/certificates?api-version=$ApiVersion" -Method GET + $Certs = @($CertResponse.value) + } catch { + Write-Information "Could not list certificates: $($_.Exception.Message)" + } + + $Domains = foreach ($Binding in $BindingResponse.value) { + $HostName = $Binding.name + # ARM returns bindings named "/"; keep just the hostname. + if ($HostName -match '/') { $HostName = ($HostName -split '/')[-1] } + $IsDefault = $HostName -like '*.azurewebsites.net' + $Cert = $Certs | Where-Object { $_.properties.canonicalName -eq $HostName } | Select-Object -First 1 + + [pscustomobject]@{ + Hostname = $HostName + IsDefault = $IsDefault + HostNameType = $Binding.properties.hostNameType + SslState = $Binding.properties.sslState ?? 'Disabled' + Thumbprint = $Binding.properties.thumbprint + DnsRecordType = $Binding.properties.customHostNameDnsRecordType + Secured = ($Binding.properties.sslState -in @('SniEnabled', 'IpBasedEnabled')) + CertName = $Cert.name + CertThumbprint = $Cert.properties.thumbprint + CertExpiration = $Cert.properties.expirationDate + CertIssuer = $Cert.properties.issuer + } + } + + $Body = @{ + Results = @{ + SiteName = $Site.SiteName + ResourceGroup = $Site.RGName + DefaultHostName = $DefaultHostName + InboundIpAddress = $InboundIp + CustomDomainVerificationId = $VerificationId + Domains = @($Domains | Sort-Object -Property IsDefault, Hostname) + } + } + } + + 'CheckDns' { + $HostName = $Request.Body.Hostname ?? $Request.Query.Hostname + if (-not [string]::IsNullOrWhiteSpace($HostName)) { $HostName = ([string]$HostName).Trim().ToLower() } + if ([string]::IsNullOrWhiteSpace($HostName)) { throw 'Hostname is required' } + + # DoH resolver lives in the DNSHealth module; import + initialize it the same way the + # domain health endpoint does before resolving. + Import-Module DNSHealth -ErrorAction SilentlyContinue + Set-DnsResolver -Resolver 'Google' -ErrorAction SilentlyContinue + + $Site = Get-AppServiceSiteInfo + $ArmBase = Get-SiteArmBase -Site $Site + $SiteObj = New-CIPPAzRestRequest -Uri "$($ArmBase)?api-version=$ApiVersion" -Method GET + $Plan = Get-DomainRecordPlan -Hostname $HostName ` + -DefaultHostName $SiteObj.properties.defaultHostName ` + -InboundIp $SiteObj.properties.inboundIpAddress ` + -VerificationId $SiteObj.properties.customDomainVerificationId + + # Ownership: TXT at asuid. must contain the verification id. + $TxtValues = Resolve-DohRecord -Name $Plan.AsuidHost -Type 'TXT' + $OwnershipVerified = $TxtValues -contains $Plan.VerificationId + + # Alias: accept a CNAME to the default hostname OR an A record to the inbound IP. + # Wildcards can't be resolved directly, so ownership alone gates them here — Azure + # validates the wildcard alias when the binding is created. + $AliasVerified = $false + $AliasDetail = $null + if ($Plan.IsWildcard) { + $AliasVerified = $true + $AliasDetail = 'Wildcard alias is validated by Azure when the binding is created.' + } else { + $CnameValues = Resolve-DohRecord -Name $HostName -Type 'CNAME' + $AValues = Resolve-DohRecord -Name $HostName -Type 'A' + $CnameMatch = $CnameValues | Where-Object { $_ -eq ($Plan.CnameTarget.TrimEnd('.')) } + $AMatch = $AValues | Where-Object { $_ -eq $Plan.ARecordTarget } + if ($CnameMatch) { + $AliasVerified = $true + $AliasDetail = "CNAME -> $($Plan.CnameTarget)" + } elseif ($AMatch) { + $AliasVerified = $true + $AliasDetail = "A -> $($Plan.ARecordTarget)" + } else { + $Found = @($CnameValues + $AValues) -join ', ' + $AliasDetail = $Found ? "Found: $Found (expected CNAME $($Plan.CnameTarget) or A $($Plan.ARecordTarget))" : 'No CNAME or A record found yet.' + } + } + + $Body = @{ + Results = @{ + Hostname = $HostName + RecommendedType = $Plan.RecommendedType + IsWildcard = $Plan.IsWildcard + OwnershipVerified = $OwnershipVerified + AliasVerified = $AliasVerified + AllVerified = ($OwnershipVerified -and $AliasVerified) + AliasDetail = $AliasDetail + Records = @( + [pscustomobject]@{ + Purpose = 'Ownership' + Type = 'TXT' + Host = $Plan.AsuidHost + Value = $Plan.VerificationId + Verified = $OwnershipVerified + } + [pscustomobject]@{ + Purpose = 'Alias' + Type = $Plan.RecommendedType + Host = $Plan.IsApex ? '@' : $HostName + Value = $Plan.IsApex ? $Plan.ARecordTarget : $Plan.CnameTarget + Verified = $AliasVerified + } + ) + } + } + } + + 'AddBinding' { + $HostName = $Request.Body.Hostname ?? $Request.Query.Hostname + if (-not [string]::IsNullOrWhiteSpace($HostName)) { $HostName = ([string]$HostName).Trim().ToLower() } + if ([string]::IsNullOrWhiteSpace($HostName)) { throw 'Hostname is required' } + if ($HostName -like '*.azurewebsites.net') { throw 'The default *.azurewebsites.net hostname is managed by Azure and cannot be added.' } + + $Site = Get-AppServiceSiteInfo + $ArmBase = Get-SiteArmBase -Site $Site + + # Azure enforces domain-ownership validation (asuid TXT + alias) during this PUT and + # returns a descriptive error if the records aren't in place yet. + $BindingUri = "$($ArmBase)/hostNameBindings/$HostName`?api-version=$ApiVersion" + $BindingBody = @{ + properties = @{ + siteName = $Site.SiteName + hostNameType = 'Verified' + } + } + New-CIPPAzRestRequest -Uri $BindingUri -Method PUT -Body $BindingBody -ContentType 'application/json' | Out-Null + + Write-LogMessage -API $APIName -headers $Headers -message "Added custom domain binding '$HostName' to $($Site.SiteName)" -sev Info + $Body = @{ Results = "Custom domain '$HostName' bound to the App Service. You can now enable a managed certificate." } + } + + 'AddCertificate' { + $HostName = $Request.Body.Hostname ?? $Request.Query.Hostname + if (-not [string]::IsNullOrWhiteSpace($HostName)) { $HostName = ([string]$HostName).Trim().ToLower() } + if ([string]::IsNullOrWhiteSpace($HostName)) { throw 'Hostname is required' } + if ($HostName -like '*.azurewebsites.net') { throw 'The default hostname is already secured by Azure.' } + if ($HostName.StartsWith('*.')) { throw 'App Service Managed Certificates do not support wildcard domains. Upload your own certificate in the Azure Portal instead.' } + + $Site = Get-AppServiceSiteInfo + $ArmBase = Get-SiteArmBase -Site $Site + + $SiteObj = New-CIPPAzRestRequest -Uri "$($ArmBase)?api-version=$ApiVersion" -Method GET + $Location = $SiteObj.location + $ServerFarmId = $SiteObj.properties.serverFarmId + + # The binding must already exist — the managed cert is validated against it. + $Bindings = New-CIPPAzRestRequest -Uri "$($ArmBase)/hostNameBindings?api-version=$ApiVersion" -Method GET + $ExistingBinding = $Bindings.value | Where-Object { (($_.name -split '/')[-1]) -eq $HostName } | Select-Object -First 1 + if (-not $ExistingBinding) { + throw "No hostname binding exists for '$HostName'. Create the domain binding first." + } + + # Reuse a managed cert for this hostname if one is already issued, otherwise create it. + $CertName = "$($HostName -replace '[^a-zA-Z0-9-]', '-')-$($Site.SiteName)" + $CertUri = "https://management.azure.com/subscriptions/$($Site.Subscription)/resourceGroups/$($Site.RGName)/providers/Microsoft.Web/certificates/$CertName`?api-version=$ApiVersion" + + $Thumbprint = $null + try { + $ExistingCert = New-CIPPAzRestRequest -Uri $CertUri -Method GET + $Thumbprint = $ExistingCert.properties.thumbprint + } catch { + Write-Information "No existing certificate '$CertName', creating a new managed certificate." + } + + if (-not $Thumbprint) { + $CertBody = @{ + location = $Location + properties = @{ + serverFarmId = $ServerFarmId + canonicalName = $HostName + domainValidationMethod = 'cname-delegation' + } + } + # Managed-cert issuance validates the domain during the PUT. If the alias is proxied + # (e.g. Cloudflare orange-cloud) validation can fail — the operator should turn the + # proxy off until the cert is issued, then re-enable it. + $NewCert = New-CIPPAzRestRequest -Uri $CertUri -Method PUT -Body $CertBody -ContentType 'application/json' + $Thumbprint = $NewCert.properties.thumbprint + + # Occasionally the thumbprint isn't populated on the create response; poll briefly. + $Attempt = 0 + while (-not $Thumbprint -and $Attempt -lt 6) { + Start-Sleep -Seconds 5 + $Attempt++ + try { + $PolledCert = New-CIPPAzRestRequest -Uri $CertUri -Method GET + $Thumbprint = $PolledCert.properties.thumbprint + } catch { + Write-Information "Polling certificate '$CertName' (attempt $Attempt): $($_.Exception.Message)" + } + } + } + + if (-not $Thumbprint) { + throw "The managed certificate for '$HostName' was created but is still provisioning. Re-run this step in a minute to finish the SNI binding." + } + + # Enable the SNI SSL binding by merging sslState + thumbprint into the existing binding. + $BindingUri = "$($ArmBase)/hostNameBindings/$HostName`?api-version=$ApiVersion" + $BindingBody = @{ + properties = @{ + siteName = $Site.SiteName + hostNameType = 'Verified' + sslState = 'SniEnabled' + thumbprint = $Thumbprint + } + } + New-CIPPAzRestRequest -Uri $BindingUri -Method PUT -Body $BindingBody -ContentType 'application/json' | Out-Null + + Write-LogMessage -API $APIName -headers $Headers -message "Provisioned managed certificate and SNI binding for '$HostName'" -sev Info + $Body = @{ Results = "Managed certificate issued and SNI SSL enabled for '$HostName'. The domain is now secured." } + } + + 'Remove' { + $HostName = $Request.Body.Hostname ?? $Request.Query.Hostname + if (-not [string]::IsNullOrWhiteSpace($HostName)) { $HostName = ([string]$HostName).Trim().ToLower() } + if ([string]::IsNullOrWhiteSpace($HostName)) { throw 'Hostname is required' } + if ($HostName -like '*.azurewebsites.net') { throw 'The default *.azurewebsites.net hostname cannot be removed.' } + + $Site = Get-AppServiceSiteInfo + $ArmBase = Get-SiteArmBase -Site $Site + + $BindingUri = "$($ArmBase)/hostNameBindings/$HostName`?api-version=$ApiVersion" + New-CIPPAzRestRequest -Uri $BindingUri -Method DELETE | Out-Null + + # Best effort: drop the managed cert we created for this hostname so it doesn't linger. + $CertName = "$($HostName -replace '[^a-zA-Z0-9-]', '-')-$($Site.SiteName)" + $CertUri = "https://management.azure.com/subscriptions/$($Site.Subscription)/resourceGroups/$($Site.RGName)/providers/Microsoft.Web/certificates/$CertName`?api-version=$ApiVersion" + try { + New-CIPPAzRestRequest -Uri $CertUri -Method DELETE | Out-Null + } catch { + Write-Information "Could not remove certificate '$CertName' (may not exist): $($_.Exception.Message)" + } + + Write-LogMessage -API $APIName -headers $Headers -message "Removed custom domain '$HostName' from $($Site.SiteName)" -sev Info + $Body = @{ Results = "Custom domain '$HostName' removed from the App Service." } + } + + default { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = "Unknown action: $Action. Valid actions: List, CheckDns, AddBinding, AddCertificate, Remove" } + } + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -headers $Headers -message "AppServiceDomains '$Action' failed: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = ($Action -eq 'List') ? [HttpStatusCode]::InternalServerError : [HttpStatusCode]::BadRequest + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ Results = "Failed: $($ErrorMessage.NormalizedError)" } + } + } + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupReplicationConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupReplicationConfig.ps1 new file mode 100644 index 0000000000000..1d71ffc2be0cd --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupReplicationConfig.ps1 @@ -0,0 +1,115 @@ +function Invoke-ExecBackupReplicationConfig { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + CIPP.AppSettings.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $Table = Get-CIPPTable -TableName Config + $Scopes = @('Core', 'Tenant') + + # Returns whether a SAS URL secret currently exists for the given scope, without ever exposing it. + function Get-ReplicationSecretIsSet { + param([string]$Scope) + try { + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'BackupReplication$Scope' and RowKey eq 'BackupReplication$Scope'").SASUrl + if ([string]::IsNullOrWhiteSpace($Secret)) { + return $null + } + return "SentToKeyVault" + } + else { + $Secret = Get-CippKeyVaultSecret -Name "BackupReplication$Scope" -AsPlainText + if ([string]::IsNullOrWhiteSpace($Secret)) { + return $null + } + return "SentToKeyVault" + } + } catch { + return $null + } + } + + $results = try { + if ($Request.Query.List) { + $Output = @{} + foreach ($Scope in $Scopes) { + $Config = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'BackupReplication' and RowKey eq '$Scope'" + $Output[$Scope] = @{ + Enabled = [bool]($Config.Enabled) + IsSet = Get-ReplicationSecretIsSet -Scope $Scope + } + } + [pscustomobject]$Output + } else { + $BackupType = $Request.Body.BackupType + if ($BackupType -notin $Scopes) { + throw "BackupType must be one of: $($Scopes -join ', ')" + } + + $SASUrl = $Request.Body.SASUrl + $Enabled = if ($null -ne $Request.Body.Enabled) { [bool]$Request.Body.Enabled } else { $true } + + # Only update the stored secret when a real new value is supplied (the UI sends the + # 'SentToKeyVault' sentinel when the existing, masked secret is left untouched). + if (-not [string]::IsNullOrWhiteSpace($SASUrl) -and $SASUrl -ne 'SentToKeyVault') { + $ParsedUri = $SASUrl -as [uri] + if (-not $ParsedUri -or $ParsedUri.Query -notmatch 'sig=') { + throw 'SAS URL must contain a SAS token (sig=...)' + } + + # Confirm the SAS actually grants write+create by writing and removing a tiny probe blob. + $guid = [guid]::NewGuid().ToString() + $UrlParts = $SASUrl -split '\?', 2 + $BaseUrl = $UrlParts[0].TrimEnd('/') + $ProbeUrl = "$BaseUrl/.cipp-replication-test-$guid`?$($UrlParts[1])" + try { + $null = Invoke-CIPPRestMethod -Uri $ProbeUrl -Method 'PUT' -Body "cipp-replication-test-$guid" -ContentType 'text/plain' -Headers @{ 'x-ms-blob-type' = 'BlockBlob' } + try { $null = Invoke-CIPPRestMethod -Uri $ProbeUrl -Method 'DELETE' -Headers @{} } catch { } + } catch { + $ProbeError = Get-CippException -Exception $_ + throw "SAS URL validation failed (could not write to the container): $($ProbeError.NormalizedError)" + } + + if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { + $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' + $Secret = [PSCustomObject]@{ + 'PartitionKey' = "BackupReplication$BackupType" + 'RowKey' = "BackupReplication$BackupType" + 'SASUrl' = $SASUrl + } + Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force | Out-Null + } + else { + Set-CippKeyVaultSecret -Name "BackupReplication$BackupType" -SecretValue (ConvertTo-SecureString -String $SASUrl -AsPlainText -Force) | Out-Null + } + } + + $Config = @{ + 'PartitionKey' = 'BackupReplication' + 'RowKey' = $BackupType + 'Enabled' = $Enabled + } + Add-CIPPAzDataTableEntity @Table -Entity $Config -Force | Out-Null + + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Updated $BackupType backup replication settings (Enabled: $Enabled)" -Sev 'Info' + "Successfully updated $BackupType backup replication settings" + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message "Failed to update backup replication configuration: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage + "Failed to update configuration: $($ErrorMessage.NormalizedError)" + } + + $body = [pscustomobject]@{'Results' = $Results } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 index 064784c49851e..0ff7da933d997 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecBackupRetentionConfig.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecBackupRetentionConfig { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE CIPP.AppSettings.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecContainerManagement.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecContainerManagement.ps1 index 5d6e347fc6b16..fdbc9f70b752e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecContainerManagement.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecContainerManagement.ps1 @@ -68,10 +68,12 @@ function Invoke-ExecContainerManagement { } $version = $manifest.annotations.'org.opencontainers.image.version' - if (-not $version -and $manifest.config.digest) { + $created = $manifest.annotations.'org.opencontainers.image.created' + if ((-not $version -or -not $created) -and $manifest.config.digest) { try { $config = Invoke-RestMethod -Uri "https://ghcr.io/v2/$imagePath/blobs/$($manifest.config.digest)" -Method GET -Headers $authHeader -ErrorAction Stop - $version = $config.config.Labels.'org.opencontainers.image.version' + if (-not $version) { $version = $config.config.Labels.'org.opencontainers.image.version' } + if (-not $created) { $created = $config.config.Labels.'org.opencontainers.image.created' } } catch { Write-Information "Could not read image config labels for $($imagePath):$Tag — $($_.Exception.Message)" } @@ -80,6 +82,7 @@ function Invoke-ExecContainerManagement { return [pscustomobject]@{ Digest = [string]$digest Version = [string]$version + Created = [string]$created } } @@ -112,17 +115,22 @@ function Invoke-ExecContainerManagement { } } - # Read update settings and last check result - $Settings = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 + # Read update settings and last check result, reconciled against the running + # build — a restart may have applied the previously detected update, which + # would otherwise keep showing "update available" until the next check. + # Sync also resolves defaults for never-saved fields (auto-restart on, + # hourly checks, preferred time 23:00). + $Settings = Sync-CippContainerUpdateState $UpdateInfo = @{ - AutoUpdate = $false - CheckInterval = '0' - CheckTime = $null + AutoUpdate = $true + CheckInterval = '1h' + CheckTime = '23' LastCheck = $null UpdateAvailable = $false RunningVersion = $null RemoteVersion = $null RemoteDigest = $null + RemoteBuildDate = $null } if ($Settings) { $UpdateInfo.AutoUpdate = $Settings.AutoUpdate -eq 'true' @@ -133,6 +141,7 @@ function Invoke-ExecContainerManagement { $UpdateInfo.RunningVersion = $Settings.RunningVersion ?? $null $UpdateInfo.RemoteVersion = $Settings.RemoteVersion ?? $null $UpdateInfo.RemoteDigest = $Settings.RemoteDigest ?? $null + $UpdateInfo.RemoteBuildDate = $Settings.RemoteBuildDate ?? $null } $Body = @{ @@ -140,6 +149,7 @@ function Invoke-ExecContainerManagement { CurrentVersion = $CurrentVersion CommitSha = $CommitSha ImageTag = $ImageTag + BuildDate = $env:BUILD_DATE ?? 'unknown' CurrentChannel = $CurrentChannel ConfiguredChannel = $ConfiguredChannel CurrentImage = $CurrentImage @@ -199,6 +209,7 @@ function Invoke-ExecContainerManagement { $RemoteInfo = Get-GHCRImageInfo -ImageRef $CurrentImage -Tag $CheckTag $RemoteVersion = $RemoteInfo.Version $RemoteDigest = $RemoteInfo.Digest + $RemoteBuildDate = $RemoteInfo.Created $RunningVersion = $env:APP_VERSION $UpdateAvailable = $false @@ -214,16 +225,21 @@ function Invoke-ExecContainerManagement { RunningVersion = [string]($RunningVersion ?? '') RemoteVersion = [string]($RemoteVersion ?? '') RemoteDigest = [string]($RemoteDigest ?? '') + RemoteBuildDate = [string]($RemoteBuildDate ?? '') + CheckedTag = [string]($CheckTag ?? '') } $Existing = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 if ($Existing) { - $Entity.AutoUpdate = $Existing.AutoUpdate ?? 'false' - $Entity.CheckInterval = $Existing.CheckInterval ?? '0' - $Entity.CheckTime = $Existing.CheckTime ?? '' + # Carry saved schedule fields forward; never-saved fields materialize + # the defaults (auto-restart on, hourly, 23:00). An empty CheckTime is + # an explicit "no preferred time" and is preserved. + $Entity.AutoUpdate = $Existing.AutoUpdate ?? 'true' + $Entity.CheckInterval = $Existing.CheckInterval ?? '1h' + $Entity.CheckTime = $Existing.CheckTime ?? '23' } Add-CIPPAzDataTableEntity @SettingsTable -Entity $Entity -Force | Out-Null - $Settings = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 + $Settings = Sync-CippContainerUpdateState if ($UpdateAvailable -and $Settings.AutoUpdate -eq 'true') { Write-LogMessage -API $APIName -headers $Headers -message "Auto-update: new container version detected (running: $RunningVersion, remote: $RemoteVersion). Restarting." -sev Info try { Request-CIPPRestart -Reason 'Auto-update: new container version available' } catch {} @@ -241,6 +257,7 @@ function Invoke-ExecContainerManagement { RunningVersion = $RunningVersion RemoteVersion = $RemoteVersion RemoteDigest = $RemoteDigest + RemoteBuildDate = $RemoteBuildDate CheckedTag = $CheckTag } } @@ -262,11 +279,20 @@ function Invoke-ExecContainerManagement { if ($CheckInterval -notin $ValidIntervals) { throw "Invalid check interval: $CheckInterval. Valid: $($ValidIntervals -join ', ')" } - if ($CheckTime -and ($CheckTime -lt 0 -or $CheckTime -gt 23)) { - throw "Invalid check time: $CheckTime. Must be 0-23 (UTC hour)." + # CheckTime arrives as a string — validate as [int]. A string comparison + # makes '3' -gt 23 true ('3' > '2' lexicographically), rejecting 03:00-09:00. + if ($null -ne $CheckTime -and "$CheckTime" -ne '') { + $ParsedHour = 0 + if (-not [int]::TryParse([string]$CheckTime, [ref]$ParsedHour) -or $ParsedHour -lt 0 -or $ParsedHour -gt 23) { + throw "Invalid check time: $CheckTime. Must be an hour between 0 and 23." + } + $CheckTime = $ParsedHour + } else { + $CheckTime = $null } - # Read existing settings to preserve check results + # Read existing settings to preserve check results — the upsert replaces the + # whole entity, so every check-result field must be carried over here. $Existing = Get-CIPPAzDataTableEntity @SettingsTable -Filter "PartitionKey eq 'Settings' and RowKey eq 'UpdateConfig'" | Select-Object -First 1 $Entity = @{ PartitionKey = 'Settings' @@ -276,14 +302,17 @@ function Invoke-ExecContainerManagement { CheckTime = [string]($CheckTime ?? '') LastCheck = [string]($Existing.LastCheck ?? '') UpdateAvailable = [string]($Existing.UpdateAvailable ?? 'false') - RunningDigest = [string]($Existing.RunningDigest ?? '') + RunningVersion = [string]($Existing.RunningVersion ?? '') + RemoteVersion = [string]($Existing.RemoteVersion ?? '') RemoteDigest = [string]($Existing.RemoteDigest ?? '') + RemoteBuildDate = [string]($Existing.RemoteBuildDate ?? '') + CheckedTag = [string]($Existing.CheckedTag ?? '') } Add-CIPPAzDataTableEntity @SettingsTable -Entity $Entity -Force | Out-Null $IntervalLabel = if ($CheckInterval -eq '0') { 'disabled' } else { "every $CheckInterval" } $AutoLabel = if ($AutoUpdate) { 'auto-restart enabled' } else { 'manual restart' } - $TimeLabel = if ($CheckTime -and $CheckInterval -ne '0') { " at ${CheckTime}:00 UTC" } else { '' } + $TimeLabel = if ($null -ne $CheckTime -and $CheckInterval -ne '0') { " at $('{0:d2}' -f $CheckTime):00" } else { '' } $Result = "Update settings saved. Check interval: ${IntervalLabel}${TimeLabel}, $AutoLabel." Write-LogMessage -API $APIName -headers $Headers -message $Result -sev Info $Body = @{ Results = $Result } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 index 187a8a91778d3..a8e120844c4f2 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1 @@ -269,6 +269,12 @@ function Invoke-ExecCustomRole { } } + # Role definitions feed the access scope rules cached on every worker. Bump the shared version + # stamp so the change lands within seconds rather than waiting out the rule cache TTL. + if ($Action -in @('AddUpdate', 'Clone', 'Delete')) { + Clear-CippAccessScopeCache + } + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 index 50e56981f25ff..b21924d486a7c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecDnsConfig.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecDnsConfig { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE Tenant.Domains.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 index 416c118bd2383..3322b17b25dbe 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecJITAdminSettings.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecJITAdminSettings { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE CIPP.AppSettings.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecLogRetentionConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecLogRetentionConfig.ps1 index 2f8cb0168ec77..d57c4f4d4185a 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecLogRetentionConfig.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecLogRetentionConfig.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecLogRetentionConfig { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE CIPP.AppSettings.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 index 8326ceacbfb49..a2081374dffc9 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecOffloadFunctions.ps1 @@ -16,7 +16,7 @@ function Invoke-ExecOffloadFunctions { $VersionTable = Get-CippTable -tablename 'Version' $Version = Get-CIPPAzDataTableEntity @VersionTable -Filter "RowKey ne 'Version'" $MainVersion = $Version | Where-Object { $_.RowKey -eq $env:WEBSITE_SITE_NAME } - $OffloadVersions = $Version | Where-Object { $_.RowKey -match '-' } + $OffloadVersions = $Version | Where-Object { Test-CippOffloadFunctionApp -SiteName $_.RowKey } $Alerts = [System.Collections.Generic.List[string]]::new() @@ -35,7 +35,7 @@ function Invoke-ExecOffloadFunctions { } } - $VersionTable = $Version | Select-Object @{n = 'Name'; e = { $_.RowKey } }, @{n = 'Version'; e = { $_.Version } }, @{n = 'Default'; e = { $_.RowKey -notmatch '-' } } + $VersionTable = $Version | Select-Object @{n = 'Name'; e = { $_.RowKey } }, @{n = 'Version'; e = { $_.Version } }, @{n = 'Default'; e = { -not (Test-CippOffloadFunctionApp -SiteName $_.RowKey) } } $CurrentState = if (!$CurrentState) { [PSCustomObject]@{ diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 index ea227679ef581..986f6baa52ead 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecPasswordConfig.ps1 @@ -1,7 +1,7 @@ function Invoke-ExecPasswordConfig { <# .FUNCTIONALITY - Entrypoint + Entrypoint, AnyTenant .ROLE CIPP.AppSettings.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 index 0467a155e4ba6..76a392e6b4a5a 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecTenantGroup.ps1 @@ -26,8 +26,8 @@ function Invoke-ExecTenantGroup { # Validate dynamic rules to prevent code injection if ($groupType -eq 'dynamic' -and $dynamicRules) { - $AllowedDynamicOperators = @('eq', 'ne', 'like', 'notlike', 'in', 'notin', 'contains', 'notcontains') - $AllowedDynamicProperties = @('delegatedAccessStatus', 'availableLicense', 'availableServicePlan', 'tenantGroupMember', 'customVariable') + $AllowedDynamicOperators = @('eq', 'ne', 'like', 'notlike', 'in', 'notin', 'contains', 'notcontains', 'gt', 'ge', 'lt', 'le') + $AllowedDynamicProperties = @('delegatedAccessStatus', 'availableLicense', 'availableServicePlan', 'tenantGroupMember', 'customVariable', 'gdapRelationshipAge') foreach ($rule in $dynamicRules) { if ($rule.operator -and $rule.operator.ToLower() -notin $AllowedDynamicOperators) { return ([HttpResponseContext]@{ @@ -161,6 +161,12 @@ function Invoke-ExecTenantGroup { } } + # Roles can be scoped to a tenant group, so changing membership changes what those roles + # resolve to and the cached scope rules have to be rebuilt + if ($Action -in @('AddEdit', 'Delete')) { + Clear-CippAccessScopeCache + } + return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $Body diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 index 7479dedda3be3..a57d615cada29 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ListCustomRole.ps1 @@ -59,73 +59,49 @@ function Invoke-ListCustomRole { } } if ($Role.AllowedTenants) { + $RawAllowedTenants = $Role.AllowedTenants try { - $AllowedTenants = $Role.AllowedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { - if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { - # Return group objects as-is for frontend display - [PSCustomObject]@{ - type = 'Group' - value = $_.value - label = $_.label - } - } else { - # Convert tenant customer ID to domain name object for frontend - $TenantId = $_ - $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } - if ($TenantInfo) { - [PSCustomObject]@{ - type = 'Tenant' - value = $TenantInfo.defaultDomainName - label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" - addedFields = @{ - defaultDomainName = $TenantInfo.defaultDomainName - displayName = $TenantInfo.displayName - customerId = $TenantInfo.customerId - } - } - } + # No null filter and no 'AllTenants' fallback: every stored entry produces exactly + # one displayed entry, so the list shown is the list stored + $Role.AllowedTenants = @( + $RawAllowedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + Resolve-CippRoleTenantEntry -Entry $_ -TenantList $TenantList } - } | Where-Object { $_ -ne $null } - $AllowedTenants = $AllowedTenants ?? @('AllTenants') - $Role.AllowedTenants = @($AllowedTenants) + ) } catch { - $Role.AllowedTenants = @('AllTenants') + Write-Warning "Could not parse AllowedTenants for role '$($Role.RowKey)': $($_.Exception.Message)" + $Role.AllowedTenants = @( + [PSCustomObject]@{ + type = 'Tenant' + value = [string]$RawAllowedTenants + label = 'Stored value could not be read' + Unresolved = $true + } + ) } } else { $Role | Add-Member -NotePropertyName AllowedTenants -NotePropertyValue @() -Force } if ($Role.BlockedTenants) { + $RawBlockedTenants = $Role.BlockedTenants try { - $BlockedTenants = $Role.BlockedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { - if ($_ -is [PSCustomObject] -and $_.type -eq 'Group') { - # Return group objects as-is for frontend display - [PSCustomObject]@{ - type = 'Group' - value = $_.value - label = $_.label - } - } else { - # Convert tenant customer ID to domain name object for frontend - $TenantId = $_ - $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } - if ($TenantInfo) { - [PSCustomObject]@{ - type = 'Tenant' - value = $TenantInfo.defaultDomainName - label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" - addedFields = @{ - defaultDomainName = $TenantInfo.defaultDomainName - displayName = $TenantInfo.displayName - customerId = $TenantInfo.customerId - } - } - } + # An unresolvable id here is exactly the case that mattered: a block on a tenant + # the current tenant list does not contain used to render as no block at all + $Role.BlockedTenants = @( + $RawBlockedTenants | ConvertFrom-Json -ErrorAction Stop | ForEach-Object { + Resolve-CippRoleTenantEntry -Entry $_ -TenantList $TenantList } - } | Where-Object { $_ -ne $null } - $BlockedTenants = $BlockedTenants ?? @() - $Role.BlockedTenants = @($BlockedTenants) + ) } catch { - $Role.BlockedTenants = @() + Write-Warning "Could not parse BlockedTenants for role '$($Role.RowKey)': $($_.Exception.Message)" + $Role.BlockedTenants = @( + [PSCustomObject]@{ + type = 'Tenant' + value = [string]$RawBlockedTenants + label = 'Stored value could not be read' + Unresolved = $true + } + ) } } else { $Role | Add-Member -NotePropertyName BlockedTenants -NotePropertyValue @() -Force diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Resolve-CippRoleTenantEntry.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Resolve-CippRoleTenantEntry.ps1 new file mode 100644 index 0000000000000..bb13ed26c43ef --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Settings/Resolve-CippRoleTenantEntry.ps1 @@ -0,0 +1,77 @@ +function Resolve-CippRoleTenantEntry { + <# + .SYNOPSIS + Render one stored tenant entry from a role definition for display. + + .DESCRIPTION + A stored entry is either a tenant group object, the literal 'AllTenants' sentinel, or a + customer id. + + An id that no longer resolves against the current tenant list used to be dropped silently, + and a list that dropped to empty was then reported as unrestricted. The effect was that a + role blocking a tenant CIPP could not currently see rendered as blocking nothing at all - + a real restriction shown as absent, which is the worst direction for this to fail in. + + Unresolvable ids are now returned with the id as their value and marked Unresolved, so the + entry stays visible and still carries its customerId. + + Used by Invoke-ListCustomRole for both AllowedTenants and BlockedTenants so the two lists + cannot drift apart. + + .PARAMETER Entry + A single deserialised entry from AllowedTenants or BlockedTenants. + + .PARAMETER TenantList + Tenants to resolve customer ids against. + + .EXAMPLE + Resolve-CippRoleTenantEntry -Entry $StoredEntry -TenantList (Get-Tenants -IncludeErrors) + + .FUNCTIONALITY + Internal + #> + [CmdletBinding()] + param( + $Entry, + $TenantList + ) + + if ($Entry -is [PSCustomObject] -and $Entry.type -eq 'Group') { + return [PSCustomObject]@{ + type = 'Group' + value = $Entry.value + label = $Entry.label + } + } + + # Not a tenant id, and it must survive the lookup below rather than be resolved away + if ($Entry -is [string] -and $Entry -eq 'AllTenants') { + return 'AllTenants' + } + + $TenantId = $Entry + $TenantInfo = $TenantList | Where-Object { $_.customerId -eq $TenantId } | Select-Object -First 1 + + if ($TenantInfo) { + return [PSCustomObject]@{ + type = 'Tenant' + value = $TenantInfo.defaultDomainName + label = "$($TenantInfo.displayName) ($($TenantInfo.defaultDomainName))" + addedFields = @{ + defaultDomainName = $TenantInfo.defaultDomainName + displayName = $TenantInfo.displayName + customerId = $TenantInfo.customerId + } + } + } + + return [PSCustomObject]@{ + type = 'Tenant' + value = $TenantId + label = "$TenantId (tenant not found)" + Unresolved = $true + addedFields = @{ + customerId = $TenantId + } + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 index b3e7dd951d005..15a58688061a7 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecAddTenant.ps1 @@ -13,6 +13,11 @@ function Invoke-ExecAddTenant { $tenantId = $Request.body.tenantId $defaultDomainName = $Request.body.defaultDomainName + # The account that consented is recorded so the connection can be traced and refreshed + # later. The auth date is stamped server side rather than trusting the client. + $ServiceAccount = $Request.body.username ?? '' + $AuthDate = (Get-Date).ToUniversalTime() + # Get the Tenants table $TenantsTable = Get-CippTable -tablename 'Tenants' #force a refresh of the authentication info @@ -23,11 +28,24 @@ function Invoke-ExecAddTenant { if ($tenantId -eq $env:TenantID) { # If the tenant is the partner tenant, return an error because you cannot add the partner tenant as direct tenant $Results = @{'message' = 'You cannot add the partner tenant as a direct tenant. Please connect the tenant using the "Connect to Partner Tenant" option. '; 'severity' = 'error'; } + } elseif ($ExistingTenant -and $ExistingTenant.delegatedPrivilegeStatus -ne 'directTenant') { + # Converting an existing GDAP tenant in place would silently change how CIPP + # authenticates to it. Require the tenant to be offboarded first so the switch is + # deliberate. + # The sign-in that got us here already stored a per-tenant refresh token, so discard it + # again - keeping it would leave a credential behind for a conversion we just refused. + Remove-CIPPDirectTenantToken -TenantId $tenantId + + $Results = @{'message' = "$($ExistingTenant.displayName) is already onboarded as a GDAP tenant and cannot be converted to a Direct Tenant. To manage it as a Direct Tenant, remove the tenant first under Settings > Tenants, then add it again using the Direct Tenant flow."; 'severity' = 'error' } + Write-LogMessage -tenant $ExistingTenant.defaultDomainName -tenantid $ExistingTenant.customerId -API 'NewTenant' -message "Blocked conversion of GDAP tenant $($ExistingTenant.displayName) to a Direct Tenant, attempted by $ServiceAccount." -Sev 'Warn' } elseif ($ExistingTenant) { - # Update existing tenant - $ExistingTenant.delegatedPrivilegeStatus = 'directTenant' + # Existing direct tenant - refresh the stored credentials and service account details. + $ExistingTenant | Add-Member -NotePropertyName 'directTenantUserPrincipalName' -NotePropertyValue $ServiceAccount -Force + $ExistingTenant | Add-Member -NotePropertyName 'directTenantAuthDate' -NotePropertyValue $AuthDate -Force Add-CIPPAzDataTableEntity @TenantsTable -Entity $ExistingTenant -Force | Out-Null - $Results = @{'message' = 'Successfully updated tenant.'; 'severity' = 'success' } + + $Results = @{'message' = "Successfully updated the credentials for $($ExistingTenant.displayName)."; 'severity' = 'success' } + Write-LogMessage -tenant $ExistingTenant.defaultDomainName -tenantid $ExistingTenant.customerId -API 'NewTenant' -message "Refreshed Direct Tenant credentials for $($ExistingTenant.displayName) using $ServiceAccount." -Sev 'Info' } else { # Create new tenant entry try { @@ -67,21 +85,23 @@ function Invoke-ExecAddTenant { # Create new tenant object $NewTenant = [PSCustomObject]@{ - PartitionKey = 'Tenants' - RowKey = $tenantId - customerId = $tenantId - displayName = $displayName - defaultDomainName = $defaultDomainName - initialDomainName = $initialDomainName - delegatedPrivilegeStatus = 'directTenant' - domains = '' - Excluded = $false - ExcludeUser = '' - ExcludeDate = '' - GraphErrorCount = 0 - LastGraphError = '' - RequiresRefresh = $false - LastRefresh = (Get-Date).ToUniversalTime() + PartitionKey = 'Tenants' + RowKey = $tenantId + customerId = $tenantId + displayName = $displayName + defaultDomainName = $defaultDomainName + initialDomainName = $initialDomainName + delegatedPrivilegeStatus = 'directTenant' + directTenantUserPrincipalName = $ServiceAccount + directTenantAuthDate = $AuthDate + domains = '' + Excluded = $false + ExcludeUser = '' + ExcludeDate = '' + GraphErrorCount = 0 + LastGraphError = '' + RequiresRefresh = $false + LastRefresh = (Get-Date).ToUniversalTime() } # Add tenant to table diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 index 154edd7c73af1..a6e6622499adc 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCombinedSetup.ps1 @@ -56,7 +56,7 @@ function Invoke-ExecCombinedSetup { $Results.add($notificationResults) } if ($Request.Body.selectedOption -eq 'Manual') { - $KV = $env:WEBSITE_DEPLOYMENT_ID + $KV = Get-CippKeyVaultName if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 index c1a8350cbc19b..b51d8c26a76fc 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecCreateSAMApp.ps1 @@ -9,7 +9,7 @@ function Invoke-ExecCreateSAMApp { [CmdletBinding()] param($Request, $TriggerMetadata) - $KV = $env:WEBSITE_DEPLOYMENT_ID + $KV = Get-CippKeyVaultName try { $Token = $Request.body @@ -107,6 +107,19 @@ function Invoke-ExecCreateSAMApp { # Reload credentials into env vars $null = Get-CIPPAuthentication + # Create the SAM certificate alongside the secret so certificate auth is available + # immediately. Uses the wizard's delegated token because the app secret was created + # seconds ago and may not have propagated yet. Non-fatal: the weekly token update + # timer creates the certificate if this fails. + try { + $CertResult = Update-CIPPSAMCertificate -ApplicationId $AppId.appId -Headers @{ authorization = "Bearer $($Token.access_token)" } + if ($CertResult.Renewed) { + Write-Information "SAM certificate created. Thumbprint: $($CertResult.Thumbprint), expires: $($CertResult.NotAfter), storage mode: $($CertResult.StorageMode)" + } + } catch { + Write-Warning "Failed to create SAM certificate during setup, the weekly token update will create it: $($_.Exception.Message)" + } + $Results = @{'message' = "Successfully $state the application registration. The application ID is $($AppId.appid). You may continue to the next step."; severity = 'success' } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 deleted file mode 100644 index 76fe86b3af932..0000000000000 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSAMSetup.ps1 +++ /dev/null @@ -1,236 +0,0 @@ -function Invoke-ExecSAMSetup { - <# - .FUNCTIONALITY - Entrypoint,AnyTenant - .ROLE - CIPP.AppSettings.ReadWrite - .LEGACY - This function is a legacy function that was used to set up the CIPP application in Azure AD. It is not used in the current version of CIPP, look at Invoke-ExecCreateSAMApp for the new version. - #> - [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '')] - [CmdletBinding()] - param($Request, $TriggerMetadata) - - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ message = 'This endpoint is no longer used. Please use the CreateSAMApp endpoint instead.' } - }) - - if ($Request.Query.error) { - Add-Type -AssemblyName System.Web - return ([HttpResponseContext]@{ - ContentType = 'text/html' - StatusCode = [HttpStatusCode]::Forbidden - Body = Get-normalizedError -Message [System.Web.HttpUtility]::UrlDecode($Request.Query.error_description) - }) - exit - } - 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 = [PSCustomObject]@{ - 'PartitionKey' = 'Secret' - 'RowKey' = 'Secret' - 'TenantId' = '' - 'RefreshToken' = '' - 'ApplicationId' = '' - 'ApplicationSecret' = '' - } - Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force - } - } - if (!$env:SetFromProfile) { - Write-Information "We're reloading from KV" - Get-CIPPAuthentication - } - - $KV = $env:WEBSITE_DEPLOYMENT_ID - $Table = Get-CIPPTable -TableName SAMWizard - $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-10) - - try { - 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' -or $env:NonLocalHostAzurite -eq 'true') { - if ($Request.Body.TenantId) { $Secret.TenantId = $Request.Body.tenantid } - if ($Request.Body.RefreshToken) { $Secret.RefreshToken = $Request.Body.RefreshToken } - if ($Request.Body.applicationid) { $Secret.ApplicationId = $Request.Body.ApplicationId } - if ($Request.Body.ApplicationSecret) { $Secret.ApplicationSecret = $Request.Body.ApplicationSecret } - Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force - } else { - if ($Request.Body.tenantid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $Request.Body.tenantid -AsPlainText -Force) } - if ($Request.Body.RefreshToken) { Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $Request.Body.RefreshToken -AsPlainText -Force) } - if ($Request.Body.applicationid) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationid -AsPlainText -Force) } - if ($Request.Body.applicationsecret) { Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $Request.Body.applicationsecret -AsPlainText -Force) } - } - - $Results = @{ Results = 'The keys have been replaced. Please perform a permissions check.' } - } - if ($Request.Query.error -eq 'invalid_client') { $Results = 'Client ID was not found in Azure. Try waiting 10 seconds to try again, if you have gotten this error after 5 minutes, please restart the process.' } - if ($Request.Query.code) { - try { - $TenantId = $Rows.tenantid - if (!$TenantId -or $TenantId -eq 'NotStarted') { $TenantId = $env:TenantID } - $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' -or $env:NonLocalHostAzurite -eq 'true') { - $clientsecret = $Secret.ApplicationSecret - } else { - $clientsecret = Get-CippKeyVaultSecret -VaultName $kv -Name 'ApplicationSecret' -AsPlainText - } - if (!$clientsecret) { $clientsecret = $env:ApplicationSecret } - Write-Information "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" #-Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" - $RefreshToken = Invoke-RestMethod -Method POST -Body "client_id=$appid&scope=https://graph.microsoft.com/.default+offline_access+openid+profile&code=$($Request.Query.code)&grant_type=authorization_code&redirect_uri=$($url)&client_secret=$clientsecret" -Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" -ContentType 'application/x-www-form-urlencoded' - - if ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true') { - $Secret.RefreshToken = $RefreshToken.refresh_token - Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force - } else { - Set-CippKeyVaultSecret -VaultName $kv -Name 'RefreshToken' -SecretValue (ConvertTo-SecureString -String $RefreshToken.refresh_token -AsPlainText -Force) - } - - $Results = 'Authentication is now complete. You may now close this window.' - try { - $SetupPhase = $rows.validated = $true - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - } catch { - #no need. - } - } catch { - $Results = "Authentication failed. $($_.Exception.message)" - } - } - if ($Request.Query.CreateSAM) { - $Rows = @{ - RowKey = 'setup' - PartitionKey = 'setup' - validated = $false - SamSetup = 'NotStarted' - partnersetup = $true - appid = 'NotStarted' - tenantid = 'NotStarted' - } - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - $Rows = Get-CIPPAzDataTableEntity @Table | Where-Object -Property Timestamp -GT (Get-Date).AddMinutes(-10) - $step = 1 - $DeviceLogon = New-DeviceLogin -clientid '1b730954-1685-4b74-9bfd-dac224a7b894' -Scope 'https://graph.microsoft.com/.default' -FirstLogon - $SetupPhase = $rows.SamSetup = [string]($DeviceLogon | ConvertTo-Json) - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - $Results = @{ code = $($DeviceLogon.user_code); message = "Your code is $($DeviceLogon.user_code). Enter the code" ; step = $step; url = $DeviceLogon.verification_uri } - } - if ($Request.Query.CheckSetupProcess -and $Request.Query.step -eq 1) { - $SAMSetup = $Rows.SamSetup | ConvertFrom-Json -ErrorAction SilentlyContinue - if ($SamSetup.token_type -eq 'Bearer') { - #sleeping for 10 seconds to allow the token to be created. - Start-Sleep 10 - #nulling the token to force a recheck. - $step = 2 - } - $Token = (New-DeviceLogin -clientid '1b730954-1685-4b74-9bfd-dac224a7b894' -Scope 'https://graph.microsoft.com/.default' -device_code $SAMSetup.device_code) - Write-Information "Token is $($token | ConvertTo-Json)" - if ($Token.access_token) { - $step = 2 - $rows.SamSetup = [string]($Token | ConvertTo-Json) - $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 - $PartnerSetup = $true - $TenantId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/organization' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method GET -ContentType 'application/json').value.id - $SetupPhase = $rows.tenantid = [string]($TenantId) - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - if ($PartnerSetup) { - #$app = Get-Content '.\Cache_SAMSetup\SAMManifest.json' | ConvertFrom-Json - $SamManifestFile = Get-Item (Join-Path $env:CIPPRootPath 'Config\SAMManifest.json') - $app = Get-Content $SamManifestFile.FullName | ConvertFrom-Json - - $App.web.redirectUris = @($App.web.redirectUris + $URL) - $app = $app | ConvertTo-Json -Depth 15 - $AppId = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/applications' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body $app -ContentType 'application/json') - $rows.appid = [string]($AppId.appId) - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - $attempt = 0 - do { - try { - try { - $SPNDefender = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fc780465-2017-40d4-a0c5-307022471b92`" }" -ContentType 'application/json') - } catch { - Write-Information "didn't deploy spn for defender, probably already there." - } - try { - $SPNTeams = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"48ac35b8-9aa8-4d74-927d-1f4a14a0b239`" }" -ContentType 'application/json') - } catch { - Write-Information "didn't deploy spn for Teams, probably already there." - } - try { - $SPNO365Manage = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"c5393580-f805-4401-95e8-94b7a6ef2fc2`" }" -ContentType 'application/json') - } catch { - Write-Information "didn't deploy spn for O365 Management, probably already there." - } - try { - $SPNPartnerCenter = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd`" }" -ContentType 'application/json') - } catch { - Write-Information "didn't deploy spn for PartnerCenter, probably already there." - } - $SPN = (Invoke-RestMethod 'https://graph.microsoft.com/v1.0/servicePrincipals' -Headers @{ authorization = "Bearer $($Token.access_token)" } -Method POST -Body "{ `"appId`": `"$($AppId.appId)`" }" -ContentType 'application/json') - Start-Sleep 3 - $attempt ++ - } catch { - $attempt ++ - } - } 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' -or $env:NonLocalHostAzurite -eq 'true') { - $Secret.TenantId = $TenantId - $Secret.ApplicationId = $AppId.appId - $Secret.ApplicationSecret = $AppPassword - Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force - Write-Information ($Secret | ConvertTo-Json -Depth 5) - } else { - Set-CippKeyVaultSecret -VaultName $kv -Name 'tenantid' -SecretValue (ConvertTo-SecureString -String $TenantId -AsPlainText -Force) - Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationid' -SecretValue (ConvertTo-SecureString -String $Appid.appId -AsPlainText -Force) - Set-CippKeyVaultSecret -VaultName $kv -Name 'applicationsecret' -SecretValue (ConvertTo-SecureString -String $AppPassword -AsPlainText -Force) - } - $Results = @{'message' = 'Created application. Waiting 30 seconds for Azure propagation'; step = $step } - } else { - $step = 1 - $Results = @{ code = $($SAMSetup.user_code); message = "Your code is $($SAMSetup.user_code). Enter the code " ; step = $step; url = $SAMSetup.verification_uri } - } - - } - switch ($Request.Query.step) { - 2 { - $step = 2 - $TenantId = $Rows.tenantid - $AppID = $rows.appid - $PartnerSetup = $true - $SetupPhase = $rows.SamSetup = [string]($FirstLogonRefreshtoken | ConvertTo-Json) - Add-CIPPAzDataTableEntity @Table -Entity $Rows -Force | Out-Null - $URL = ($Request.headers.'x-ms-original-url').split('?') | Select-Object -First 1 - $Validated = $Rows.validated - if ($Validated) { $step = 3 } - $Results = @{ appId = $AppID; message = 'Give the next approval by clicking ' ; step = $step; url = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/authorize?scope=https://graph.microsoft.com/.default+offline_access+openid+profile&response_type=code&client_id=$($appid)&redirect_uri=$($url)" } - } - 3 { - $step = 4 - $Results = @{'message' = 'Received token.'; step = $step } - } - 4 { - Remove-AzDataTableEntity -Force @Table -Entity $Rows - $step = 5 - $Results = @{'message' = 'setup completed.'; step = $step - } - } - } - - } catch { - $Results = [pscustomobject]@{'Results' = "Failed. $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.message)" ; step = $step } - } - - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results - }) - -} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSSOSetup.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSSOSetup.ps1 index f693c9d6648a2..fc035264316f6 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSSOSetup.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecSSOSetup.ps1 @@ -193,8 +193,7 @@ function Invoke-ExecSSOSetup { # Best-effort: stash TenantID in KV if missing (was previously inline) if (-not ($env:AzureWebJobsStorage -eq 'UseDevelopmentStorage=true' -or $env:NonLocalHostAzurite -eq 'true')) { - $KV = $env:WEBSITE_DEPLOYMENT_ID - $VaultName = if ($KV) { ($KV -split '-')[0] } else { $null } + $VaultName = Get-CippKeyVaultName if ($VaultName -and $env:TenantID) { $ExistingTenantId = $null try { $ExistingTenantId = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'TenantID' -AsPlainText -ErrorAction Stop } catch { } @@ -249,6 +248,10 @@ function Invoke-ExecSSOSetup { # --- Step 6: Mark migration as secrets_stored --- & $SaveMigrationRow @{ Status = 'secrets_stored'; LastError = '' } + # New credentials are stored - lift a pending management-portal SSO reset + # so warmup's auto-configure can use them instead of re-entering setup. + Remove-CIPPMigrationAppSetting -SettingName 'CIPP_SSO_RESET' + Write-LogMessage -API $APIName -headers $Headers -message "SSO migration credentials stored for app $AppId" -sev Info $Body = @{ Results = @{ @@ -513,8 +516,7 @@ function Invoke-ExecSSOSetup { $DevSecret = Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'SSO' and RowKey eq 'SSO'" -ErrorAction SilentlyContinue $ExistingAppId = $DevSecret.SSOAppId } else { - $KV = $env:WEBSITE_DEPLOYMENT_ID - $VaultName = if ($KV) { ($KV -split '-')[0] } else { $null } + $VaultName = Get-CippKeyVaultName if ($VaultName) { try { $ExistingAppId = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'SSOAppId' -AsPlainText -ErrorAction Stop } catch { } } @@ -565,8 +567,9 @@ function Invoke-ExecSSOSetup { # --- Step 5: Configure EasyAuth on the App Service --- Set-CIPPSSOEasyAuth -AppId $AppId -MultiTenant $MultiTenant -TenantId $env:TenantID -UseKvReferences - # --- Step 6: Remove the migration trigger env var --- + # --- Step 6: Remove the migration trigger env var (and any pending SSO reset flag) --- Remove-CIPPMigrationAppSetting -SettingName 'CIPP_SSO_MIGRATION_APPID' + Remove-CIPPMigrationAppSetting -SettingName 'CIPP_SSO_RESET' # --- Step 7: Mark complete --- & $SaveMigrationRow @{ Status = 'complete'; LastError = '' } @@ -593,9 +596,82 @@ function Invoke-ExecSSOSetup { } } + 'ManualConfigure' { + # Manually set the SSO AppId / client secret / multi-tenant flag directly in Key Vault. + # Used to rotate the secret by hand or repoint EasyAuth at a different app registration + # without the automated Create/Repair flow. Credentials are read from KV at startup, + # so the instance must be restarted for the change to take effect. + try { + $AppId = $Request.Body.appId + $AppSecret = $Request.Body.appSecret + $MultiTenant = [bool]($Request.Body.multiTenant) + + # Validate AppId — must be a GUID + $ParsedGuid = [System.Guid]::Empty + if ([string]::IsNullOrWhiteSpace($AppId) -or -not [System.Guid]::TryParse($AppId.Trim(), [ref]$ParsedGuid)) { + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Results = 'A valid Application (client) ID is required.' } + break + } + $AppId = $ParsedGuid.ToString() + + if ([string]::IsNullOrWhiteSpace($AppSecret)) { + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Results = 'A client secret is required.' } + break + } + + # Persist to Key Vault (or the DevSecrets table in dev mode) + Set-CIPPSSOStoredCredentials -AppId $AppId -AppSecret $AppSecret -MultiTenant $MultiTenant + + # Update the migration table so the Status page reflects the manual config. + # Clear ObjectId — it belonged to the previous app registration and would be stale + # if the AppId was changed. Repair/RotateSecret re-fetch it by AppId when missing. + $Existing = Get-CIPPAzDataTableEntity @MigrationTable -Filter "PartitionKey eq 'SSO' and RowKey eq 'MigrationConfig'" -ErrorAction SilentlyContinue + & $SaveMigrationRow @{ + AppId = $AppId + ObjectId = '' + MultiTenant = [string]$MultiTenant + Status = 'secrets_stored' + CreatedAt = $Existing.CreatedAt ?? (Get-Date).ToUniversalTime().ToString('o') + ManualConfig = 'true' + LastError = '' + } + + # New credentials are stored - lift a pending management-portal SSO reset + # so warmup's auto-configure can use them instead of re-entering setup. + Remove-CIPPMigrationAppSetting -SettingName 'CIPP_SSO_RESET' + + Write-LogMessage -API $APIName -headers $Headers -message "SSO credentials manually configured for app $AppId (multiTenant=$MultiTenant)" -sev Info + + $IsCippNg = [bool]$env:CIPPNG + $Message = if ($IsCippNg) { + 'SSO credentials saved to Key Vault. Restart the instance to apply the new configuration.' + } else { + 'SSO credentials saved to Key Vault successfully.' + } + + $Body = @{ + Results = @{ + message = $Message + appId = $AppId + multiTenant = $MultiTenant + requiresRestart = $IsCippNg + isCippNg = $IsCippNg + severity = 'success' + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -headers $Headers -message "Manual SSO configuration failed: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $Body = @{ Results = "Manual SSO configuration failed: $($ErrorMessage.NormalizedError)" } + } + } + default { $StatusCode = [HttpStatusCode]::BadRequest - $Body = @{ Results = "Unknown action: $Action. Use 'Status', 'Create', 'Repair', 'Recreate', 'Update', 'RotateSecret', or 'Migrate'." } + $Body = @{ Results = "Unknown action: $Action. Use 'Status', 'Create', 'Repair', 'Recreate', 'Update', 'RotateSecret', 'ManualConfigure', or 'Migrate'." } } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 index 5621576362f63..dcf2154812270 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecTokenExchange.ps1 @@ -9,7 +9,7 @@ function Invoke-ExecTokenExchange { param($Request, $TriggerMetadata) # Get the key vault name - $KV = $env:WEBSITE_DEPLOYMENT_ID + $KV = Get-CippKeyVaultName $APIName = $Request.Params.CIPPEndpoint try { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 index 7461952cc25ca..321388cd22332 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/CIPP/Setup/Invoke-ExecUpdateRefreshToken.ps1 @@ -9,7 +9,7 @@ function Invoke-ExecUpdateRefreshToken { [CmdletBinding()] param($Request, $TriggerMetadata) - $KV = $env:WEBSITE_DEPLOYMENT_ID + $KV = Get-CippKeyVaultName try { # Handle refresh token update diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 index aa7996657fee8..478bc1aa4ef83 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditMailboxPermissions.ps1 @@ -17,110 +17,27 @@ function Invoke-ExecEditMailboxPermissions { $Username = $request.body.userID $Tenantfilter = $request.body.tenantfilter if ($username -eq $null) { exit } - $userid = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($username)" -tenantid $Tenantfilter).id $Results = [System.Collections.ArrayList]@() - $RemoveFullAccess = ($Request.body.RemoveFullAccess).value - foreach ($RemoveUser in $RemoveFullAccess) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-mailboxpermission' -cmdParams @{Identity = $userid; user = $RemoveUser; accessRights = @('FullAccess'); } - $results.add("Removed $($removeuser) from $($username) Shared Mailbox permissions") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $($RemoveUser) from $($username) Shared Mailbox permission" -Sev 'Info' -tenant $TenantFilter - - # Sync cache - Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $username -User $RemoveUser -PermissionType 'FullAccess' -Action 'Remove' - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not remove mailbox permissions for $($removeuser) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not remove $($removeuser) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } - } - $AddFullAccess = ($Request.body.AddFullAccess).value - - foreach ($UserAutomap in $AddFullAccess) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $UserAutomap; accessRights = @('FullAccess'); automapping = $true } - $results.add( "Granted $($UserAutomap) access to $($username) Mailbox with automapping") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $($UserAutomap) access to $($username) Mailbox with automapping" -Sev 'Info' -tenant $TenantFilter - - # Sync cache - Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $username -User $UserAutomap -PermissionType 'FullAccess' -Action 'Add' - - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserAutomap) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add( "Could not add $($UserAutomap) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } - } - $AddFullAccessNoAutoMap = ($Request.body.AddFullAccessNoAutoMap).value - - foreach ($UserNoAutomap in $AddFullAccessNoAutoMap) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-MailboxPermission' -cmdParams @{Identity = $userid; user = $UserNoAutomap; accessRights = @('FullAccess'); automapping = $false } - $results.add( "Granted $UserNoAutomap access to $($username) Mailbox without automapping") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserNoAutomap access to $($username) Mailbox without automapping" -Sev 'Info' -tenant $TenantFilter - - # Sync cache - Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $username -User $UserNoAutomap -PermissionType 'FullAccess' -Action 'Add' - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserNoAutomap) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not add $($UserNoAutomap) shared mailbox permissions for $($username). Error: $($_.Exception.Message)") - } - } - - $AddSendAS = ($Request.body.AddSendAs).value - - foreach ($UserSendAs in $AddSendAS) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Add-RecipientPermission' -cmdParams @{Identity = $userid; Trustee = $UserSendAs; accessRights = @('SendAs') } - $results.add( "Granted $UserSendAs access to $($username) with Send As permissions") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserSendAs access to $($username) with Send As permissions" -Sev 'Info' -tenant $TenantFilter - - # Sync cache - Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $username -User $UserSendAs -PermissionType 'SendAs' -Action 'Add' - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add mailbox permissions for $($UserSendAs) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not add $($UserSendAs) send-as permissions for $($username). Error: $($_.Exception.Message)") - } - } - - $RemoveSendAs = ($Request.body.RemoveSendAs).value - - foreach ($UserSendAs in $RemoveSendAs) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Remove-RecipientPermission' -cmdParams @{Identity = $userid; Trustee = $UserSendAs; accessRights = @('SendAs') } - $results.add( "Removed $UserSendAs from $($username) with Send As permissions") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $UserSendAs from $($username) with Send As permissions" -Sev 'Info' -tenant $TenantFilter - - # Sync cache - Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $username -User $UserSendAs -PermissionType 'SendAs' -Action 'Remove' - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not remove mailbox permissions for $($UserSendAs) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not remove $($UserSendAs) send-as permissions for $($username). Error: $($_.Exception.Message)") - } - } - - $AddSendOnBehalf = ($Request.body.AddSendOnBehalf).value - - foreach ($UserSendOnBehalf in $AddSendOnBehalf) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; GrantSendonBehalfTo = @{'@odata.type' = '#Exchange.GenericHashTable'; add = $UserSendOnBehalf }; } - $results.add( "Granted $UserSendOnBehalf access to $($username) with Send On Behalf Permissions") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Granted $UserSendOnBehalf access to $($username) with Send On Behalf Permissions" -Sev 'Info' -tenant $TenantFilter - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not add send on behalf permissions for $($UserSendOnBehalf) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not add $($UserSendOnBehalf) send on behalf permissions for $($username). Error: $($_.Exception.Message)") - } - } - - $RemoveSendOnBehalf = ($Request.body.RemoveSendOnBehalf).value - - foreach ($UserSendOnBehalf in $RemoveSendOnBehalf) { - try { - $MailboxPerms = New-ExoRequest -Anchor $username -tenantid $Tenantfilter -cmdlet 'Set-Mailbox' -cmdParams @{Identity = $userid; GrantSendonBehalfTo = @{'@odata.type' = '#Exchange.GenericHashTable'; remove = $UserSendOnBehalf }; } - $results.add( "Removed $UserSendOnBehalf from $($username) Send on Behalf Permissions") - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Removed $UserSendOnBehalf from $($username) Send on Behalf Permissions" -Sev 'Info' -tenant $TenantFilter - } catch { - Write-LogMessage -headers $Request.Headers -API $APINAME-message "Could not Remove send on behalf permissions for $($UserSendOnBehalf) on $($username)" -Sev 'Error' -tenant $TenantFilter - $results.add("Could not remove $($UserSendOnBehalf) send on behalf permissions for $($username). Error: $($_.Exception.Message)") + # Each request-body bucket maps to a (PermissionLevel, Action) pair. Delegate to + # Set-CIPPMailboxPermission so the EXO cmdlet mapping, logging, cache sync, and error handling + # all live in one place. The mailbox UPN is passed straight through as the identity - EXO accepts + # it, so no Graph id lookup is required. + $PermissionBuckets = @( + @{ Bucket = 'RemoveFullAccess'; PermissionLevel = 'FullAccess'; Action = 'Remove'; AutoMap = $true } + @{ Bucket = 'AddFullAccess'; PermissionLevel = 'FullAccess'; Action = 'Add'; AutoMap = $true } + @{ Bucket = 'AddFullAccessNoAutoMap'; PermissionLevel = 'FullAccess'; Action = 'Add'; AutoMap = $false } + @{ Bucket = 'AddSendAs'; PermissionLevel = 'SendAs'; Action = 'Add'; AutoMap = $true } + @{ Bucket = 'RemoveSendAs'; PermissionLevel = 'SendAs'; Action = 'Remove'; AutoMap = $true } + @{ Bucket = 'AddSendOnBehalf'; PermissionLevel = 'SendOnBehalf'; Action = 'Add'; AutoMap = $true } + @{ Bucket = 'RemoveSendOnBehalf'; PermissionLevel = 'SendOnBehalf'; Action = 'Remove'; AutoMap = $true } + ) + + foreach ($Bucket in $PermissionBuckets) { + foreach ($AccessUser in ($Request.body.($Bucket.Bucket)).value) { + $null = $Results.Add( + (Set-CIPPMailboxPermission -UserId $Username -AccessUser $AccessUser -PermissionLevel $Bucket.PermissionLevel -Action $Bucket.Action -AutoMap $Bucket.AutoMap -TenantFilter $Tenantfilter -APIName $APIName -Headers $Headers) + ) } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 index a97e3a4148255..3b1d822a3dfcc 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecModifyMBPerms.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecModifyMBPerms { +function Invoke-ExecModifyMBPerms { <# .FUNCTIONALITY Entrypoint @@ -9,41 +9,43 @@ Function Invoke-ExecModifyMBPerms { param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint - Write-LogMessage -headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + $Headers = $Request.Headers + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' # Extract mailbox requests - handle all three formats $MailboxRequests = $null $Results = [System.Collections.ArrayList]::new() + $SuccessfulOps = [System.Collections.ArrayList]::new() # Direct array format - if ($request.body -is [array]) { - $MailboxRequests = $request.body + if ($Request.Body -is [array]) { + $MailboxRequests = $Request.Body } # Bulk format with mailboxRequests property - elseif ($request.body.mailboxRequests) { - $MailboxRequests = $request.body.mailboxRequests + elseif ($Request.Body.mailboxRequests) { + $MailboxRequests = $Request.Body.mailboxRequests } # Legacy single mailbox format - elseif ($request.body.userID -and $request.body.permissions) { + elseif ($Request.Body.userID -and $Request.Body.permissions) { $MailboxRequests = @([PSCustomObject]@{ - userID = $request.body.userID - tenantFilter = $request.body.tenantFilter - permissions = $request.body.permissions - }) + 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") } + Write-LogMessage -headers $Headers -API $APIName -message 'No mailbox requests provided' -Sev 'Error' + $body = [pscustomobject]@{'Results' = @('No mailbox requests provided') } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = $Body - }) + StatusCode = [HttpStatusCode]::BadRequest + Body = $Body + }) return } - $TenantFilter = $Request.body.tenantFilter - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Processing permission changes for $($MailboxRequests.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter + $TenantFilter = $Request.Body.tenantFilter + Write-LogMessage -headers $Headers -API $APIName -message "Processing permission changes for $($MailboxRequests.Count) mailboxes" -Sev 'Info' -tenant $TenantFilter # Build cmdlet array for processing $CmdletArray = [System.Collections.ArrayList]::new() @@ -51,12 +53,16 @@ Function Invoke-ExecModifyMBPerms { $GuidToMetadataMap = @{} # Map GUIDs to our metadata $UserLookupCache = @{} + # Permission levels Set-CIPPMailboxPermission understands (its ValidateSet). Levels outside this + # set are silently skipped, matching the behaviour of the inline switch this used to carry. + $SupportedPermissionLevels = @('FullAccess', 'SendAs', 'SendOnBehalf', 'ReadPermission', 'ExternalAccount', 'DeleteItem', 'ChangePermission', 'ChangeOwner') + foreach ($MailboxRequest in $MailboxRequests) { $Username = $MailboxRequest.userID $Permissions = $MailboxRequest.permissions if ([string]::IsNullOrEmpty($Username)) { - $null = $Results.Add("Skipped mailbox with missing userID") + $null = $Results.Add('Skipped mailbox with missing userID') continue } @@ -65,18 +71,16 @@ Function Invoke-ExecModifyMBPerms { try { $UserObject = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($Username)" -tenantid $TenantFilter $UserLookupCache[$Username] = $UserObject.userPrincipalName - } - catch { + } 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" + throw 'User not found' } - } - catch { - Write-LogMessage -headers $Request.Headers -API $APINAME -message "Could not find user $($Username)" -Sev 'Error' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Could not find user $($Username)" -Sev 'Error' -tenant $TenantFilter $null = $Results.Add("Could not find user $($Username)") continue } @@ -99,7 +103,7 @@ Function Invoke-ExecModifyMBPerms { $AutoMap = if ($Permission.PSObject.Properties.Name -contains 'AutoMap') { $Permission.AutoMap } else { $true } # Handle multiple permission levels - $PermissionLevelArray = if ($PermissionLevels -like "*,*") { + $PermissionLevelArray = if ($PermissionLevels -like '*,*') { $PermissionLevels -split ',' | ForEach-Object { $_.Trim() } } else { @($PermissionLevels.Trim()) @@ -125,160 +129,37 @@ Function Invoke-ExecModifyMBPerms { 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') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('FullAccess') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) from $($Username) FullAccess permissions" - } else { - $CmdletName = 'Add-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('FullAccess') - automapping = $AutoMap - Confirm = $false - } - $ExpectedResult = "Granted $($TargetUser) FullAccess to $($Username) with automapping $($AutoMap)" - } - } - 'SendAs' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-RecipientPermission' - $CmdletParams = @{ - Identity = $UserId - Trustee = $TargetUser - accessRights = @('SendAs') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) SendAs permissions from $($Username)" - } else { - $CmdletName = 'Add-RecipientPermission' - $CmdletParams = @{ - Identity = $UserId - Trustee = $TargetUser - accessRights = @('SendAs') - Confirm = $false - } - $ExpectedResult = "Granted $($TargetUser) SendAs permissions to $($Username)" - } - } - 'SendOnBehalf' { - $CmdletName = 'Set-Mailbox' - if ($Modification -eq 'Remove') { - $CmdletParams = @{ - Identity = $UserId - GrantSendonBehalfTo = @{ - '@odata.type' = '#Exchange.GenericHashTable' - remove = $TargetUser - } - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) SendOnBehalf permissions from $($Username)" - } else { - $CmdletParams = @{ - Identity = $UserId - GrantSendonBehalfTo = @{ - '@odata.type' = '#Exchange.GenericHashTable' - add = $TargetUser - } - Confirm = $false - } - $ExpectedResult = "Granted $($TargetUser) SendOnBehalf permissions to $($Username)" - } - } - 'ReadPermission' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('ReadPermission') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) ReadPermission from $($Username)" - } - } - 'ExternalAccount' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('ExternalAccount') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) ExternalAccount permissions from $($Username)" - } - } - 'DeleteItem' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('DeleteItem') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) DeleteItem permissions from $($Username)" - } - } - 'ChangePermission' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('ChangePermission') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) ChangePermission from $($Username)" - } - } - 'ChangeOwner' { - if ($Modification -eq 'Remove') { - $CmdletName = 'Remove-MailboxPermission' - $CmdletParams = @{ - Identity = $UserId - user = $TargetUser - accessRights = @('ChangeOwner') - Confirm = $false - } - $ExpectedResult = "Removed $($TargetUser) ChangeOwner permissions from $($Username)" - } - } - } + # Build the EXO cmdlet for this change via Set-CIPPMailboxPermission's + # -AsCmdletObject mode - the single source of truth for the permission-level -> + # cmdlet/parameter mapping. It returns @{ CmdletName; Parameters; ExpectedResult } + # for supported combinations, or a plain string for unsupported ones (e.g. an Add + # on a remove-only level), which we skip. The bulk machinery below is unchanged. + if ($PermissionLevel -notin $SupportedPermissionLevels) { continue } + $Action = if ($Modification -eq 'Remove') { 'Remove' } else { 'Add' } + + $Mapping = Set-CIPPMailboxPermission -UserId $UserId -AccessUser $TargetUser -PermissionLevel $PermissionLevel -Action $Action -AutoMap $AutoMap -TenantFilter $TenantFilter -AsCmdletObject - if ($CmdletName) { + if ($Mapping -is [hashtable] -and $Mapping.CmdletName) { # Generate unique GUID for this operation $OperationGuid = [Guid]::NewGuid().ToString() $CmdletObj = @{ - CmdletInput = @{ - CmdletName = $CmdletName - Parameters = $CmdletParams + CmdletInput = @{ + CmdletName = $Mapping.CmdletName + Parameters = $Mapping.Parameters } OperationGuid = $OperationGuid # Add GUID to cmdlet object } + # Use the resolved UPN, not the raw request identifier (which may be an + # object id) - the cache sync below matches cached rows by mailbox UPN. $CmdletMetadata = [PSCustomObject]@{ - ExpectedResult = $ExpectedResult - Mailbox = $Username - TargetUser = $TargetUser - Permission = $PermissionLevel - Action = $Modification - OperationGuid = $OperationGuid + ExpectedResult = $Mapping.ExpectedResult + Mailbox = $UserId + TargetUser = $TargetUser + Permission = $PermissionLevel + Action = $Action + OperationGuid = $OperationGuid } $null = $CmdletArray.Add($CmdletObj) @@ -293,12 +174,12 @@ Function Invoke-ExecModifyMBPerms { } 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") } + Write-LogMessage -headers $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 - }) + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) return } @@ -306,7 +187,7 @@ Function Invoke-ExecModifyMBPerms { 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 + Write-LogMessage -headers $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 @@ -321,13 +202,14 @@ Function Invoke-ExecModifyMBPerms { 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 + Write-LogMessage -headers $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 + $null = $SuccessfulOps.Add($metadata) + Write-LogMessage -headers $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 + Write-LogMessage -headers $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) { @@ -344,14 +226,14 @@ Function Invoke-ExecModifyMBPerms { foreach ($CmdletMetadata in $CmdletMetadataArray) { if ($CmdletMetadata.ExpectedResult) { $null = $Results.Add($CmdletMetadata.ExpectedResult) + $null = $SuccessfulOps.Add($CmdletMetadata) } } } - 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 + Write-LogMessage -headers $Headers -API $APIName -message 'Bulk request completed successfully' -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $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++) { @@ -360,31 +242,43 @@ Function Invoke-ExecModifyMBPerms { try { $null = New-ExoRequest -Anchor $CmdletMetadata.Mailbox -tenantid $TenantFilter -cmdlet $CmdletObj.CmdletInput.CmdletName -cmdParams $CmdletObj.CmdletInput.Parameters $null = $Results.Add($CmdletMetadata.ExpectedResult) - } - catch { + $null = $SuccessfulOps.Add($CmdletMetadata) + } catch { $null = $Results.Add("Error processing $($CmdletMetadata.Permission) for $($CmdletMetadata.TargetUser) on $($CmdletMetadata.Mailbox): $($_.Exception.Message)") } } } - } - else { + } 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 = $SuccessfulOps.Add($CmdletMetadata) + Write-LogMessage -headers $Headers -API $APIName -message "Executed $($CmdletMetadata.Permission) permission modification" -Sev 'Info' -tenant $TenantFilter + } catch { + Write-LogMessage -headers $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)") } } + # Keep the reporting DB cache in step with what actually changed. The bulk path bypasses + # Set-CIPPMailboxPermission's own execute-mode sync (-AsCmdletObject returns early), so + # without this the cached permission report goes stale after every bulk change. + foreach ($Op in $SuccessfulOps) { + if ($Op.Permission -in @('FullAccess', 'SendAs', 'SendOnBehalf')) { + try { + Sync-CIPPMailboxPermissionCache -TenantFilter $TenantFilter -MailboxIdentity $Op.Mailbox -User $Op.TargetUser -PermissionType $Op.Permission -Action $Op.Action + } catch { + Write-Information "Cache sync warning: $($_.Exception.Message)" + } + } + } + $body = [pscustomobject]@{'Results' = @($Results) } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Body - }) + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 index 7a9c854271cad..2e86f42923e9e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListMailboxes.ps1 @@ -52,7 +52,8 @@ function Invoke-ListMailboxes { @{Parameter = 'Identity'; Type = 'String' } ) - foreach ($Param in $Request.Query.PSObject.Properties.Name) { + $QueryParamNames = if ($Request.Query -is [System.Collections.IDictionary]) { @($Request.Query.Keys) } else { $Request.Query.PSObject.Properties.Name } + foreach ($Param in $QueryParamNames) { $CmdParam = $AllowedParameters | Where-Object { $_.Parameter -eq $Param } if ($CmdParam) { switch ($CmdParam.Type) { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 index 37468a9c1b209..18099cd59af71 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ListmailboxPermissions.ps1 @@ -14,6 +14,7 @@ function Invoke-ListmailboxPermissions { $UserID = $Request.Query.userId $UseReportDB = $Request.Query.UseReportDB $ByUser = $Request.Query.ByUser + $User = $Request.Query.User try { # If UseReportDB is specified and no specific UserID, retrieve from report database @@ -28,6 +29,11 @@ function Invoke-ListmailboxPermissions { } try { $GraphRequest = Get-CIPPMailboxPermissionReport @ReportParams + if ($User -and $ByUser -eq 'true') { + # Only the user-grouped report has a top-level User property; in the + # mailbox-grouped shape this filter would empty the whole result set. + $GraphRequest = @($GraphRequest | Where-Object { $_.User -eq $User }) + } $StatusCode = [HttpStatusCode]::OK } catch { $StatusCode = [HttpStatusCode]::InternalServerError diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 index 6daf756987619..55d8f547ed001 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Reports/Invoke-ListSharedMailboxAccountEnabled.ps1 @@ -6,15 +6,33 @@ function Invoke-ListSharedMailboxAccountEnabled { Exchange.Mailbox.Read .DESCRIPTION Lists shared mailboxes that have direct sign-in enabled (account not disabled), which is a security concern. + Supports UseReportDB=true to read cached data from the reporting database (required for AllTenants). #> [CmdletBinding()] param($Request, $TriggerMetadata) $APIName = $Request.Params.CIPPEndpoint $TenantFilter = $Request.Query.tenantFilter + $UseReportDB = $Request.Query.UseReportDB # Get Shared Mailbox Stuff try { + # If UseReportDB is specified, retrieve from the report database (cached Mailboxes + Users join) + if ($UseReportDB -eq 'true') { + try { + $GraphRequest = Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $TenantFilter -ErrorAction Stop + $StatusCode = [HttpStatusCode]::OK + } catch { + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = $_.Exception.Message + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) + } + $SharedMailboxList = (New-GraphGetRequest -uri "https://outlook.office365.com/adminapi/beta/$($TenantFilter)/Mailbox?`$filter=RecipientTypeDetails eq 'SharedMailbox'" -Tenantid $TenantFilter -scope ExchangeOnline) $AllUsersInfo = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,accountEnabled,displayName,givenName,surname,onPremisesSyncEnabled,assignedLicenses' -tenantid $TenantFilter $SharedMailboxDetails = foreach ($SharedMailbox in $SharedMailboxList) { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 index 9ccfa72a5efb1..8c638985853e1 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-EditRoomMailbox.ps1 @@ -14,6 +14,7 @@ Function Invoke-EditRoomMailbox { $Results = [System.Collections.Generic.List[Object]]::new() $MailboxObject = $Request.Body + $DefaultCalendarPermission = $MailboxObject.DefaultCalendarPermission.value ?? $MailboxObject.DefaultCalendarPermission # First update the mailbox properties $UpdateMailboxParams = @{ @@ -59,8 +60,9 @@ Function Invoke-EditRoomMailbox { $CalendarProperties = @( 'AllowConflicts', 'AllowRecurringMeetings', 'BookingWindowInDays', 'MaximumDurationInMinutes', 'ProcessExternalMeetingMessages', 'EnforceCapacity', - 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours ', 'AutomateProcessing', - 'AddOrganizerToSubject', 'DeleteSubject', 'RemoveCanceledMeetings' + 'ForwardRequestsToDelegates', 'ScheduleOnlyDuringWorkHours', 'AutomateProcessing', + 'AddOrganizerToSubject', 'DeleteComments', 'DeleteSubject', 'RemovePrivateProperty', + 'RemoveCanceledMeetings', 'RemoveOldMeetingMessages' ) foreach ($prop in $CalendarProperties) { @@ -98,6 +100,30 @@ Function Invoke-EditRoomMailbox { $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxCalendarConfiguration' -cmdParams $UpdateCalendarConfigParams -Anchor $MailboxObject.roomId $Results.Add("Successfully updated room: $($MailboxObject.DisplayName) (Calendar Configuration)") + if (![string]::IsNullOrWhiteSpace($DefaultCalendarPermission)) { + $CalendarFolder = New-ExoRequest -tenantid $Tenant -cmdlet 'Get-MailboxFolderStatistics' -cmdParams @{ + Identity = $MailboxObject.roomId + FolderScope = 'Calendar' + } -Anchor $MailboxObject.roomId | Where-Object { $_.FolderType -eq 'Calendar' } | Select-Object -First 1 -ExcludeProperty *@odata.type* + + $CalendarFolderIdentity = if ($CalendarFolder -and $CalendarFolder.FolderId) { + "$($MailboxObject.roomId):$($CalendarFolder.FolderId)" + } elseif ($CalendarFolder -and $CalendarFolder.Name) { + "$($MailboxObject.roomId):\$($CalendarFolder.Name)" + } else { + "$($MailboxObject.roomId):\Calendar" + } + + $null = New-ExoRequest -tenantid $Tenant -cmdlet 'Set-MailboxFolderPermission' -cmdParams @{ + Identity = $CalendarFolderIdentity + User = 'Default' + AccessRights = $DefaultCalendarPermission + } -Anchor $MailboxObject.roomId + + Sync-CIPPCalendarPermissionCache -TenantFilter $Tenant -MailboxIdentity $MailboxObject.roomId -FolderName 'Calendar' -User 'Default' -Permissions $DefaultCalendarPermission -Action 'Add' + $Results.Add("Successfully updated room: $($MailboxObject.DisplayName) (Default Calendar Permission)") + } + Write-LogMessage -headers $Request.Headers -API $APIName -tenant $Tenant -message "Updated room $($MailboxObject.DisplayName)" -Sev 'Info' $StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 index 127b5d4006fc1..b7ee98fb8848e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Resources/Invoke-ListRooms.ps1 @@ -30,6 +30,32 @@ function Invoke-ListRooms { # Get-MailboxCalendarConfiguration requires anchor to the room mailbox $CalendarConfigurationProperties = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxCalendarConfiguration' -cmdParams @{ Identity = $RoomId } -Anchor $RoomId | Select-Object -ExcludeProperty *@odata.type* + $DefaultCalendarPermission = $null + + try { + $CalendarFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -cmdParams @{ + Identity = $RoomId + FolderScope = 'Calendar' + } -Anchor $RoomId | Where-Object { $_.FolderType -eq 'Calendar' } | Select-Object -First 1 -ExcludeProperty *@odata.type* + + if ($CalendarFolder) { + $CalendarFolderIdentity = if ($CalendarFolder.FolderId) { "$($RoomId):$($CalendarFolder.FolderId)" } else { "$($RoomId):\$($CalendarFolder.Name)" } + $CalendarFolderPermissions = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -cmdParams @{ + Identity = $CalendarFolderIdentity + } -Anchor $RoomId -UseSystemMailbox $true | Select-Object -ExcludeProperty *@odata.type* + $DefaultCalendarPermissionEntry = $CalendarFolderPermissions | Where-Object { $_.User -eq 'Default' } | Select-Object -First 1 + + if ($DefaultCalendarPermissionEntry) { + $DefaultCalendarPermission = if ($DefaultCalendarPermissionEntry.AccessRights -is [array]) { + $DefaultCalendarPermissionEntry.AccessRights -join ',' + } else { + $DefaultCalendarPermissionEntry.AccessRights + } + } + } + } catch { + Write-Warning "Could not retrieve default calendar permission for room $RoomId. $($_.Exception.Message)" + } if ($RoomMailbox -and $PlaceDetails -and $CalendarProperties -and $CalendarConfigurationProperties) { $GraphRequest = @( @@ -81,8 +107,12 @@ function Invoke-ListRooms { ScheduleOnlyDuringWorkHours = $CalendarProperties.ScheduleOnlyDuringWorkHours AutomateProcessing = $CalendarProperties.AutomateProcessing AddOrganizerToSubject = $CalendarProperties.AddOrganizerToSubject + DeleteComments = $CalendarProperties.DeleteComments DeleteSubject = $CalendarProperties.DeleteSubject + RemovePrivateProperty = $CalendarProperties.RemovePrivateProperty RemoveCanceledMeetings = $CalendarProperties.RemoveCanceledMeetings + RemoveOldMeetingMessages = $CalendarProperties.RemoveOldMeetingMessages + DefaultCalendarPermission = $DefaultCalendarPermission # Calendar Configuration Properties WorkDays = if ([string]::IsNullOrWhiteSpace($CalendarConfigurationProperties.WorkDays)) { $null } else { $CalendarConfigurationProperties.WorkDays } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 index c01f5d98d6d32..f998de70ff36e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Email-Exchange/Spamfilter/Invoke-AddSpamFilter.ps1 @@ -1,7 +1,7 @@ Function Invoke-AddSpamFilter { <# .FUNCTIONALITY - Entrypoint + Entrypoint,AnyTenant .ROLE Exchange.SpamFilter.ReadWrite #> diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 index 2c703956fad93..cf34067491c1c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddMSPApp.ps1 @@ -34,57 +34,15 @@ function Invoke-AddMSPApp { $SuccessCount = 0 $ErrorCount = 0 $Results = foreach ($Tenant in $Tenants) { - $InstallParams = [PSCustomObject]$RMMApp.params - switch ($RmmName) { - 'datto' { - Write-Host 'Processing Datto installation' - $DattoUrl = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.DattoURL) - $DattoGuid = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.DattoGUID."$($Tenant.customerId)") - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $DattoUrl -GUID $DattoGuid" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' - } - 'ninja' { - Write-Host 'Processing Ninja installation' - $NinjaPackage = ConvertTo-CIPPSafePwshArg -Value ([string]$RMMApp.PackageName) - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $NinjaPackage" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' - } - 'Huntress' { - $HuntressOrgKey = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.Orgkey."$($Tenant.customerId)") - $HuntressAccountKey = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.AccountKey) - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -OrgKey $HuntressOrgKey -acctkey $HuntressAccountKey" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Uninstall' - } - 'syncro' { - $SyncroUrl = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.ClientURL."$($Tenant.customerId)") - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $SyncroUrl" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' - } - 'NCentral' { - $NCentralPackage = ConvertTo-CIPPSafePwshArg -Value ([string]$RMMApp.PackageName) - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -InstallParam $NCentralPackage" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' - } - 'automate' { - $AutomateServer = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.Server) - $AutomateInstallerToken = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.InstallerToken."$($Tenant.customerId)") - $AutomateLocationId = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.LocationID."$($Tenant.customerId)") - $installCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Server $AutomateServer -InstallerToken $AutomateInstallerToken -LocationID $AutomateLocationId" - $uninstallCommandLine = "c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1 -Server $AutomateServer" - $DetectionScript = (Get-Content 'AddMSPApp\automate.detection.ps1' -Raw) -replace '##SERVER##', $InstallParams.Server - $intuneBody.detectionRules[0].scriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($DetectionScript)) - } - 'cwcommand' { - $CwClientUrl = ConvertTo-CIPPSafePwshArg -Value ([string]$InstallParams.ClientURL."$($Tenant.customerId)") - $installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Url $CwClientUrl" - $uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1' - } - default { - throw "Unknown MSP app type '$RmmName'" - } + # Build the install/uninstall command lines for this tenant. Get-CIPPMSPAppInstallCommand + # resolves each param whether it is a per-tenant keyed value (interactive deploy) or a + # flat value / %CIPP variable% (Application Template deploy). + $CommandResult = Get-CIPPMSPAppInstallCommand -RmmName $RmmName -Params $RMMApp.params -Tenant $Tenant -PackageName $RMMApp.PackageName + $intuneBody.installCommandLine = $CommandResult.InstallCommandLine + $intuneBody.UninstallCommandLine = $CommandResult.UninstallCommandLine + if ($CommandResult.DetectionScriptContent) { + $intuneBody.detectionRules[0].scriptContent = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($CommandResult.DetectionScriptContent)) } - $intuneBody.installCommandLine = $installCommandLine - $intuneBody.UninstallCommandLine = $uninstallCommandLine try { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 index 31efa6bf6b25f..67fd49e6dd1b7 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddOfficeApp.ps1 @@ -18,87 +18,13 @@ function Invoke-AddOfficeApp { $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' } + # Office is a singleton per tenant, so match on the type rather than on a display name + # that may have been changed after deployment. + $ExistingO365 = New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/deviceAppManagement/mobileApps' -tenantid $Tenant | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.officeSuiteApp' } if (!$ExistingO365) { - # Check if this is a template deployment with IntuneBody (saved from existing app) - if ($Request.Body.IntuneBody) { - $IntuneBody = $Request.Body.IntuneBody - if ($IntuneBody -is [string]) { - $IntuneBody = $IntuneBody | ConvertFrom-Json -Depth 100 - } - # Remove read-only properties that the Graph API won't accept on create - $ReadOnlyProps = @('id', 'createdDateTime', 'lastModifiedDateTime', 'uploadState', 'publishingState', 'isAssigned', 'roleScopeTagIds', 'dependentAppCount', 'supersedingAppCount', 'supersededAppCount', 'committedContentVersion', 'fileName', 'size') - foreach ($prop in $ReadOnlyProps) { - if ($IntuneBody.PSObject.Properties[$prop]) { - $IntuneBody.PSObject.Properties.Remove($prop) - } - } - $ObjBody = $IntuneBody - } elseif ($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' = if ($Request.Body.updateChannel.value) { $Request.Body.updateChannel.value } else { $Request.Body.updateChannel } - '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' - } - } + $ObjBody = Get-CIPPOfficeAppBody -Config $Request.Body + if (-not $ObjBody) { + throw 'No Office configuration could be built from the supplied settings.' } 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 diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 index 90d4c94285eab..04950b61c5f78 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-AddStoreApp.ps1 @@ -15,7 +15,9 @@ function Invoke-AddStoreApp { $WinGetApp = $Request.Body $assignTo = $Request.Body.AssignTo -eq 'customGroup' ? $Request.Body.CustomGroup : $Request.Body.AssignTo - if ($ChocoApp.InstallAsSystem) { 'system' } else { 'user' } + # winGetAppInstallExperience only supports runAsAccount (no restart behavior). Default to + # system when the toggle is absent so older callers keep the previous behavior. + $RunAsAccount = if ($null -ne $WinGetApp.InstallAsSystem -and -not [bool]$WinGetApp.InstallAsSystem) { 'user' } else { 'system' } $WinGetData = [ordered]@{ '@odata.type' = '#microsoft.graph.winGetApp' 'displayName' = "$($WinGetApp.ApplicationName)" @@ -23,7 +25,7 @@ function Invoke-AddStoreApp { 'packageIdentifier' = "$($WinGetApp.PackageName)" 'installExperience' = @{ '@odata.type' = 'microsoft.graph.winGetAppInstallExperience' - 'runAsAccount' = 'system' + 'runAsAccount' = $RunAsAccount } } $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 index 84b12b647b16a..dac3e6bba060c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecAssignApp.ps1 @@ -24,11 +24,14 @@ function Invoke-ExecAssignApp { $AssignmentFilterName = $Request.Body.AssignmentFilterName $AssignmentFilterType = $Request.Body.AssignmentFilterType $ExcludeGroup = $Request.Body.excludeGroup + $ExcludeGroupIdsRaw = $Request.Body.ExcludeGroupIds + $ExcludeGroupNamesRaw = $Request.Body.ExcludeGroupNames + $AssignmentDirection = $Request.Body.assignmentDirection $Intent = if ([string]::IsNullOrWhiteSpace($Intent)) { 'Required' } else { $Intent } if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { - $AssignmentMode = 'replace' + $AssignmentMode = 'append' } else { $AssignmentMode = $AssignmentMode.ToLower() if ($AssignmentMode -notin @('replace', 'append')) { @@ -36,6 +39,17 @@ function Invoke-ExecAssignApp { } } + # assignmentDirection is sent only by the Custom Group action and switches that request to + # direction-scoped Replace (preserve the other direction + All Users/All Devices broad targets). + if (-not [string]::IsNullOrWhiteSpace($AssignmentDirection)) { + $AssignmentDirection = $AssignmentDirection.ToLower() + if ($AssignmentDirection -notin @('include', 'exclude')) { + $AssignmentDirection = $null + } + } else { + $AssignmentDirection = $null + } + function Get-StandardizedAssignmentList { param($InputObject) @@ -53,9 +67,25 @@ function Invoke-ExecAssignApp { $GroupNames = Get-StandardizedAssignmentList -InputObject $GroupNamesRaw $GroupIds = Get-StandardizedAssignmentList -InputObject $GroupIdsRaw + $ExcludeGroupIds = Get-StandardizedAssignmentList -InputObject $ExcludeGroupIdsRaw + $ExcludeGroupNames = Get-StandardizedAssignmentList -InputObject $ExcludeGroupNamesRaw + + # 'Clear all exclusions' is a Custom Group Exclude + Replace request with no groups selected. + $IsClearExclusions = ($AssignmentDirection -eq 'exclude') -and ($AssignmentMode -eq 'replace') + + if (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0 -and $ExcludeGroupIds.Count -eq 0 -and [string]::IsNullOrWhiteSpace($ExcludeGroup) -and -not $IsClearExclusions) { + throw 'No assignment target provided. Supply AssignTo, GroupNames, GroupIds, or an exclude group.' + } - if (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0) { - throw 'No assignment target provided. Supply AssignTo, GroupNames, or GroupIds.' + # Safety net for legacy/API callers (no assignmentDirection): an exclude-only request in + # 'replace' mode would post just the exclusion target and wipe every existing assignment, so + # force preserve. The Custom Group action sends assignmentDirection and uses direction-scoped + # Replace instead, so it is exempt. + $IsExcludeOnly = (-not $AssignTo -and $GroupIds.Count -eq 0 -and $GroupNames.Count -eq 0) -and + ($ExcludeGroupIds.Count -gt 0 -or -not [string]::IsNullOrWhiteSpace($ExcludeGroup)) + if ($IsExcludeOnly -and $AssignmentMode -eq 'replace' -and -not $AssignmentDirection) { + Write-Information 'Exclude-only assignment requested; forcing append mode to preserve existing assignments.' + $AssignmentMode = 'append' } # Try to get the application type if not provided. Mostly just useful for ppl using the API that dont know the application type. @@ -78,7 +108,8 @@ function Invoke-ExecAssignApp { } elseif ($GroupIds.Count -gt 0) { "GroupIds: $($GroupIds -join ',')" } else { - 'CustomGroupAssignment' + # Exclude-only assignment: no include target, so the helper must not try to resolve one + $null } $setParams = @{ @@ -110,6 +141,18 @@ function Invoke-ExecAssignApp { $setParams.ExcludeGroup = $ExcludeGroup } + if ($ExcludeGroupIds.Count -gt 0) { + $setParams.ExcludeGroupIds = $ExcludeGroupIds + } + + if ($ExcludeGroupNames.Count -gt 0) { + $setParams.ExcludeGroupNames = $ExcludeGroupNames + } + + if ($AssignmentDirection) { + $setParams.AssignmentDirection = $AssignmentDirection + } + try { $Result = Set-CIPPAssignedApplication @setParams $StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecDeployAppTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecDeployAppTemplate.ps1 index 55ea43ce06514..b09f5f3e07d78 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecDeployAppTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ExecDeployAppTemplate.ps1 @@ -51,7 +51,12 @@ function Invoke-ExecDeployAppTemplate { try { $Config = $App.config if ($Config -is [string]) { - $Config = $Config | ConvertFrom-Json -Depth 100 + # Parse case-sensitive to survive templates carrying both 'applicationName' + # and 'ApplicationName', then collapse them via a case-insensitive dictionary. + $Parsed = $Config | ConvertFrom-Json -Depth 100 -AsHashtable + $Config = [ordered]@{} + foreach ($Key in $Parsed.Keys) { $Config[$Key] = $Parsed[$Key] } + $Config = [PSCustomObject]$Config } $AppType = "$($App.appType ?? $App.AppType)" diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 index f2d0dc06d28cb..9a401a15a400f 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Applications/Invoke-ListApps.ps1 @@ -67,7 +67,7 @@ function Invoke-ListApps { } '#microsoft.graph.exclusionGroupAssignmentTarget' { $groupName = ($Groups | Where-Object { $_.id -eq $target.groupId }).displayName - if ($groupName) { $AppExclude.Add($groupName) } + if ($groupName) { $AppExclude.Add("$groupName$intentSuffix") } } } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 index 56dc7c0bda121..ee7a42396de3a 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAPDevice.ps1 @@ -47,27 +47,54 @@ function Invoke-AddAPDevice { $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) - 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' + } until ($NewStatus.status -in @('finished', 'finished_with_errors') -or $Amount -eq 4) + if ($NewStatus.status -notin @('finished', 'finished_with_errors')) { 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 $Headers -API $APIName -tenant $($Request.body.TenantFilter.value) -message "Created Autopilot devices group. Group ID is $GroupName" -Sev 'Info' - [PSCustomObject]@{ - Status = 'Import Job Completed' - Devices = @($NewStatus.devicesStatus) + # DEBUG: dump the raw status so we can inspect what Partner Center returns per device. + Write-Host "RAW NewStatus: $($NewStatus | ConvertTo-Json -Depth 10)" + + # Build one result per device (DeviceUploadDetails) so the frontend renders a + # single bar each, instead of flattening raw device fields into many stray bars. + $Index = 0 + $DeviceResults = foreach ($Device in @($NewStatus.devicesStatus)) { + $Index++ + # Hash-only uploads return no serial/productKey/deviceId; fall back to a number. + $DeviceId = $Device.serialNumber ?? $Device.productKey ?? $Device.deviceId + $Label = $DeviceId ?? "Device $Index" + $IsError = $Device.status -match 'error' + $Text = "$($Label): $($Device.status)" + if ($IsError -and $Device.errorDescription) { + $Text += " - $($Device.errorCode) $($Device.errorDescription)" + } + # Log each device with the input data that was submitted for it (matched by position). + $InputDevice = @($rawDevices)[$Index - 1] + Write-LogMessage -headers $Headers -API $APIName -tenant $($Request.Body.TenantFilter.value) -message "Autopilot import - $Text" -Sev $(if ($IsError) { 'Error' } else { 'Info' }) -LogData $InputDevice + [PSCustomObject]@{ + resultText = $Text + state = if ($IsError) { 'error' } else { 'success' } + copyField = $DeviceId + details = $Device + } + } + if (-not $DeviceResults) { + $DeviceResults = [PSCustomObject]@{ resultText = "Import job '$($NewStatus.status)' for group $GroupName"; state = 'success' } } $StatusCode = [HttpStatusCode]::OK + # Emit as the try block's value so the outer `$Result = try {...}` captures it. + $DeviceResults } catch { $ErrorMessage = Get-CippException -Exception $_ $StatusCode = [HttpStatusCode]::InternalServerError [PSCustomObject]@{ - Status = "$($Request.Body.TenantFilter.value): Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" - Devices = @() + resultText = "$($Request.Body.TenantFilter.value): Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" + state = 'error' } Write-LogMessage -headers $Headers -API $APIName -tenant $($Request.Body.TenantFilter.value) -message "Failed to create autopilot devices. $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = @{'Results' = $Result } + Body = @{'Results' = @($Result) } }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 index a928c923b6d95..52591cc8b3aa2 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/Autopilot/Invoke-AddAutopilotConfig.ps1 @@ -12,6 +12,15 @@ function Invoke-AddAutopilotConfig { $Headers = $Request.Headers $Tenants = $Request.Body.selectedTenants.value $Profbod = [pscustomobject]$Request.Body + + $NameCheck = Test-CIPPAutopilotProfileName -DisplayName $Request.Body.DisplayName + if (-not $NameCheck.IsValid) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{'Results' = $NameCheck.Message } + }) + } + $UserType = if ($Profbod.NotLocalAdmin -eq 'true') { 'standard' } else { 'administrator' } $DeploymentMode = if ($Profbod.DeploymentMode -eq 'true') { 'shared' } else { 'singleUser' } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAddCippCveException.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAddCippCveException.ps1 new file mode 100644 index 0000000000000..060ac28b2d690 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAddCippCveException.ps1 @@ -0,0 +1,113 @@ +function Invoke-ExecAddCippCveException { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + try { + $CveId = [string]$Request.Body.cveId + $ExceptionType = [string]$Request.Body.exceptionType + $ApplyTo = [string]$Request.Body.applyTo + $Justification = [string]$Request.Body.justification + $ExpiryDate = if ($Request.Body.expiryDate) { [string]$Request.Body.expiryDate } else { $null } + + if (-not $CveId -or -not $ExceptionType -or -not $ApplyTo -or -not $Justification) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'Error: cveId, exceptionType, applyTo, and justification are required' } + } + } + + $CveExceptionsTable = Get-CIPPTable -TableName 'CveExceptions' + $CveCacheTable = Get-CIPPTable -TableName 'CveCache' + + # Load all existing exceptions for this CVE + $AllCveExceptions = Get-CIPPAzDataTableEntity @CveExceptionsTable -Filter "PartitionKey eq '$CveId'" + + $TenantsToUpdate = switch ($ApplyTo) { + 'CurrentTenant' { + if (-not $TenantFilter -or $TenantFilter -eq 'AllTenants') { + throw "Current tenant must be selected to use 'Current Tenant Only' option" + } + @($TenantFilter) + } + 'AllAffected' { + $RawCveData = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'DefenderCVEs' | Where-Object { $_.RowKey -ne 'DefenderCVEs-Count' } + $AffectedEntries = $RawCveData.Data | ConvertFrom-Json | -Filter "PartitionKey eq '$CveId'" + @($AffectedEntries | Select-Object -ExpandProperty customerId -Unique) + } + 'Global' { + @('ALL') + } + default { + throw "Invalid applyTo value: $ApplyTo" + } + } + + $Username = $Headers.'x-ms-client-principal-name' + $CurrentDate = (Get-Date).ToUniversalTime().ToString('o') + $ReadableDate = (Get-Date).ToString() + + $ExceptionsAdded = [System.Collections.Generic.List[string]]::new() + $ExceptionsUpdated = [System.Collections.Generic.List[string]]::new() + + # Build all exception entities in memory, track add vs update + $ExceptionEntities = foreach ($TenantId in $TenantsToUpdate) { + $ExistingException = $AllCveExceptions | Where-Object { $_.RowKey -eq $TenantId } + + if ($ExistingException) { + [void]$ExceptionsUpdated.Add($TenantId) + } else { + [void]$ExceptionsAdded.Add($TenantId) + } + + @{ + PartitionKey = [string]$CveId + RowKey = [string]$TenantId + cveId = [string]$CveId + customerId = [string]$TenantId + exceptionType = [string]$ExceptionType + exceptionComment = [string]$Justification + exceptionCreatedBy = [string]$Username + exceptionCreatedDate = [string]$CurrentDate + exceptionReadableDate = [string]$ReadableDate + exceptionExpiry = $ExpiryDate ?? '' + source = 'CIPP' + } + } + + # Write all exception entities in one batch + if (@($ExceptionEntities).Count -gt 0) { + Add-CIPPAzDataTableEntity @CveExceptionsTable -Entity @($ExceptionEntities) -Force + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Added/updated CVE exception for $CveId across $($TenantsToUpdate.Count) tenant(s)" -sev 'Info' + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ + Results = "Successfully applied exception to CVE $CveId" + TenantsAffected = $TenantsToUpdate.Count + ExceptionsAdded = $ExceptionsAdded.Count + ExceptionsUpdated = $ExceptionsUpdated.Count + Details = "Added: $($ExceptionsAdded -join ', '), Updated: $($ExceptionsUpdated -join ', ')" + } + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Failed to add CVE exception: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = "Failed to add exception: $($ErrorMessage.NormalizedError)" } + } + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 index ce22cb30d03f5..147f670e64fd5 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecAssignPolicy.ps1 @@ -18,9 +18,12 @@ function Invoke-ExecAssignPolicy { $AssignTo = $Request.Body.AssignTo $PlatformType = $Request.Body.platformType $ExcludeGroup = $Request.Body.excludeGroup + $ExcludeGroupIdsRaw = $Request.Body.ExcludeGroupIds + $ExcludeGroupNamesRaw = $Request.Body.ExcludeGroupNames $GroupIdsRaw = $Request.Body.GroupIds $GroupNamesRaw = $Request.Body.GroupNames $AssignmentMode = $Request.Body.assignmentMode + $AssignmentDirection = $Request.Body.assignmentDirection $AssignmentFilterName = $Request.Body.AssignmentFilterName $AssignmentFilterType = $Request.Body.AssignmentFilterType @@ -41,16 +44,41 @@ function Invoke-ExecAssignPolicy { $GroupIds = Get-StandardizedList -InputObject $GroupIdsRaw $GroupNames = Get-StandardizedList -InputObject $GroupNamesRaw + $ExcludeGroupIds = Get-StandardizedList -InputObject $ExcludeGroupIdsRaw + $ExcludeGroupNames = Get-StandardizedList -InputObject $ExcludeGroupNamesRaw # Validate and default AssignmentMode if ([string]::IsNullOrWhiteSpace($AssignmentMode)) { - $AssignmentMode = 'replace' + $AssignmentMode = 'append' } $AssignTo = if ($AssignTo -ne 'on') { $AssignTo } + # assignmentDirection is sent only by the Custom Group action and switches that request to + # direction-scoped Replace (preserve the other direction + All Users/All Devices broad targets). + if (-not [string]::IsNullOrWhiteSpace($AssignmentDirection)) { + $AssignmentDirection = $AssignmentDirection.ToLower() + if ($AssignmentDirection -notin @('include', 'exclude')) { + $AssignmentDirection = $null + } + } else { + $AssignmentDirection = $null + } + + # 'Clear all exclusions' is a Custom Group Exclude + Replace request with no groups selected. + $IsClearExclusions = ($AssignmentDirection -eq 'exclude') -and ($AssignmentMode -eq 'replace') + + # Safety net for legacy/API callers (no assignmentDirection): an exclude-only request in + # 'replace' mode would post just the exclusion target and wipe every existing assignment. The + # Custom Group action sends assignmentDirection and uses direction-scoped Replace instead. + $IsExcludeOnly = (-not $AssignTo -and @($GroupIds).Count -eq 0 -and @($GroupNames).Count -eq 0) -and + (@($ExcludeGroupIds).Count -gt 0 -or -not [string]::IsNullOrWhiteSpace($ExcludeGroup)) + if ($IsExcludeOnly -and $AssignmentMode -eq 'replace' -and -not $AssignmentDirection) { + $AssignmentMode = 'append' + } + $Results = try { - if ($AssignTo -or @($GroupIds).Count -gt 0) { + if ($AssignTo -or @($GroupIds).Count -gt 0 -or @($ExcludeGroupIds).Count -gt 0 -or -not [string]::IsNullOrWhiteSpace($ExcludeGroup) -or $IsClearExclusions) { $params = @{ PolicyId = $ID TenantFilter = $TenantFilter @@ -76,6 +104,18 @@ function Invoke-ExecAssignPolicy { $params.ExcludeGroup = $ExcludeGroup } + if (@($ExcludeGroupIds).Count -gt 0) { + $params.ExcludeGroupIds = @($ExcludeGroupIds) + } + + if (@($ExcludeGroupNames).Count -gt 0) { + $params.ExcludeGroupNames = @($ExcludeGroupNames) + } + + if ($AssignmentDirection) { + $params.AssignmentDirection = $AssignmentDirection + } + if (-not [string]::IsNullOrWhiteSpace($AssignmentFilterName)) { $params.AssignmentFilterName = $AssignmentFilterName } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecCompareIntunePolicy.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecCompareIntunePolicy.ps1 index 26f924e6e1958..8ee45df653588 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecCompareIntunePolicy.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecCompareIntunePolicy.ps1 @@ -21,6 +21,8 @@ function Invoke-ExecCompareIntunePolicy { 'WindowsFeatureUpdateProfiles' = 'windowsFeatureUpdateProfiles' 'windowsQualityUpdatePolicies' = 'windowsQualityUpdatePolicies' 'windowsQualityUpdateProfiles' = 'windowsQualityUpdateProfiles' + 'Intents' = 'Intents' + 'ManagedAppPolicies' = 'AppProtection' } try { @@ -32,6 +34,74 @@ function Invoke-ExecCompareIntunePolicy { throw 'Both sourceA and sourceB are required' } + # Load a stored Intune template. When a tenant is supplied the template is put through the + # same preparation the IntuneTemplate standard uses - nesting repair, reusable settings sync + # and text replacement - so a comparison made here matches what drift reports for that tenant. + function Get-ComparisonTemplate { + param( + [Parameter(Mandatory = $true)] + [string]$TemplateGuid, + [string]$TenantFilter, + [string]$Label + ) + + $Table = Get-CippTable -tablename 'templates' + $TemplateEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'IntuneTemplate' and RowKey eq '$TemplateGuid'" + + if (-not $TemplateEntity) { + throw "$Label : Template with GUID '$TemplateGuid' not found" + } + + $JSONData = $TemplateEntity.JSON | ConvertFrom-Json -Depth 100 + $JSONData = Repair-CIPPIntuneTemplateNesting -Template $JSONData -Table $Table + $RawJSON = $JSONData.RAWJson + + if ($TenantFilter) { + try { + $ReusableSync = Sync-CIPPReusablePolicySettings -TemplateInfo $JSONData -Tenant $TenantFilter -ErrorAction Stop + if ($ReusableSync.RawJSON) { + $RawJSON = $ReusableSync.RawJSON + } + } catch { + Write-Warning "$Label : Failed to sync reusable policy settings - $($_.Exception.Message)" + } + $RawJSON = Get-CIPPTextReplacement -Text $RawJSON -TenantFilter $TenantFilter -EscapeForJson + } + + return @{ + Object = $RawJSON | ConvertFrom-Json -Depth 100 + TemplateType = Get-CIPPIntuneTemplateType -Type $JSONData.Type -RawJson $RawJSON + DisplayName = $JSONData.Displayname + } + } + + # A standard can be configured to replace a similarly named policy on deployment rather than + # create a new one. That setting lives on the standards template, keyed by the Intune + # template GUID, and is stored as a string by the settings form. + function Get-StandardFuzzyDistance { + param( + [string]$StandardsTemplateId, + [string]$TemplateGuid + ) + + if (-not $StandardsTemplateId) { return 0 } + + try { + $Table = Get-CippTable -tablename 'templates' + $Entity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'StandardsTemplateV2' and RowKey eq '$StandardsTemplateId'" + if (-not $Entity) { return 0 } + + $Standards = ($Entity.JSON | ConvertFrom-Json -Depth 100).standards.IntuneTemplate + $Match = @($Standards) | Where-Object { $_.TemplateList.value -eq $TemplateGuid } | Select-Object -First 1 + + if ([string]::IsNullOrWhiteSpace($Match.levenshteinDistance)) { return 0 } + return [int]$Match.levenshteinDistance + } catch { + Write-Warning "Could not read the fuzzy match distance from standards template '$StandardsTemplateId': $($_.Exception.Message)" + return 0 + } + } + # Resolve a source descriptor to its policy object and metadata function Resolve-PolicySource { param( @@ -44,23 +114,95 @@ function Invoke-ExecCompareIntunePolicy { if (-not $Source.templateGuid) { throw "$Label : templateGuid is required for template sources" } - $Table = Get-CippTable -tablename 'templates' - $Filter = "PartitionKey eq 'IntuneTemplate' and RowKey eq '$($Source.templateGuid)'" - $TemplateEntity = Get-CIPPAzDataTableEntity @Table -Filter $Filter - if (-not $TemplateEntity) { - throw "$Label : Template with GUID '$($Source.templateGuid)' not found" + # tenantFilter is optional here - supplying it resolves the template the way the + # standard would for that tenant instead of comparing the stored template verbatim. + $Template = Get-ComparisonTemplate -TemplateGuid $Source.templateGuid -TenantFilter $Source.tenantFilter -Label $Label + $LabelSuffix = if ($Source.tenantFilter) { "Template, resolved for $($Source.tenantFilter)" } else { 'Template' } + + return @{ + Object = $Template.Object + TemplateType = $Template.TemplateType + Label = "$($Template.DisplayName) ($LabelSuffix)" + RawData = $Template.Object + } + + } elseif ($Source.type -eq 'tenantPolicyByTemplate') { + # Used by the drift and standards pages, which know the template a standard points at + # but not which policy in the tenant it landed on. Matches the standard's own lookup: + # by the template's display name and type. + if (-not $Source.templateGuid -or -not $Source.tenantFilter) { + throw "$Label : templateGuid and tenantFilter are required for tenantPolicyByTemplate sources" + } + + $Template = Get-ComparisonTemplate -TemplateGuid $Source.templateGuid -Label $Label + + if (-not $Template.TemplateType) { + throw "$Label : Template '$($Template.DisplayName)' has no policy type and none could be inferred. Re-import the template to fix this." } - $JSONData = $TemplateEntity.JSON | ConvertFrom-Json -Depth 100 - $PolicyObj = $JSONData.RAWJson | ConvertFrom-Json -Depth 100 - $TemplateType = $JSONData.Type + $Policy = Get-CIPPIntunePolicy -TemplateType $Template.TemplateType -DisplayName $Template.DisplayName -tenantFilter $Source.tenantFilter -Headers $Headers -APINAME $APIName + $MatchType = 'exact' + $MatchedName = $Template.DisplayName + + # Without this the comparison would report the policy as missing while remediation + # would happily overwrite an existing, similarly named one. Mirrors the candidate + # selection Set-CIPPIntunePolicy performs at deployment time. + $MaxDistance = Get-StandardFuzzyDistance -StandardsTemplateId $Source.standardsTemplateId -TemplateGuid $Source.templateGuid + + if (-not $Policy -and $MaxDistance -gt 0) { + $AllPolicies = @(Get-CIPPIntunePolicy -TemplateType $Template.TemplateType -tenantFilter $Source.tenantFilter -Headers $Headers -APINAME $APIName) + + $FuzzyParams = @{ + DisplayName = $Template.DisplayName + ExistingPolicies = $AllPolicies + MaxDistance = $MaxDistance + } + # Same sub-type guards the deployment applies, so a similarly named policy of a + # different type is not offered as the match. + if ($Template.TemplateType -eq 'Catalog') { + $FuzzyParams.NameProperty = 'name' + if ($Template.Object.templateReference.templateId) { + $FuzzyParams.TemplateId = $Template.Object.templateReference.templateId + } + } elseif ($Template.Object.'@odata.type') { + $FuzzyParams.ODataType = $Template.Object.'@odata.type' + } + + $FuzzyResult = Find-CIPPFuzzyPolicyMatch @FuzzyParams + if ($FuzzyResult) { + $MatchType = $FuzzyResult.MatchType + $MatchedName = $FuzzyResult.OriginalName + # Re-read by id so nested settings come back expanded the way the + # by-name lookup returns them. + $Policy = Get-CIPPIntunePolicy -TemplateType $Template.TemplateType -PolicyId $FuzzyResult.Policy.id -tenantFilter $Source.tenantFilter -Headers $Headers -APINAME $APIName + } + } + + if (-not $Policy) { + # Not an error. A template that has just been added to a drift or standards + # template legitimately has no policy in the tenant yet, and the caller can still + # show the baseline on its own, which is more useful than a failed comparison. + return @{ + Object = $null + Missing = $true + MissingName = $Template.DisplayName + FuzzyDistance = $MaxDistance + TemplateType = $Template.TemplateType + Label = "$($Template.DisplayName) (not deployed to $($Source.tenantFilter))" + RawData = $null + } + } + + $PolicyObj = $Policy.cippconfiguration | ConvertFrom-Json -Depth 100 return @{ Object = $PolicyObj - TemplateType = $TemplateType - Label = "$($JSONData.Displayname) (Template)" + TemplateType = $Template.TemplateType + Label = "$MatchedName ($($Source.tenantFilter))" RawData = $PolicyObj + MatchType = $MatchType + MatchedName = $MatchedName } } elseif ($Source.type -eq 'tenantPolicy') { @@ -125,6 +267,7 @@ function Invoke-ExecCompareIntunePolicy { '*configurationPolicies*' { 'Catalog' } '*managedAppPolicies*' { 'AppProtection' } '*deviceAppManagement*' { 'AppProtection' } + '*intents*' { 'Intents' } default { 'Unknown' } } $PolicyObj = $ParsedJson @@ -139,13 +282,41 @@ function Invoke-ExecCompareIntunePolicy { } } else { - throw "$Label : Invalid source type '$($Source.type)'. Must be 'template', 'tenantPolicy', or 'communityRepo'" + throw "$Label : Invalid source type '$($Source.type)'. Must be 'template', 'tenantPolicy', 'tenantPolicyByTemplate', or 'communityRepo'" } } $ResolvedA = Resolve-PolicySource -Source $SourceA -Label 'Source A' $ResolvedB = Resolve-PolicySource -Source $SourceB -Label 'Source B' + # With one side absent there is nothing to diff. Report that as its own state and hand back + # whichever side does exist, so the caller can still show it. + if ($ResolvedA.Missing -or $ResolvedB.Missing) { + $MissingBody = @{ + Results = @() + sourceALabel = $ResolvedA.Label + sourceBLabel = $ResolvedB.Label + sourceAData = $ResolvedA.RawData + sourceBData = $ResolvedB.RawData + identical = $false + policyMissing = $true + # The name that was searched for, and which side is absent, so the caller can say + # exactly what is missing rather than just that something is. + missingPolicyName = $ResolvedA.Missing ? $ResolvedA.MissingName : $ResolvedB.MissingName + missingSide = $ResolvedA.Missing ? 'baseline' : 'tenant' + # Tells the caller whether fuzzy matching was even in play, so a "not found" can be + # explained as "exact name only" rather than looking like a broader search failed. + fuzzyDistance = $ResolvedA.Missing ? $ResolvedA.FuzzyDistance : $ResolvedB.FuzzyDistance + } + + Write-LogMessage -headers $Headers -API $APIName -message "Compared Intune policies: $($ResolvedA.Label) vs $($ResolvedB.Label) - one side does not exist" -Sev 'Info' + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 100 -InputObject $MissingBody + }) + } + # Determine compare type $CompareParams = @{ ReferenceObject = $ResolvedA.Object @@ -158,7 +329,7 @@ function Invoke-ExecCompareIntunePolicy { # Run the comparison $CompareResult = Compare-CIPPIntuneObject @CompareParams - $ComparisonResults = if ($null -eq $CompareResult) { @() } else { @($CompareResult) } + $ComparisonResults = @($CompareResult | Where-Object { $null -ne $_ }) $ResultBody = @{ Results = $ComparisonResults @@ -167,6 +338,10 @@ function Invoke-ExecCompareIntunePolicy { sourceAData = $ResolvedA.RawData sourceBData = $ResolvedB.RawData identical = ($ComparisonResults.Count -eq 0) + # Non-exact means the tenant policy was found under a different name, which changes how + # the result should be read - the caller says so rather than implying a name match. + matchType = $ResolvedB.MatchType ?? $ResolvedA.MatchType + matchedName = $ResolvedB.MatchedName ?? $ResolvedA.MatchedName } Write-LogMessage -headers $Headers -API $APIName -message "Compared Intune policies: $($ResolvedA.Label) vs $($ResolvedB.Label) - $($ComparisonResults.Count) differences found" -Sev 'Info' diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 index 76de8b21de39c..8b3123ea19d14 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecDeviceAction.ps1 @@ -38,6 +38,15 @@ function Invoke-ExecDeviceAction { Write-Host "ActionBody: $ActionBody" break } + 'createDeviceLogCollectionRequest' { + $ActionBody = @{ + templateType = @{ + '@odata.type' = '#microsoft.graph.deviceLogCollectionRequest' + templateType = 'predefined' + } + } | ConvertTo-Json -Compress -Depth 5 + break + } default { $ActionBody = $Request.Body | ConvertTo-Json -Compress } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecRemoveCippCveException.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecRemoveCippCveException.ps1 new file mode 100644 index 0000000000000..a263d81176ac0 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ExecRemoveCippCveException.ps1 @@ -0,0 +1,77 @@ +function Invoke-ExecRemoveCippCveException { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.Alert.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + try { + $CveId = $Request.Query.cveId ?? $Request.Body.cveId + $RemoveScope = $Request.Query.removeScope ?? $Request.Body.removeScope + + if (-not $CveId) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'Error: cveId is required' } + } + } + + $CveExceptionsTable = Get-CIPPTable -TableName 'CveExceptions' + + # Load all exceptions for this CVE + $AllCveExceptions = Get-CIPPAzDataTableEntity @CveExceptionsTable -Filter "PartitionKey eq '$CveId'" + + $ExceptionsToRemove = switch ($RemoveScope) { + 'CurrentTenant' { + if (-not $TenantFilter -or $TenantFilter -eq 'AllTenants') { + throw 'Current tenant must be selected' + } + @($TenantFilter) + } + 'AllAffected' { + @($AllCveExceptions | Where-Object { $_.RowKey -ne 'ALL' } | Select-Object -ExpandProperty RowKey) + } + 'Global' { + @('ALL') + } + default { + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + @($TenantFilter) + } else { + throw 'removeScope must be specified when no tenant is selected' + } + } + } + + # Remove matched exception entities + $EntitiesToRemove = $AllCveExceptions | Where-Object { $_.RowKey -in $ExceptionsToRemove } + $RemovedCount = 0 + + foreach ($Entity in $EntitiesToRemove) { + Remove-AzDataTableEntity @CveExceptionsTable -Entity $Entity -Force + $RemovedCount++ + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Removed $RemovedCount CVE exception(s) for $CveId" -sev 'Info' + + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = "Successfully removed $RemovedCount exception(s) for CVE $CveId" } + } + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Failed to remove CVE exception: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = "Failed to remove exception: $($ErrorMessage.NormalizedError)" } + } + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCVEManagement.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCVEManagement.ps1 new file mode 100644 index 0000000000000..2181469344d59 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListCVEManagement.ps1 @@ -0,0 +1,189 @@ +function Invoke-ListCVEManagement { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Endpoint.Security.Read + #> + + [CmdletBinding()] + param($Request, $TriggerMetadata) + # Interact with query parameters or the body of the request. + $TenantFilter = $Request.Query.tenantFilter + $UseReportDB = $Request.Query.UseReportDB + + # AllTenants always uses the reporting database - the live path queries a single tenant's + # Defender TVM API and cannot fan out across tenants within one request. + if ($UseReportDB -eq 'true' -or $TenantFilter -eq 'AllTenants') { + try { + $GraphRequest = Get-CIPPCVEReport -TenantFilter $TenantFilter -ErrorAction Stop + $StatusCode = [HttpStatusCode]::OK + $SortedCves = $GraphRequest + Write-LogMessage -API 'ListCVEManagement' -tenant $TenantFilter -message 'running cve report' -sev 'info' + } catch { + Write-Host "Error retrieving CVEs from report database: $($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = $_.Exception.Message + Write-LogMessage -API 'ListCVEManagement' -tenant $TenantFilter -message 'Error retrieving' -sev 'info' + } + } else { + try { + Write-LogMessage -API 'ListCVEManagement' -tenant $TenantFilter -message 'retrieving CVEs' -sev 'info' + $GraphRequest = get-DefenderCVEs -TenantFilter $TenantFilter + + # Retrieve Exceptions from Exception database + $CveExceptionsTable = Get-CIPPTable -TableName 'CveExceptions' + $AllExceptions = Get-CIPPAzDataTableEntity @CveExceptionsTable + $ExceptionsByCve = @{} + + # Retrieve CVEs from database + $RawCveItems = $GraphRequest + $AllCachedCves = $RawCveData + + $TenantList = Get-Tenants | Where-Object defaultDomainName -EQ $TenantFilter + + if ($RawCveItems.Count -eq 0) { + return @() + } + + foreach ($Ex in $AllExceptions) { + if ($TenantList.defaultDomainName -contains $Ex.customerId -or $Ex.customerId -eq 'ALL') { + if (-not $ExceptionsByCve.ContainsKey($Ex.cveId)) { + $ExceptionsByCve[$Ex.cveId] = [System.Collections.Generic.List[object]]::new() + } + + [void]$ExceptionsByCve[$Ex.cveId].Add([PSCustomObject]@{ + cveId = $Ex.cveId + customerId = $Ex.customerId + exceptionType = $Ex.exceptionType + exceptionSource = $Ex.exceptionSource + exceptionComment = $Ex.exceptionComment + exceptionCreatedBy = $Ex.exceptionCreatedBy + exceptionDate = $Ex.exceptionReadableDate + exceptionExpiry = $Ex.exceptionExpiry + }) + } + } + + # Merge all results + $CveMasterTable = @{} + + foreach ($Item in $RawCveItems) { + $CveId = $Item.PartitionKey + + if (-not $CveMasterTable.ContainsKey($CveId)) { + $CveMasterTable[$CveId] = @{ + cveId = $CveId + vulnerabilitySeverityLevel = $Item.vulnerabilitySeverityLevel + exploitabilityLevel = $Item.exploitabilityLevel + softwareName = $Item.softwareName + softwareVendor = $Item.softwareVendor + softwareVersion = $Item.softwareVersion + lastUpdated = $Item.lastUpdated + TotalDeviceCount = 0 + AffectedTenantsList = [System.Collections.Generic.List[object]]::new() + AffectedDevicesList = [System.Collections.Generic.List[object]]::new() + DiskPathList = [System.Collections.Generic.List[object]]::new() + RegistryPathList = [System.Collections.Generic.List[object]]::new() + ExceptionMatchCount = 0 + TotalTenantGroupCount = 0 + ExceptionSources = [System.Collections.Generic.HashSet[string]]::new() + } + } + + $CveGroup = $CveMasterTable[$CveId] + $CveGroup.TotalTenantGroupCount++ + + [void]$CveGroup.AffectedTenantsList.Add(@{ customerId = $Item.customerId }) + + # Unpack the device JSON details from the row + if ($Item.deviceDetailsJson) { + $Devices = ConvertFrom-Json $Item.deviceDetailsJson | Sort-Object -Property deviceName -Unique + foreach ($Dev in $Devices) { + [void]$CveGroup.AffectedDevicesList.Add(@{ deviceName = $Dev.deviceName }) + if ($Dev.registryPaths) { + [void]$CveGroup.RegistryPathList.Add(@{ deviceName = $Dev.deviceName + registryPaths = $Dev.registryPaths + }) + } + if ($Dev.diskPaths) { + [void]$CveGroup.DiskPathList.Add(@{ deviceName = $Dev.deviceName + diskPaths = $Dev.diskPaths + }) + } + $CveGroup.TotalDeviceCount ++ + } + } + } + + # Combine filtered results + $SortedCves = [System.Collections.Generic.List[PSCustomObject]]::new() + + foreach ($CveKey in $CveMasterTable.Keys) { + $Target = $CveMasterTable[$CveKey] + $ExceptionStatus = 'None' + $HasException = $false + $Exceptions = @{} + $ExceptionType = '' + $ExceptionComment = '' + $ExceptionCreatedBy = '' + $ExceptionDate = '' + $ExceptionExpiry = '' + + if ($ExceptionsByCve.ContainsKey($CveKey)) { + $Exceptions = @($ExceptionsByCve[$CveKey]) + $HasException = $true + $ExceptionStatus = if ($Exceptions.customerId -contains 'ALL') { 'All' } else { 'Partial' } + $ExceptionType = @{ customerId = $Exceptions.customerId + exceptionType = $Exceptions.exceptionType + } + $ExceptionComment = @{ customerId = $Exceptions.customerId + exceptionComment = $Exceptions.exceptionComment + } + $ExceptionCreatedBy = @{ customerId = $Exceptions.customerId + exceptionCreatedBy = $Exceptions.exceptionCreatedBy + } + $ExceptionDate = @{ customerId = $Exceptions.customerId + exceptionDate = $Exceptions.exceptionDate + } + $ExceptionExpiry = @{ customerId = $Exceptions.customerId + exceptionExpiry = $Exceptions.exceptionExpiry + } + } + + [void]$SortedCves.Add([PSCustomObject]@{ + cveId = $Target.cveId + vulnerabilitySeverityLevel = $Target.vulnerabilitySeverityLevel + exploitabilityLevel = $Target.exploitabilityLevel + softwareName = $Target.softwareName + softwareVendor = $Target.softwareVendor + softwareVersion = $Target.softwareVersion + deviceCount = $Target.TotalDeviceCount + tenantCount = $Target.TotalTenantGroupCount + registryPaths = $Target.RegistryPathList + diskPaths = $Target.DiskPathList + exceptionStatus = $ExceptionStatus + hasException = $HasException + affectedTenants = $Target.AffectedTenantsList + affectedDevices = $Target.AffectedDevicesList + exceptionType = $ExceptionType + exceptionComment = $ExceptionComment + exceptionCreatedBy = $ExceptionCreatedBy + exceptionDate = $ExceptionDate + exceptionExpiry = $ExceptionExpiry + cacheTimeStamp = $Target.lastUpdated + }) + $StatusCode = [HttpStatusCode]::OK + } + + } catch { + Write-Host "Error retrieving CVEs: $($_.Exception.Message)" + $StatusCode = [HttpStatusCode]::InternalServerError + $SortedCves = $_.Exception.Message + } + } + return [HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($SortedCves | Sort-Object -Property cveId) + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 index 0354734b23238..2b99a66590ce4 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntunePolicy.ps1 @@ -1,4 +1,3 @@ - function Invoke-ListIntunePolicy { <# .FUNCTIONALITY @@ -216,6 +215,21 @@ function Invoke-ListIntunePolicy { method = 'GET' url = "/deviceManagement/configurationPolicies?`$expand=assignments&`$top=1000" } + @{ + id = 'deviceCompliancePolicies' + method = 'GET' + url = "/deviceManagement/deviceCompliancePolicies?`$expand=assignments&`$top=1000" + } + @{ + id = 'Intents' + method = 'GET' + url = "/deviceManagement/intents?`$top=1000" + } + @{ + id = 'ManagedAppPolicies' + method = 'GET' + url = '/deviceAppManagement/managedAppPolicies?$orderby=displayName' + } ) $BulkResults = New-GraphBulkRequest -Requests $BulkRequests -tenantid $TenantFilter @@ -226,7 +240,9 @@ function Invoke-ListIntunePolicy { $GraphRequest = $BulkResults | Where-Object { $_.id -ne 'Groups' } | ForEach-Object { $URLName = $_.Id $_.body.Value | ForEach-Object { - $policyTypeName = switch -Wildcard ($_.'assignments@odata.context') { + $AssignmentContext = $_.'assignments@odata.context' + $PolicyODataType = $_.'@odata.type' + $policyTypeName = switch -Wildcard ($AssignmentContext) { '*microsoft.graph.windowsIdentityProtectionConfiguration*' { 'Identity Protection' } '*microsoft.graph.windows10EndpointProtectionConfiguration*' { 'Endpoint Protection' } '*microsoft.graph.windows10CustomConfiguration*' { 'Custom' } @@ -244,7 +260,26 @@ function Invoke-ListIntunePolicy { '*iosUpdateConfiguration*' { 'iOS Update Configuration' } '*windowsDriverUpdateProfiles*' { 'Driver Update' } '*configurationPolicies*' { 'Device Configuration' } - default { $_.'assignments@odata.context' } + '*deviceCompliancePolicies*' { 'Compliance Policy' } + '*intents*' { 'Endpoint Security' } + default { $null } + } + # Fall back to the request type when the assignment context does not identify the policy + # (e.g. Intents are listed without expanding assignments). + if ([string]::IsNullOrWhiteSpace($policyTypeName)) { + $policyTypeName = switch ($URLName) { + 'deviceCompliancePolicies' { 'Compliance Policy' } + 'Intents' { 'Endpoint Security' } + 'ManagedAppPolicies' { + switch -Wildcard ($PolicyODataType) { + '*iosManagedAppProtection*' { 'iOS App Protection' } + '*androidManagedAppProtection*' { 'Android App Protection' } + '*windowsManagedAppProtection*' { 'Windows App Protection' } + default { 'App Protection' } + } + } + default { $AssignmentContext } + } } $Assignments = $_.assignments.target | Select-Object -Property '@odata.type', groupId $PolicyAssignment = [System.Collections.Generic.List[string]]::new() diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 index 3dd078da0045b..e0247a8ce9556 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemovePolicy.ps1 @@ -16,15 +16,23 @@ function Invoke-RemovePolicy { $TenantFilter = $Request.Query.tenantFilter ?? $Request.body.tenantFilter $PolicyId = $Request.Query.ID ?? $Request.body.ID $UrlName = $Request.Query.URLName ?? $Request.body.URLName - $BaseEndpoint = switch ($UrlName) { - 'managedAppPolicies' { 'deviceAppManagement' } - 'mobileAppConfigurations' { 'deviceAppManagement' } - default { 'deviceManagement' } + # App protection policy lists expose the singular @odata.type as the URLName, but a Graph + # DELETE needs the plural collection segment under deviceAppManagement. Normalize here. + $GraphPath = switch ($UrlName) { + 'androidManagedAppProtection' { 'deviceAppManagement/androidManagedAppProtections' } + 'iosManagedAppProtection' { 'deviceAppManagement/iosManagedAppProtections' } + 'windowsManagedAppProtection' { 'deviceAppManagement/windowsManagedAppProtections' } + 'mdmWindowsInformationProtectionPolicy' { 'deviceAppManagement/mdmWindowsInformationProtectionPolicies' } + 'windowsInformationProtectionPolicy' { 'deviceAppManagement/windowsInformationProtectionPolicies' } + 'targetedManagedAppConfiguration' { 'deviceAppManagement/targetedManagedAppConfigurations' } + 'managedAppPolicies' { 'deviceAppManagement/managedAppPolicies' } + 'mobileAppConfigurations' { 'deviceAppManagement/mobileAppConfigurations' } + default { "deviceManagement/$UrlName" } } if (!$PolicyId) { exit } try { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($BaseEndpoint)/$($UrlName)('$($PolicyId)')" -type DELETE -tenant $TenantFilter + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/$($GraphPath)('$($PolicyId)')" -type DELETE -tenant $TenantFilter $Results = "Successfully deleted the $UrlName policy with ID: $($PolicyId)" Write-LogMessage -headers $Headers -API $APINAME -message $Results -Sev Info -tenant $TenantFilter diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 index 8d17d0aa0118e..d5c985745043f 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-AddGroupTemplate.ps1 @@ -53,6 +53,8 @@ function Invoke-AddGroupTemplate { allowExternal = $Request.Body.allowExternal username = $Request.Body.username # Can contain variables like @%tenantfilter% licenses = $Request.Body.licenses + aliases = $Request.Body.aliases # One per line, variables allowed + hideFromGAL = $Request.Body.hideFromGAL GUID = $GUID } | ConvertTo-Json -Depth 10 $Table = Get-CippTable -tablename 'templates' diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 index 4a4373733049c..9413c7da609d5 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Groups/Invoke-ListGroupTemplates.ps1 @@ -48,6 +48,8 @@ function Invoke-ListGroupTemplates { allowExternal = $data.allowExternal username = $data.username licenses = $data.licenses + aliases = $data.aliases + hideFromGAL = $data.hideFromGAL GUID = $_.RowKey source = $_.Source isSynced = (![string]::IsNullOrEmpty($_.SHA)) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 index 04bb3c7a4fad5..dd9793aa4c126 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUserDefaults.ps1 @@ -73,13 +73,13 @@ function Invoke-AddUserDefaults { # Contact fields $MobilePhone = $Request.Body.mobilePhone - $BusinessPhones = if ($null -ne $Request.Body.businessPhones) { - if ($Request.Body.businessPhones -is [array]) { $Request.Body.businessPhones[0] } else { $Request.Body.businessPhones } - } elseif ($null -ne $Request.Body.'businessPhones[0]') { - $Request.Body.'businessPhones[0]' - } else { - $null - } + $BusinessPhones = @( + if ($null -ne $Request.Body.businessPhones) { + $Request.Body.businessPhones | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } + } elseif ($null -ne $Request.Body.'businessPhones[0]') { + $Request.Body.'businessPhones[0]' | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } + } + ) $OtherMails = $Request.Body.otherMails # User relations diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 index e5f9f1fc482c6..c9576f8b7fd4b 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1 @@ -19,243 +19,52 @@ function Invoke-EditUser { StatusCode = [HttpStatusCode]::BadRequest Body = $Body }) - return } - $Results = [System.Collections.Generic.List[object]]::new() - $licenses = ($UserObj.licenses).value - $Aliases = if ($UserObj.AddedAliases) { ($UserObj.AddedAliases) -split '\s' } - $AddToGroups = $Request.Body.AddToGroups - $RemoveFromGroups = $Request.Body.RemoveFromGroups - - #Edit the user - try { - Write-Host "$([boolean]$UserObj.MustChangePass)" - $UserPrincipalName = "$($UserObj.username)@$($UserObj.Domain ? $UserObj.Domain : $UserObj.primDomain.value)" - $normalizedOtherMails = @( - @($UserObj.otherMails) | ForEach-Object { - if ($null -ne $_) { - [string]$_ -split ',' + if ($UserObj.Scheduled.Enabled) { + try { + $TaskBody = [pscustomobject]@{ + TenantFilter = $UserObj.tenantFilter + Name = "Edit user: $($UserObj.DisplayName)" + Command = @{ + value = 'Set-CIPPUser' + label = 'Set-CIPPUser' } - } | ForEach-Object { - $_.Trim() - } | Where-Object { - -not [string]::IsNullOrWhiteSpace($_) - } - ) - $BodyToship = [pscustomobject] @{ - 'givenName' = $UserObj.givenName - 'surname' = $UserObj.surname - 'displayName' = $UserObj.displayName - 'department' = $UserObj.department - 'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname - 'userPrincipalName' = $UserPrincipalName - 'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation - 'jobTitle' = $UserObj.jobTitle - 'mobilePhone' = $UserObj.mobilePhone - 'streetAddress' = $UserObj.streetAddress - 'city' = $UserObj.city - 'state' = $UserObj.state - 'postalCode' = $UserObj.postalCode - 'country' = $UserObj.country - 'companyName' = $UserObj.companyName - 'businessPhones' = $UserObj.businessPhones ? @($UserObj.businessPhones) : @() - 'otherMails' = $normalizedOtherMails - 'passwordProfile' = @{ - 'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass - } - } | ForEach-Object { - $NonEmptyProperties = $_.PSObject.Properties | - Where-Object { -not [string]::IsNullOrWhiteSpace($_.Value) } | - Select-Object -ExpandProperty Name - $_ | Select-Object -Property $NonEmptyProperties - } - if ($UserObj.defaultAttributes) { - $UserObj.defaultAttributes | Get-Member -MemberType NoteProperty | ForEach-Object { - if (-not [string]::IsNullOrWhiteSpace($UserObj.defaultAttributes.$($_.Name).value)) { - Write-Host "Editing user and adding $($_.Name) with value $($UserObj.defaultAttributes.$($_.Name).value)" - $BodyToShip | Add-Member -NotePropertyName $_.Name -NotePropertyValue $UserObj.defaultAttributes.$($_.Name).value -Force + Parameters = [pscustomobject]@{ UserObj = $UserObj } + ScheduledTime = $UserObj.Scheduled.date + Reference = $UserObj.reference ?? $null + PostExecution = @{ + Webhook = [bool]$Request.Body.PostExecution.Webhook + Email = [bool]$Request.Body.PostExecution.Email + PSA = [bool]$Request.Body.PostExecution.PSA } } - } - 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 - } + Add-CIPPScheduledTask -Task $TaskBody -hidden $false -DisallowDuplicateName $true -Headers $Headers + $body = [pscustomobject]@{ + 'Results' = @("Successfully created scheduled task to edit user $($UserObj.DisplayName)") } - } - $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.' ) - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Edited user $($UserObj.DisplayName) with id $($UserObj.id)" -Sev Info - if ($UserObj.password) { - $passwordProfile = [pscustomobject]@{'passwordProfile' = @{ 'password' = $UserObj.password; 'forceChangePasswordNextSignIn' = [boolean]$UserObj.MustChangePass } } | ConvertTo-Json - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type PATCH -body $PasswordProfile -Verbose - $Results.Add("Success. The password has been set to $($UserObj.password)") - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Reset $($UserObj.DisplayName)'s Password" -Sev Info - } - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "User edit API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage - $Results.Add( "Failed to edit user. $($ErrorMessage.NormalizedError)") - } - - - #Reassign the licenses - try { - - if ($licenses -or $UserObj.removeLicenses) { - if ($UserObj.sherwebLicense.value) { - $null = Set-SherwebSubscription -Headers $Headers -TenantFilter $UserObj.tenantFilter -SKU $UserObj.sherwebLicense.value -Add 1 - $Results.Add('Added Sherweb License, scheduling assignment') - $taskObject = [PSCustomObject]@{ - TenantFilter = $UserObj.tenantFilter - Name = "Assign License: $UserPrincipalName" - Command = @{ - value = 'Set-CIPPUserLicense' - } - Parameters = [pscustomobject]@{ - UserId = $UserObj.id - APIName = 'Sherweb License Assignment' - AddLicenses = $licenses - UserPrincipalName = $UserPrincipalName - } - ScheduledTime = 0 #right now, which is in the next 15 minutes and should cover most cases. - PostExecution = @{ - Webhook = [bool]$Request.Body.PostExecution.webhook - Email = [bool]$Request.Body.PostExecution.email - PSA = [bool]$Request.Body.PostExecution.psa - } - } - Add-CIPPScheduledTask -Task $taskObject -hidden $false -Headers $Headers - } else { - $CurrentLicenses = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter - #if the list of skuIds in $CurrentLicenses.assignedLicenses is EXACTLY the same as $licenses, we don't need to do anything, but the order in both can be different. - if (($CurrentLicenses.assignedLicenses.skuId -join ',') -eq ($licenses -join ',') -and $UserObj.removeLicenses -eq $false) { - Write-Host "$($CurrentLicenses.assignedLicenses.skuId -join ',') $(($licenses -join ','))" - $Results.Add( 'Success. User license is already correct.' ) - } else { - if ($UserObj.removeLicenses) { - $licResults = Set-CIPPUserLicense -UserPrincipalName $UserPrincipalName -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 -UserPrincipalName $UserPrincipalName -UserId $UserObj.id -TenantFilter $UserObj.tenantFilter -RemoveLicenses $RemoveLicenses -AddLicenses $licenses -Headers $Headers -APIName $APIName - $Results.Add($licResults) - } - - } + } catch { + $body = [pscustomobject]@{ + 'Results' = @("Failed to create scheduled task to edit user $($UserObj.DisplayName): $($_.Exception.Message)") } + $StatusCode = [HttpStatusCode]::InternalServerError } - - } catch { - $ErrorMessage = Get-CippException -Exception $_ - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "License assign API failed. $($ErrorMessage.NormalizedError)" -Sev Error -LogData $ErrorMessage - $Results.Add( "We've failed to assign the license. $($ErrorMessage.NormalizedError)") - Write-Warning "License assign API failed. $($_.Exception.Message)" - Write-Information $_.InvocationInfo.PositionMessage - } - - #Add Aliases, removal currently not supported. - try { - if ($Aliases) { - Write-Host ($Aliases | ConvertTo-Json) - foreach ($Alias in $Aliases) { - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -Verbose + } else { + try { + $EditResults = Set-CIPPUser -UserObj $UserObj -APIName $APIName -Headers $Headers + $body = [pscustomobject]@{ 'Results' = @($EditResults.Results) } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $body = [pscustomobject]@{ + 'Results' = @("Failed to edit user. $($ErrorMessage.NormalizedError)") } - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)" -tenantid $UserObj.tenantFilter -type 'patch' -body "{`"mail`": `"$UserPrincipalName`"}" -Verbose - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message "Added Aliases to $($UserObj.DisplayName)" -Sev Info - $Results.Add( 'Success. Added aliases to user.') + $StatusCode = [HttpStatusCode]::InternalServerError } - - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Message = "Failed to add aliases to user $($UserObj.DisplayName). Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -API $APIName -tenant ($UserObj.tenantFilter) -headers $Headers -message $Message -Sev Error -LogData $ErrorMessage - $Results.Add($Message) - } - - if ($Request.Body.CopyFrom.value) { - $CopyFrom = Set-CIPPCopyGroupMembers -Headers $Headers -CopyFromId $Request.Body.CopyFrom.value -UserID $UserPrincipalName -TenantFilter $UserObj.tenantFilter - $Results.AddRange(@($CopyFrom)) - } - - if ($AddToGroups) { - $AddToGroups | ForEach-Object { - - $GroupType = $_.addedFields.groupType - $GroupID = $_.value - $GroupName = $_.label - Write-Host "About to add $($UserObj.userPrincipalName) to $GroupName. Group ID is: $GroupID and type is: $GroupType" - - try { - if ($GroupType -eq 'distributionList' -or $GroupType -eq 'security') { - Write-Host 'Adding to group via Add-DistributionGroupMember' - $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Add-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true - } else { - Write-Host 'Adding to group via Graph' - $UserBody = [PSCustomObject]@{ - '@odata.id' = "https://graph.microsoft.com/beta/directoryObjects/$($UserObj.id)" - } - $UserBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $UserBody - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $UserBodyJSON -Verbose - } - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Added $($UserObj.DisplayName) to $GroupName group" -Sev Info - $Results.Add("Success. $($UserObj.DisplayName) has been added to $GroupName") - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Message = "Failed to add member $($UserObj.DisplayName) to $GroupName. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage - $Results.Add($Message) - } - } - } - - if ($RemoveFromGroups) { - $RemoveFromGroups | ForEach-Object { - - $GroupType = $_.addedFields.groupType - $GroupID = $_.value - $GroupName = $_.label - Write-Host "About to remove $($UserObj.userPrincipalName) from $GroupName. Group ID is: $GroupID and type is: $GroupType" - - try { - if ($GroupType -eq 'distributionList' -or $GroupType -eq 'security') { - Write-Host 'Removing From group via Remove-DistributionGroupMember' - $Params = @{ Identity = $GroupID; Member = $UserObj.id; BypassSecurityGroupManagerCheck = $true } - $null = New-ExoRequest -tenantid $UserObj.tenantFilter -cmdlet 'Remove-DistributionGroupMember' -cmdParams $params -UseSystemMailbox $true - } else { - Write-Host 'Removing From group via Graph' - $null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/groups/$GroupID/members/$($UserObj.id)/`$ref" -tenantid $UserObj.tenantFilter -type DELETE - } - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Removed $($UserObj.DisplayName) from $GroupName group" -Sev Info - $Results.Add("Success. $($UserObj.DisplayName) has been removed from $GroupName") - } catch { - $ErrorMessage = Get-CippException -Exception $_ - $Message = "Failed to remove member $($UserObj.DisplayName) from $GroupName. Error: $($ErrorMessage.NormalizedError)" - Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message $Message -Sev Error -LogData $ErrorMessage - $Results.Add($Message) - } - } - } - - if ($Request.body.setManager.value) { - $ManagerResults = Set-CIPPManager -Users $UserPrincipalName -Manager $Request.body.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers - $Results.Add($ManagerResults.Result) - } - - if ($Request.body.setSponsor.value) { - $SponsorResults = Set-CIPPSponsor -Users $UserPrincipalName -Sponsor $Request.body.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers - $Results.Add($SponsorResults.Result) } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{'Results' = @($Results) } + StatusCode = $StatusCode ? $StatusCode : [HttpStatusCode]::OK + Body = $Body }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 index 97cebd8840b99..9a59cf7bbd983 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1 @@ -241,37 +241,38 @@ function Invoke-ListUserMailboxDetails { # Build the GraphRequest object $GraphRequest = [ordered]@{ - ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward - ForwardingAddress = $ForwardingAddress - LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled - RetentionHold = $MailboxDetailedRequest.RetentionHoldEnabled - ComplianceTagHold = $MailboxDetailedRequest.ComplianceTagHoldApplied - InPlaceHold = $InPlaceHold - EDiscoveryHold = $EDiscoveryHold - PurviewRetentionHold = $PurviewRetentionHold - ExcludedFromOrgWideHold = $ExcludedFromOrgWideHold - HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled - EWSEnabled = $CASRequest.EwsEnabled - MailboxMAPIEnabled = $CASRequest.MAPIEnabled - MailboxOWAEnabled = $CASRequest.OWAEnabled - MailboxImapEnabled = $CASRequest.ImapEnabled - MailboxPopEnabled = $CASRequest.PopEnabled - MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled - Permissions = @($ParsedPerms) - ProhibitSendQuota = $ProhibitSendQuota - ProhibitSendReceiveQuota = $ProhibitSendReceiveQuota - ItemCount = [math]::Round($StatsRequest.ItemCount, 2) - TotalItemSize = $TotalItemSize - TotalArchiveItemSize = $TotalArchiveItemSize - TotalArchiveItemCount = $TotalArchiveItemCount - BlockedForSpam = $BlockedForSpam - ArchiveMailBox = $ArchiveEnabled - AutoExpandingArchive = $AutoExpandingArchiveEnabled - AutoExpandingArchiveScope = $AutoExpandingArchiveScope - RecipientTypeDetails = $MailboxDetailedRequest.RecipientTypeDetails - Mailbox = $MailboxDetailedRequest - RetentionPolicy = $MailboxDetailedRequest.RetentionPolicy - MailboxActionsData = ($MailboxDetailedRequest | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, + ForwardAndDeliver = $MailboxDetailedRequest.DeliverToMailboxAndForward + ForwardingAddress = $ForwardingAddress + LitigationHold = $MailboxDetailedRequest.LitigationHoldEnabled + RetentionHold = $MailboxDetailedRequest.RetentionHoldEnabled + ComplianceTagHold = $MailboxDetailedRequest.ComplianceTagHoldApplied + InPlaceHold = $InPlaceHold + EDiscoveryHold = $EDiscoveryHold + PurviewRetentionHold = $PurviewRetentionHold + ExcludedFromOrgWideHold = $ExcludedFromOrgWideHold + HiddenFromAddressLists = $MailboxDetailedRequest.HiddenFromAddressListsEnabled + EWSEnabled = $CASRequest.EwsEnabled + MailboxMAPIEnabled = $CASRequest.MAPIEnabled + MailboxOWAEnabled = $CASRequest.OWAEnabled + MailboxImapEnabled = $CASRequest.ImapEnabled + MailboxPopEnabled = $CASRequest.PopEnabled + MailboxActiveSyncEnabled = $CASRequest.ActiveSyncEnabled + SmtpClientAuthenticationDisabled = $CASRequest.SmtpClientAuthenticationDisabled + Permissions = @($ParsedPerms) + ProhibitSendQuota = $ProhibitSendQuota + ProhibitSendReceiveQuota = $ProhibitSendReceiveQuota + ItemCount = [math]::Round($StatsRequest.ItemCount, 2) + TotalItemSize = $TotalItemSize + TotalArchiveItemSize = $TotalArchiveItemSize + TotalArchiveItemCount = $TotalArchiveItemCount + BlockedForSpam = $BlockedForSpam + ArchiveMailBox = $ArchiveEnabled + AutoExpandingArchive = $AutoExpandingArchiveEnabled + AutoExpandingArchiveScope = $AutoExpandingArchiveScope + RecipientTypeDetails = $MailboxDetailedRequest.RecipientTypeDetails + Mailbox = $MailboxDetailedRequest + RetentionPolicy = $MailboxDetailedRequest.RetentionPolicy + MailboxActionsData = ($MailboxDetailedRequest | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } }, @{ Name = 'displayName'; Expression = { $_.'DisplayName' } }, @{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } }, diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 index e539f77654140..01282d8552c0c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserSettings.ps1 @@ -15,15 +15,45 @@ function Invoke-ListUserSettings { try { $Table = Get-CippTable -tablename 'UserSettings' - $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" - if (!$UserSettings) { $UserSettings = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" } - - try { - $UserSettings = $UserSettings.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue - } catch { - Write-Warning "Failed to convert UserSettings JSON: $($_.Exception.Message)" + $ConvertUserSettings = { + param($Entity) + if (!$Entity -or !$Entity.JSON) { return $null } + try { + return $Entity.JSON | ConvertFrom-Json -Depth 10 -ErrorAction Stop + } catch { + Write-Warning "UserSettings JSON for '$($Entity.RowKey)' had a key case collision, self-healing: $($_.Exception.Message)" + try { + $Hash = $Entity.JSON | ConvertFrom-Json -Depth 10 -AsHashtable + if ($Hash.offboardingDefaults -is [System.Collections.IDictionary]) { + $Offboarding = $Hash.offboardingDefaults + $Variants = @($Offboarding.Keys | Where-Object { $_ -ieq 'keepCopy' }) + if ($Variants.Count -gt 0) { + $CanonicalValue = if ($Offboarding.Contains('KeepCopy')) { $Offboarding['KeepCopy'] } else { $Offboarding[$Variants[0]] } + foreach ($Variant in $Variants) { $null = $Offboarding.Remove($Variant) } + $Offboarding['KeepCopy'] = $CanonicalValue + } + } + $HealedJson = $Hash | ConvertTo-Json -Depth 10 -Compress + $Healed = $HealedJson | ConvertFrom-Json -Depth 10 -ErrorAction Stop + $HealTable = Get-CippTable -tablename 'UserSettings' + $HealTable.Force = $true + Add-CIPPAzDataTableEntity @HealTable -Entity @{ + JSON = "$HealedJson" + RowKey = "$($Entity.RowKey)" + PartitionKey = "$($Entity.PartitionKey)" + } + return $Healed + } catch { + Write-Warning "Failed to self-heal UserSettings JSON for '$($Entity.RowKey)': $($_.Exception.Message)" + return $null + } + } } + $UserSettingsEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq 'allUsers'" + if (!$UserSettingsEntity) { $UserSettingsEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" } + $UserSettings = & $ConvertUserSettings $UserSettingsEntity + if (!$UserSettings) { $UserSettings = [pscustomobject]@{ direction = 'ltr' @@ -38,12 +68,27 @@ 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)" + $UserSpecificEntity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'UserSettings' and RowKey eq '$Username'" + $UserSpecificSettings = & $ConvertUserSettings $UserSpecificEntity + + $TestOffboardingConfigured = { + param($Offboarding) + if (-not $Offboarding) { return $false } + foreach ($Property in $Offboarding.PSObject.Properties) { + if ($Property.Value -eq $true) { return $true } + } + return $false + } + + $AllUsersOffboardingConfigured = & $TestOffboardingConfigured $UserSettings.offboardingDefaults + $UserOffboardingConfigured = & $TestOffboardingConfigured $UserSpecificSettings.offboardingDefaults + + $OffboardingDefaultsSource = 'allUsers' + if (-not $AllUsersOffboardingConfigured -and $UserOffboardingConfigured) { + $UserSettings | Add-Member -MemberType NoteProperty -Name 'offboardingDefaults' -Value $UserSpecificSettings.offboardingDefaults -Force | Out-Null + $OffboardingDefaultsSource = 'user' } + $UserSettings | Add-Member -MemberType NoteProperty -Name 'offboardingDefaultsSource' -Value $OffboardingDefaultsSource -Force | Out-Null # Get user bookmarks try { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 index 843fc4159857f..a24160bb3987b 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUsers.ps1 @@ -15,8 +15,66 @@ Function Invoke-ListUsers { $GraphFilter = $Request.Query.graphFilter $userid = $Request.Query.UserID + # When fetching a single user, use an explicit $select so directory/schema extension properties are + # returned. Covers the properties the user view and edit form consume, any attributes added via + # Preferences > Added Attributes, and custom data attributes mapped for manual entry on users. + $SelectParam = '' + if ($userid -and $TenantFilter -ne 'AllTenants') { + $BaseProperties = @( + 'id', 'accountEnabled', 'ageGroup', 'assignedLicenses', 'businessPhones', 'city', 'companyName', + 'consentProvidedForMinor', 'country', 'createdDateTime', 'department', 'displayName', + 'employeeHireDate', 'employeeId', 'employeeLeaveDateTime', 'employeeType', 'faxNumber', + 'givenName', 'jobTitle', 'lastPasswordChangeDateTime', 'legalAgeGroupClassification', 'mail', + 'mailNickname', 'mobilePhone', 'officeLocation', 'onPremisesDistinguishedName', + 'onPremisesImmutableId', 'onPremisesLastSyncDateTime', 'onPremisesSyncEnabled', 'otherMails', 'postalCode', + 'preferredLanguage', 'proxyAddresses', 'showInAddressList', 'state', 'streetAddress', + 'surname', 'usageLocation', 'userPrincipalName', 'userType' + ) + $CustomAttributes = [System.Collections.Generic.List[string]]::new() + try { + # Attributes added via Preferences > 'Added Attributes when creating a new user' + $Username = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Request.Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + $EscapedUsername = $Username -replace "'", "''" + $UserSettingsTable = Get-CippTable -tablename 'UserSettings' + $UserSettingsEntities = Get-CIPPAzDataTableEntity @UserSettingsTable -Filter "PartitionKey eq 'UserSettings' and (RowKey eq 'allUsers' or RowKey eq '$EscapedUsername')" + foreach ($Entity in $UserSettingsEntities) { + foreach ($Label in (($Entity.JSON | ConvertFrom-Json -Depth 10 -ErrorAction SilentlyContinue).userAttributes.label)) { + if ($Label) { $CustomAttributes.Add($Label) } + } + } + # Custom data attributes mapped for manual entry on users for this tenant + $MappingsTable = Get-CippTable -tablename 'CustomDataMappings' + foreach ($Entity in (Get-CIPPAzDataTableEntity @MappingsTable)) { + $Mapping = $Entity.JSON | ConvertFrom-Json -ErrorAction SilentlyContinue + if ($Mapping.sourceType.value -ne 'manualEntry' -or $Mapping.directoryObjectType.value -ne 'user') { continue } + $TenantList = Expand-CIPPTenantGroups -TenantFilter $Mapping.tenantFilter + if ($TenantList.value -notcontains $TenantFilter -and $TenantList.value -notcontains 'AllTenants') { continue } + # Schema extension names are 'schemaId.property'; Graph $select takes the schema id + $AttributeName = ($Mapping.customDataAttribute.value -split '\.')[0] + if ($AttributeName) { $CustomAttributes.Add($AttributeName) } + } + } catch { + Write-Warning "Failed to resolve custom attributes for user $($userid): $($_.Exception.Message)" + } + $ValidCustomAttributes = $CustomAttributes | Where-Object { $_ -match '^[A-Za-z][A-Za-z0-9_]*$' } + $SelectParam = '&$select=' + ((@($BaseProperties) + @($ValidCustomAttributes) | Sort-Object -Unique) -join ',') + Write-Information $SelectParam + } + $GraphRequest = if ($TenantFilter -ne 'AllTenants') { - New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$top=999&`$filter=$GraphFilter&`$count=true&`$expand=manager(`$select=id,userPrincipalName,displayName)" -tenantid $TenantFilter -ComplexFilter | ForEach-Object { + try { + $UserData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$top=999&`$filter=$GraphFilter&`$count=true&`$expand=manager(`$select=id,userPrincipalName,displayName)$SelectParam" -tenantid $TenantFilter -ComplexFilter + } catch { + if ($SelectParam) { + # A preference-added attribute name Graph does not recognize fails the whole $select; + # fall back to the default property set rather than failing the request. + Write-Warning "ListUsers select query failed, falling back to default properties: $($_.Exception.Message)" + $UserData = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users/$($userid)?`$top=999&`$filter=$GraphFilter&`$count=true&`$expand=manager(`$select=id,userPrincipalName,displayName)" -tenantid $TenantFilter -ComplexFilter + } else { + throw + } + } + $UserData | ForEach-Object { $_ | Add-Member -MemberType NoteProperty -Name 'onPremisesSyncEnabled' -Value ([bool]($_.onPremisesSyncEnabled)) -Force $_ | Add-Member -MemberType NoteProperty -Name 'username' -Value ($_.userPrincipalName -split '@' | Select-Object -First 1) -Force $_ | Add-Member -MemberType NoteProperty -Name 'Aliases' -Value ($_.ProxyAddresses -join ', ') -Force diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCSPLicense.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCSPLicense.ps1 index 6b7400e98ca4c..ba3c2f91214f1 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCSPLicense.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCSPLicense.ps1 @@ -30,7 +30,44 @@ function Invoke-ExecCSPLicense { if ($Action -eq 'Cancel') { $null = Remove-SherwebSubscription -Headers $Headers -tenantFilter $TenantFilter -SubscriptionIds $Request.Body.SubscriptionIds } - $Result = 'License change executed successfully.' + + if ($Action -eq 'ScheduleRemoval') { + $RemoveCount = [int]($Request.Body.Remove ?? 1) + if ($RemoveCount -lt 1) { $RemoveCount = 1 } + $DaysBefore = [int]($Request.Body.DaysBeforeRenewal ?? 3) + if ($DaysBefore -lt 1) { $DaysBefore = 3 } + + $Subscription = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter -SKU $SKU | Select-Object -First 1 + if (-not $Subscription) { + throw "No existing subscription with SKU '$SKU' found." + } + $RenewalDate = $Subscription.commitmentTerm.renewalConfiguration.renewalDate + if (-not $RenewalDate) { + throw "The subscription '$($Subscription.productName)' does not have a renewal date, so a decrease cannot be scheduled at renewal." + } + $RunAt = ([datetimeoffset]$RenewalDate).UtcDateTime.AddDays(-$DaysBefore) + if ($RunAt -le [datetime]::UtcNow) { + throw "The renewal date ($(([datetimeoffset]$RenewalDate).ToString('yyyy-MM-dd'))) minus $DaysBefore day(s) is already in the past. Use the immediate decrease action instead." + } + + $TaskBody = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Decrease Sherweb License at Renewal: $($Subscription.productName) (-$RemoveCount)" + Command = @{ + value = 'Invoke-SherwebScheduledLicenseRemoval' + label = 'Invoke-SherwebScheduledLicenseRemoval' + } + Parameters = [pscustomobject]@{ + SKU = $SKU + Remove = $RemoveCount + } + ScheduledTime = [int64]([datetimeoffset]$RunAt).ToUnixTimeSeconds() + } + $null = Add-CIPPScheduledTask -Task $TaskBody -hidden $false -Headers $Headers + $Result = "Scheduled a decrease of $RemoveCount license(s) for '$($Subscription.productName)' on $($RunAt.ToString('yyyy-MM-dd HH:mm')) UTC, $DaysBefore day(s) before the renewal date. The decrease only executes if at least $RemoveCount license(s) are unassigned at that time." + } else { + $Result = 'License change executed successfully.' + } $StatusCode = [HttpStatusCode]::OK } catch { $Result = "Failed to execute license change. Error: $_" diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCustomTestRun.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCustomTestRun.ps1 new file mode 100644 index 0000000000000..7e02d1911c8d6 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecCustomTestRun.ps1 @@ -0,0 +1,48 @@ +function Invoke-ExecCustomTestRun { + <# + .SYNOPSIS + Triggers a Custom test-suite run for one or all tenants. + + .DESCRIPTION + Re-runs the enabled Custom tests against the most recent cached data for the requested + tenant(s) by starting the standard tests orchestration with a Custom-only suite filter. + Used by the cross-tenant Custom Test Report to refresh results on demand. + + .FUNCTIONALITY + Entrypoint,AnyTenant + + .ROLE + Tenant.Tests.ReadWrite + #> + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + Write-LogMessage -headers $Request.Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' + + $TenantFilter = 'allTenants' + try { + $TenantFilterRaw = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + # Accept a plain string, a {value} object, or a single-element array of either. + if ($TenantFilterRaw -is [array]) { $TenantFilterRaw = $TenantFilterRaw | Select-Object -First 1 } + if ($TenantFilterRaw -is [pscustomobject]) { $TenantFilterRaw = $TenantFilterRaw.value } + if (-not [string]::IsNullOrWhiteSpace($TenantFilterRaw)) { $TenantFilter = [string]$TenantFilterRaw } + if ($TenantFilter -eq 'AllTenants') { $TenantFilter = 'allTenants' } + + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Starting Custom test run for: $TenantFilter" -sev Info + $null = Start-CIPPDBTestsRun -TenantFilter $TenantFilter -Suites 'Custom' -Force + + $Scope = if ($TenantFilter -eq 'allTenants') { 'all tenants' } else { $TenantFilter } + $StatusCode = [HttpStatusCode]::OK + $Body = [PSCustomObject]@{ Results = "Successfully started a custom test run for $Scope. Results will populate here as each tenant completes." } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to start custom test run: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = [PSCustomObject]@{ Results = "Failed to start custom test run: $($ErrorMessage.NormalizedError)" } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecListAppId.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecListAppId.ps1 index 69a66fb92bcdd..984d37b4fe630 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecListAppId.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ExecListAppId.ps1 @@ -21,7 +21,7 @@ function Invoke-ExecListAppId { $env:ApplicationID = $Secret.ApplicationID $env:TenantID = $Secret.TenantID } else { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName try { $env:ApplicationID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'ApplicationID') $env:TenantID = (Get-CippKeyVaultSecret -AsPlainText -VaultName $keyvaultname -Name 'TenantID') diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListCippQueues.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListCippQueues.ps1 new file mode 100644 index 0000000000000..7a753e15b9312 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListCippQueues.ps1 @@ -0,0 +1,106 @@ +function Invoke-ListCippQueues { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + CIPP.Core.Read + .DESCRIPTION + Lists several CIPP background queues at once and rolls them up into a single progress + figure. ListCippQueue reports one queue; this exists for the actions that start several + at a time - syncing a report that is compiled from more than one cache, for instance - + where the useful answer is "how far along is the refresh" rather than the state of each + individual queue. + + Pass QueueIds as a comma-separated list. Each is resolved through Get-CIPPQueueData, so + the same data shape and status derivation applies as for a single queue. Ids that no + longer exist are reported in MissingQueueIds rather than silently dropped, because a + caller polling for completion needs to know the difference between a queue that finished + and one that was never found. + + The rolled-up Status is the least complete state across the set: anything still running + keeps the whole refresh Running, and a failure anywhere is surfaced rather than averaged + away. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message 'Accessed this API' -Sev 'Debug' + + $RawIds = $Request.Query.QueueIds ?? $Request.Body.QueueIds + $QueueIds = @($RawIds -split ',' | ForEach-Object { $_.Trim() } | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique) + + if ($QueueIds.Count -eq 0) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ 'Results' = 'QueueIds is required.' } + }) + } + + $Queues = [System.Collections.Generic.List[object]]::new() + $MissingQueueIds = [System.Collections.Generic.List[string]]::new() + foreach ($QueueId in $QueueIds) { + try { + $Queue = @(Get-CIPPQueueData -QueueId $QueueId) | Where-Object { $_ } | Select-Object -First 1 + if ($Queue) { $Queues.Add($Queue) } else { $MissingQueueIds.Add($QueueId) } + } catch { + Write-Information "ListCippQueues: could not read queue $QueueId : $($_.Exception.Message)" + $MissingQueueIds.Add($QueueId) + } + } + + # Task totals across every queue, so the progress bar reflects real work rather than an + # average of percentages (queues differ wildly in size - a permission scan is a handful of + # batches, a sharing link scan is one activity per site). + $TotalTasks = 0; $CompletedTasks = 0; $RunningTasks = 0; $FailedTasks = 0 + $CompletedQueues = 0; $RunningQueues = 0; $FailedQueues = 0 + foreach ($Queue in $Queues) { + $TotalTasks += [int]($Queue.TotalTasks ?? 0) + $CompletedTasks += [int]($Queue.CompletedTasks ?? 0) + $RunningTasks += [int]($Queue.RunningTasks ?? 0) + $FailedTasks += [int]($Queue.FailedTasks ?? 0) + + switch ([string]$Queue.Status) { + 'Completed' { $CompletedQueues++ } + 'Completed (with errors)' { $CompletedQueues++; $FailedQueues++ } + 'Failed' { $FailedQueues++ } + default { $RunningQueues++ } + } + } + + # A queue that was not found is treated as finished: it has either aged out of the window + # or never started, and either way polling it forever would hang the caller. + $AllFinished = $RunningQueues -eq 0 + $Status = if (-not $AllFinished) { + 'Running' + } elseif ($FailedQueues -gt 0) { + 'Completed (with errors)' + } elseif ($Queues.Count -eq 0) { + 'Not found' + } else { + 'Completed' + } + + $Body = [PSCustomObject]@{ + Queues = @($Queues) + MissingQueueIds = @($MissingQueueIds) + Summary = [PSCustomObject]@{ + TotalQueues = $QueueIds.Count + FoundQueues = $Queues.Count + CompletedQueues = $CompletedQueues + RunningQueues = $RunningQueues + FailedQueues = $FailedQueues + TotalTasks = $TotalTasks + CompletedTasks = $CompletedTasks + RunningTasks = $RunningTasks + FailedTasks = $FailedTasks + PercentComplete = if ($TotalTasks -gt 0) { [math]::Round((($CompletedTasks / $TotalTasks) * 100), 1) } else { 0 } + IsComplete = $AllFinished + Status = $Status + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTestResultsTenants.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTestResultsTenants.ps1 new file mode 100644 index 0000000000000..a6d1ab1054284 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTestResultsTenants.ps1 @@ -0,0 +1,80 @@ +function Invoke-ListTestResultsTenants { + <# + .SYNOPSIS + Lists CIPP test results for a given test across one, many, or all tenants. + + .DESCRIPTION + Cross-tenant overview of stored test results. Backed by Get-CIPPTestResultsTenants, which + queries the shared CippTestResults table server-side and enriches Custom rows with their + definition. Results are filtered to the tenants the calling user is permitted to see via + Test-CIPPAccess, so an all-tenants read still respects per-user tenant scoping. + + .FUNCTIONALITY + Entrypoint,AnyTenant + + .ROLE + Tenant.Reports.Read + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $TriggerMetadata.FunctionName + + try { + $TenantFilterRaw = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $TestIdRaw = $Request.Query.testId ?? $Request.Body.testId + $StatusRaw = $Request.Query.status ?? $Request.Body.status + $TestType = $Request.Query.testType ?? $Request.Body.testType + $Risk = $Request.Query.risk ?? $Request.Body.risk + $Category = $Request.Query.category ?? $Request.Body.category + + # Normalise inputs that may arrive as a single string, a comma-delimited string, or an + # array of strings / {value,label} objects (the frontend autocomplete posts the latter). + $ToArray = { + param($Value) + if ($null -eq $Value) { return @() } + if ($Value -is [string]) { + return @($Value -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ }) + } + return @($Value | ForEach-Object { $_.value ?? $_ } | Where-Object { $_ }) + } + + $TenantFilterList = & $ToArray $TenantFilterRaw + $TestIdList = & $ToArray $TestIdRaw + $StatusList = & $ToArray $StatusRaw + + $Params = @{} + if ($TenantFilterList.Count -gt 0) { $Params.TenantFilter = $TenantFilterList } + if ($TestIdList.Count -gt 0) { $Params.TestId = $TestIdList } + if ($StatusList.Count -gt 0) { $Params.Status = $StatusList } + if ($TestType) { $Params.TestType = $TestType } + if ($Risk) { $Params.Risk = $Risk } + if ($Category) { $Params.Category = $Category } + + $Results = @(Get-CIPPTestResultsTenants @Params) + + # Restrict to tenants the caller is allowed to see. Test-CIPPAccess returns the list of + # permitted customerIds, or 'AllTenants' for unrestricted users. + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + if ($AllowedTenants -notcontains 'AllTenants') { + $AllowedSet = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Allowed in $AllowedTenants) { + if ($Allowed) { [void]$AllowedSet.Add([string]$Allowed) } + } + $Results = @($Results | Where-Object { $_.TenantId -and $AllowedSet.Contains([string]$_.TenantId) }) + } + + $StatusCode = [HttpStatusCode]::OK + $Body = @{ Results = @($Results) } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -message "Error retrieving cross-tenant test results: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + $Body = @{ Error = $ErrorMessage.NormalizedError } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 index 4618714eed853..567ff124015ea 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Invoke-ListTests.ps1 @@ -165,8 +165,17 @@ function Invoke-ListTests { } # Add descriptions from markdown files to each test result + $MdFileLookup = [System.Collections.Generic.Dictionary[string, string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($MdPath in [System.IO.Directory]::EnumerateFiles($TestsRootPath, '*.md', [System.IO.SearchOption]::AllDirectories)) { + $MdKey = [System.IO.Path]::GetFileNameWithoutExtension($MdPath) + if (-not $MdFileLookup.ContainsKey($MdKey)) { + $MdFileLookup[$MdKey] = $MdPath + } + } + foreach ($TestResult in $TestResultsData.TestResults) { - $MdFile = [System.IO.Directory]::EnumerateFiles($TestsRootPath, "*$($TestResult.RowKey).md", [System.IO.SearchOption]::AllDirectories) | Select-Object -First 1 + $MdFile = $null + [void]$MdFileLookup.TryGetValue(('Invoke-CippTest{0}' -f $TestResult.RowKey), [ref]$MdFile) if ($MdFile) { try { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-DLP/Invoke-AddDlpCompliancePolicyTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-DLP/Invoke-AddDlpCompliancePolicyTemplate.ps1 index e40c721b030aa..c45e6e38fdd9d 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-DLP/Invoke-AddDlpCompliancePolicyTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-DLP/Invoke-AddDlpCompliancePolicyTemplate.ps1 @@ -49,6 +49,9 @@ Function Invoke-AddDlpCompliancePolicyTemplate { $RuleParams = foreach ($Rule in $AssociatedRules) { $RuleClean = Format-CIPPCompliancePolicyParams -Source $Rule -AllowedFields $RuleAllowedFields $RuleClean.Remove('Policy') | Out-Null # added at deploy time, not stored + # Advanced-mode rules keep only the AdvancedRule JSON blob, simple-mode rules only the + # flat condition params - the cmdlets reject a mix (see Resolve-CIPPDlpAdvancedRule). + $RuleClean = Resolve-CIPPDlpAdvancedRule -Source $Rule -RuleParams $RuleClean foreach ($SitField in @('ContentContainsSensitiveInformation', 'ExceptIfContentContainsSensitiveInformation')) { if ($RuleClean.ContainsKey($SitField)) { $RuleClean[$SitField] = @(ConvertTo-CIPPSensitiveInformationType -SensitiveInformation $RuleClean[$SitField]) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-AddSensitiveInfoTypeTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-AddSensitiveInfoTypeTemplate.ps1 index 0555e613bd3dc..cc0633a925914 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-AddSensitiveInfoTypeTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-AddSensitiveInfoTypeTemplate.ps1 @@ -11,8 +11,7 @@ Function Invoke-AddSensitiveInfoTypeTemplate { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - # SIT templates are JSON-authored via the deploy drawer. Round-tripping from an existing tenant SIT is not - # supported because the rule pack XML is not exposed reliably through IPPS REST. + # Fields kept for JSON-authored (deploy drawer) templates. $AllowedFields = @( 'Name', 'Description', 'Pattern', 'Confidence', @@ -22,38 +21,74 @@ Function Invoke-AddSensitiveInfoTypeTemplate { try { $GUID = (New-Guid).GUID + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + $Identity = $Request.Body.Identity ?? $Request.Body.Id ?? $Request.Body.Name ?? $Request.Body.name - $Source = if ($Request.Body.PowerShellCommand) { - $Request.Body.PowerShellCommand | ConvertFrom-Json + if ($TenantFilter -and $Identity) { + # --- Path A: capture from an existing tenant SIT's rule pack --- + $Sit = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DlpSensitiveInformationType' -Compliance | + Where-Object { $_.Name -eq $Identity -or $_.Id -eq $Identity -or $_.Identity -eq $Identity } | Select-Object -First 1 + if (-not $Sit) { + throw "Sensitive Information Type '$Identity' not found in tenant $TenantFilter." + } + if ($Sit.Publisher -like 'Microsoft*') { + throw "SIT '$($Sit.Name)' is a Microsoft built-in and cannot be templated." + } + + $Pack = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DlpSensitiveInformationTypeRulePackage' -cmdParams @{ Identity = $Sit.RulePackId } -Compliance | Select-Object -First 1 + $Xml = $Pack.ClassificationRuleCollectionXml + if ([string]::IsNullOrWhiteSpace([string]$Xml)) { + throw "Could not retrieve the rule pack XML for SIT '$($Sit.Name)' (pack $($Sit.RulePackId))." + } + + # Reduce to just this SIT's entity (fingerprint SITs share the one managed pack; even regex SITs + # get a fresh pack id so a redeploy can't collide), then store as the UTF-16 base64 bytes the + # New-/Set-*RulePackage cmdlets expect. + $SingleXml = Get-CIPPSitSinglePackXml -PackXml ([string]$Xml) -EntityId ([string]$Sit.Id) -EntityName ([string]$Sit.Name) + $FileDataBase64 = [System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($SingleXml)) + + # 'name'/'comments' drive the template list display; deploy reads $Template.Name (resolves to + # 'name' case-insensitively), .Description, and .FileDataBase64. + $Ordered = [ordered]@{ + name = $Sit.Name + comments = $Sit.Description + Description = $Sit.Description + FileDataBase64 = $FileDataBase64 + } } else { - [pscustomobject]$Request.Body - } + # --- Path B: JSON-authored template (simple Pattern or advanced FileDataBase64) --- + $Source = if ($Request.Body.PowerShellCommand) { + $Request.Body.PowerShellCommand | ConvertFrom-Json + } else { + [pscustomobject]$Request.Body + } - $Clean = [ordered]@{} - foreach ($prop in $Source.PSObject.Properties) { - if ($prop.Name -notin $AllowedFields) { continue } - $val = $prop.Value - if ($null -eq $val) { continue } - if ($val -is [string] -and [string]::IsNullOrWhiteSpace($val)) { continue } - $Clean[$prop.Name] = $val - } + $Clean = [ordered]@{} + foreach ($prop in $Source.PSObject.Properties) { + if ($prop.Name -notin $AllowedFields) { continue } + $val = $prop.Value + if ($null -eq $val) { continue } + if ($val -is [string] -and [string]::IsNullOrWhiteSpace($val)) { continue } + $Clean[$prop.Name] = $val + } - if (-not $Clean.Contains('Pattern') -and -not $Clean.Contains('FileDataBase64')) { - $Result = "Template requires either 'Pattern' (simple mode) or 'FileDataBase64' (advanced mode). The list-page action cannot fetch the rule pack XML from existing SITs — author the template JSON in the deploy drawer instead." - Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = @{ Results = $Result } - }) - } + if (-not $Clean.Contains('Pattern') -and -not $Clean.Contains('FileDataBase64')) { + $Result = "Template requires either 'Pattern' (simple mode) or 'FileDataBase64' (advanced mode), or a tenantFilter + Identity to capture an existing SIT." + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Warning' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = $Result } + }) + } - $Ordered = [ordered]@{ - name = $Clean['Name'] ?? $Source.Name ?? $Source.name - comments = $Source.Comment ?? $Source.comments - } - foreach ($k in $Clean.Keys) { - if ($Ordered.Contains($k)) { continue } - $Ordered[$k] = $Clean[$k] + $Ordered = [ordered]@{ + name = $Clean['Name'] ?? $Source.Name ?? $Source.name + comments = $Source.Comment ?? $Source.comments + } + foreach ($k in $Clean.Keys) { + if ($Ordered.Contains($k)) { continue } + $Ordered[$k] = $Clean[$k] + } } $JSON = ([pscustomobject]$Ordered | ConvertTo-Json -Depth 10) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-ListSensitiveInfoTypeRulePackage.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-ListSensitiveInfoTypeRulePackage.ps1 new file mode 100644 index 0000000000000..fd247614f1679 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-ListSensitiveInfoTypeRulePackage.ps1 @@ -0,0 +1,47 @@ +Function Invoke-ListSensitiveInfoTypeRulePackage { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Security.SensitiveInfoType.Read + .DESCRIPTION + Returns the rule pack behind a custom Sensitive Information Type - the parsed rule configuration + (entities with confidence/proximity and their resolved regex/keyword/fingerprint detection) plus + the raw ClassificationRuleCollection XML - so the UI can show what a SIT actually detects. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $RulePackId = $Request.Query.RulePackId ?? $Request.Body.RulePackId + + try { + if ([string]::IsNullOrWhiteSpace($RulePackId)) { throw 'RulePackId is required.' } + + $Pack = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DlpSensitiveInformationTypeRulePackage' -cmdParams @{ Identity = $RulePackId } -Compliance | + Select-Object * -ExcludeProperty *odata*, *data.type* | Select-Object -First 1 + $Xml = [string]$Pack.ClassificationRuleCollectionXml + + # Reuse the drift comparer's semantic parser to expose a friendly rule configuration. + $Configuration = if (-not [string]::IsNullOrWhiteSpace($Xml)) { ConvertTo-CIPPSitComparable -Xml $Xml } else { @{} } + + $Result = [ordered]@{ + RulePackId = $RulePackId + RuleCollectionName = $Pack.RuleCollectionName + Publisher = $Pack.Publisher + Version = $Pack.Version + Configuration = $Configuration + Xml = $Xml + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $StatusCode = [HttpStatusCode]::Forbidden + $Result = $ErrorMessage + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = $Result + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-RemoveSensitiveInfoType.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-RemoveSensitiveInfoType.ps1 index 3fa5502ee294d..88edcad8111a7 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-RemoveSensitiveInfoType.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SIT/Invoke-RemoveSensitiveInfoType.ps1 @@ -13,12 +13,25 @@ Function Invoke-RemoveSensitiveInfoType { $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter $Identity = $Request.Query.Identity ?? $Request.Body.Identity ?? $Request.Body.Name + $FingerprintPackId = '00000000-0000-0000-0001-000000000001' try { - $Params = @{ - Identity = $Identity + $Sit = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-DlpSensitiveInformationType' -Compliance | + Where-Object { $_.Name -eq $Identity -or $_.Id -eq $Identity -or $_.Identity -eq $Identity } | Select-Object -First 1 + if (-not $Sit) { + throw "Sensitive Information Type '$Identity' not found." + } + if ($Sit.Publisher -like 'Microsoft*') { + throw "SIT '$($Sit.Name)' is a Microsoft built-in and cannot be deleted." + } + + # Regex/keyword SITs are their own rule package and must be removed at the package level - the + # singular Remove-DlpSensitiveInformationType only removes a SIT from the shared fingerprint pack. + if ($Sit.RulePackId -and $Sit.RulePackId -ne $FingerprintPackId -and $Sit.Type -ne 'Fingerprint') { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DlpSensitiveInformationTypeRulePackage' -cmdParams @{ Identity = $Sit.RulePackId } -Compliance -useSystemMailbox $true + } else { + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DlpSensitiveInformationType' -cmdParams @{ Identity = $Identity } -Compliance -useSystemMailbox $true } - $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-DlpSensitiveInformationType' -cmdParams $Params -Compliance -useSystemMailbox $true $Result = "Deleted Sensitive Information Type $Identity" Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info $StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-EditSensitivityLabel.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-EditSensitivityLabel.ps1 index acad97a18693f..5081739fdb737 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-EditSensitivityLabel.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-EditSensitivityLabel.ps1 @@ -23,6 +23,13 @@ Function Invoke-EditSensitivityLabel { } } + # PswsHashtable parameters need the Exchange.GenericHashTable odata type to bind over the AdminApi. + foreach ($HashtableParam in @('AdvancedSettings', 'Settings')) { + if ($Params.ContainsKey($HashtableParam)) { + $Params[$HashtableParam] = ConvertTo-CIPPExoHashtable -InputObject $Params[$HashtableParam] + } + } + $null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-Label' -cmdParams $Params -Compliance -useSystemMailbox $true $Result = "Updated sensitivity label $Identity" Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Result -Sev Info diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-ListSensitivityLabel.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-ListSensitivityLabel.ps1 index dc24e819d687b..302babc81eeec 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-ListSensitivityLabel.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Compliance-SensitivityLabel/Invoke-ListSensitivityLabel.ps1 @@ -20,6 +20,19 @@ Function Invoke-ListSensitivityLabel { $labelGuid = $_.Guid @($Policies | Where-Object { $_.Labels -contains $labelGuid -or $_.Labels -contains $_.ImmutableId }) | Select-Object -ExpandProperty Name } + }, + @{l = 'Color'; e = { + # The 'color' advanced setting is only exposed inside the read-only Settings array, + # either as a {Key, Value} object or as the serialized string '[color, #RRGGBB]'. + foreach ($Entry in @($_.Settings)) { + if ($null -eq $Entry) { continue } + if ($Entry -isnot [string] -and $Entry.PSObject.Properties['Key']) { + if ("$($Entry.Key)" -eq 'color') { "$($Entry.Value)"; break } + } elseif ("$Entry" -match '^\[\s*color\s*,\s*(.*?)\s*\]$') { + $Matches[1]; break + } + } + } } $StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 index 673e7404d8569..d6f01ab1458c2 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecSetSecurityIncident { +function Invoke-ExecSetSecurityIncident { <# .FUNCTIONALITY Entrypoint @@ -12,27 +12,40 @@ Function Invoke-ExecSetSecurityIncident { $Headers = $Request.Headers - $first = '' # Interact with query parameters or the body of the request. - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter - $IncidentFilter = $Request.Query.GUID ?? $Request.Body.GUID - $Status = $Request.Query.Status ?? $Request.Body.Status - # $Assigned = $Request.Query.Assigned ?? $Request.Body.Assigned ?? $Headers.'x-ms-client-principal' - $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 - $Redirected = $Request.Query.Redirected -as [int] ?? $Request.Body.Redirected -as [int] - $BodyBuild - $AssignBody = '{' + $TenantFilter = $Request.Body.tenantFilter + $IncidentFilter = $Request.Body.GUID + $Status = $Request.Body.Status + $Classification = $Request.Body.Classification + $Determination = $Request.Body.Determination + # Severity autoComplete submits {label, value} + $Severity = $Request.Body.Severity.value + $Comment = $Request.Body.Comment + $Redirected = $Request.Body.Redirected -as [int] + + $AssignToSelf = [System.Convert]::ToBoolean($Request.Body.AssignToSelf) + # Assign-to-self resolves to the caller; other actions omit the assignee so it's preserved. + if ($AssignToSelf -eq $true) { + $Assigned = ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json).userDetails + } + + # Hashtable + ConvertTo-Json so free-text fields (resolvingComment) are escaped correctly. + $BodyObject = [ordered]@{} + $BodyParts = [System.Collections.Generic.List[string]]::new() try { # We won't update redirected incidents because the incident it is redirected to should instead be updated if ($Redirected -lt 1) { # Set received status if ($null -ne $Status) { - $AssignBody += $first + '"status":"' + $Status + '"' - $BodyBuild += $first + 'Set status for incident ' + $IncidentFilter + ' to ' + $Status - $first = ', ' + $BodyObject['status'] = $Status + $BodyParts.Add("status to $Status") + } + + # Set received severity + if ($null -ne $Severity) { + $BodyObject['severity'] = $Severity + $BodyParts.Add("severity to $Severity") } # Set received classification and determination @@ -42,43 +55,47 @@ Function Invoke-ExecSetSecurityIncident { throw } - $AssignBody += $first + '"classification":"' + $Classification + '", "determination":"' + $Determination + '"' - $BodyBuild += $first + 'Set classification & determination for incident ' + $IncidentFilter + ' to ' + $Classification + ' ' + $Determination - $first = ', ' + $BodyObject['classification'] = $Classification + $BodyObject['determination'] = $Determination + $BodyParts.Add("classification & determination to $Classification $Determination") + } + + # Set received resolving comment + if ($null -ne $Comment) { + $BodyObject['resolvingComment'] = $Comment + $BodyParts.Add('resolving comment') } # Set received assignee if ($null -ne $Assigned) { - $AssignBody += $first + '"assignedTo":"' + $Assigned + '"' + $BodyObject['assignedTo'] = $Assigned if ($null -eq $Status) { - $BodyBuild += $first + 'Set assigned for incident ' + $IncidentFilter + ' to ' + $Assigned + $BodyParts.Add("assigned to $Assigned") } - $first = ', ' } - $AssignBody += '}' + $AssignBody = ConvertTo-Json -InputObject $BodyObject -Compress + $BodyBuild = "Set $($BodyParts -join ', ') for incident $IncidentFilter" - $ResponseBody = [pscustomobject]@{'Results' = $BodyBuild } - New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/incidents/$IncidentFilter" -type PATCH -tenantid $TenantFilter -body $AssignBody -asApp $true + $Result = $BodyBuild + $null = New-GraphPOSTRequest -uri "https://graph.microsoft.com/beta/security/incidents/$IncidentFilter" -type PATCH -tenantid $TenantFilter -body $AssignBody -asApp $true Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Update incident $IncidentFilter with values $AssignBody" -Sev 'Info' } else { - $ResponseBody = [pscustomobject]@{'Results' = "Refused to update incident $IncidentFilter with values $AssignBody because it is redirected to another incident" } - Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Refused to update incident $IncidentFilter with values $AssignBody because it is redirected to another incident" -Sev 'Info' + $Result = "Refused to update incident $IncidentFilter because it is redirected to another incident" + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Info' } - $body = $ResponseBody $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-CippException -Exception $_ $Result = "Failed to update incident $IncidentFilter : $($ErrorMessage.NormalizedError)" Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -Sev 'Error' -LogData $ErrorMessage - $body = [pscustomobject]@{'Results' = $Result } $StatusCode = [HttpStatusCode]::InternalServerError } return ([HttpResponseContext]@{ StatusCode = $StatusCode - Body = $body + Body = @{ 'Results' = $Result } }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 index 01a8dca2ccf6f..0956440b6995c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-DeleteSharepointSite.ps1 @@ -19,15 +19,15 @@ function Invoke-DeleteSharepointSite { try { # Validate required parameters if (-not $SiteId) { - throw "SiteId is required" + throw 'SiteId is required' } if (-not $TenantFilter) { - throw "TenantFilter is required" + 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" + throw 'SiteId must be a valid GUID' } $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter @@ -35,42 +35,58 @@ function Invoke-DeleteSharepointSite { # 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' + # The SPO.Tenant vroute GET needs odata-version 4.0; the manager POST endpoints must + # NOT receive it - sending it flips them onto a pipeline that rejects the call with + # 'Elevated context should be used only to create service asserted level PoP'. + $GetHeaders = @{ + 'accept' = 'application/json' 'odata-version' = '4.0' } + $PostHeaders = @{ + 'accept' = 'application/json' + } - $SiteInfo = New-GraphGETRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $SiteInfoUri -tenantid $TenantFilter -extraHeaders $ExtraHeaders + try { + $SiteInfo = New-GraphGETRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri $SiteInfoUri -tenantid $TenantFilter -extraHeaders $GetHeaders -UseCertificate -AsApp $true + } catch { + throw "Could not retrieve site information from the SharePoint Admin API: $($_.Exception.Message)" + } if (-not $SiteInfo) { - throw "Could not retrieve site information from SharePoint Admin API" + 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" + $IsGroupConnected = $SiteInfo.GroupId -and $SiteInfo.GroupId -ne '00000000-0000-0000-0000-000000000000' if ($IsGroupConnected) { - # Use GroupSiteManager/Delete for group-connected sites + # Group-connected sites: GroupSiteManager/Delete soft-deletes the backing M365 + # group (and Team) together with the site and registers it in the SPO deleted + # sites list. Runs with the delegated token (the CIPP service account is a + # SharePoint admin); see the header note above for why odata-version is omitted. $body = @{ siteUrl = $SiteInfo.Url } - $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/GroupSiteManager/Delete" + try { + $null = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri "$($SharePointInfo.AdminUrl)/_api/GroupSiteManager/Delete" -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -contentType 'application/json' -AddedHeaders $PostHeaders + } catch { + throw "Site deletion request failed (GroupSiteManager/Delete): $($_.Exception.Message)" + } + $Results = "Successfully initiated deletion of group-connected SharePoint site $($SiteInfo.Url); the backing M365 group (and Team, if any) is deleted with it. This can take some time to complete in the background." } else { - # Use SPSiteManager/delete for regular sites + # Regular sites: SPSiteManager/delete denies delegated tokens (even with a + # certificate assertion) with E_ACCESSDENIED - it requires app-only cert auth. $body = @{ siteId = $SiteId } - $DeleteUri = "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/delete" + try { + $null = New-GraphPOSTRequest -scope "$($SharePointInfo.AdminUrl)/.default" -uri "$($SharePointInfo.AdminUrl)/_api/SPSiteManager/delete" -body (ConvertTo-Json -Depth 10 -InputObject $body) -tenantid $TenantFilter -contentType 'application/json' -AddedHeaders $PostHeaders -UseCertificate -AsApp $true + } catch { + throw "Site deletion request failed (SPSiteManager/delete): $($_.Exception.Message)" + } + $Results = "Successfully initiated deletion of SharePoint site with ID $SiteId, this process can take some time to complete in the background" } - # 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 @@ -83,7 +99,7 @@ function Invoke-DeleteSharepointSite { # Associate values to output bindings return ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @{ 'Results' = $Results } - }) + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecBulkRemoveSharingLinks.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecBulkRemoveSharingLinks.ps1 new file mode 100644 index 0000000000000..a4608323d50ab --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecBulkRemoveSharingLinks.ps1 @@ -0,0 +1,104 @@ +function Invoke-ExecBulkRemoveSharingLinks { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Revokes all sharing links / external direct grants on one site in bulk, sourced from + the SharePointSharingLinks reporting cache. Scope selects which classifications are + revoked: Anonymous (anyone links only), External (anonymous + external), or All + (every cached link on the site, including internal). Because the source is the + reporting cache, links created after the last sharing sync are not covered. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + $Scope = $Request.Body.Scope.value ?? $Request.Body.Scope ?? 'Anonymous' + + $ScopeClassifications = @{ + 'Anonymous' = @('Anonymous') + 'External' = @('Anonymous', 'External') + 'All' = @('Anonymous', 'External', 'Internal') + } + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + if (-not $ScopeClassifications.ContainsKey([string]$Scope)) { + throw "Invalid scope '$Scope'. Valid values: $($ScopeClassifications.Keys -join ', ')." + } + $Classifications = $ScopeClassifications[[string]$Scope] + + try { + $AllLinks = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SharePointSharingLinks') + } catch { + throw "Could not read the sharing links cache: $($_.Exception.Message). Run a sharing report sync first." + } + $NormalizedSite = $SiteUrl.TrimEnd('/') + $Targets = @($AllLinks | Where-Object { + "$($_.siteUrl)".TrimEnd('/') -eq $NormalizedSite -and $_.classification -in $Classifications -and $_.driveId -and $_.itemId -and $_.permissionId + }) + + if ($Targets.Count -eq 0) { + $Results = "No cached $($Scope -eq 'All' ? '' : "$Scope ")sharing links found for $SiteUrl. Links created since the last sharing sync are not in the cache - run a sync from the Sharing Report page to refresh." + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ 'Results' = $Results } + }) + } + + $Revoked = [System.Collections.Generic.List[string]]::new() + $Failed = [System.Collections.Generic.List[string]]::new() + foreach ($Link in $Targets) { + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/drives/$($Link.driveId)/items/$($Link.itemId)/permissions/$($Link.permissionId)" -tenantid $TenantFilter -type DELETE -asapp $true + $Revoked.Add("$($Link.fileName) ($($Link.classification))") + if ($Link.id) { + try { + Remove-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointSharingLinks' -ItemId $Link.id + } catch { + Write-Information "Revoked link but could not update reporting cache row $($Link.id): $($_.Exception.Message)" + } + } + } catch { + # A 404 means the link was already gone; treat as revoked and clean the cache row. + if ($_.Exception.Message -match 'itemNotFound|404') { + $Revoked.Add("$($Link.fileName) (already removed)") + if ($Link.id) { + try { Remove-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointSharingLinks' -ItemId $Link.id } catch {} + } + } else { + $Failed.Add("$($Link.fileName): $($_.Exception.Message)") + } + } + } + + $Messages = [System.Collections.Generic.List[string]]::new() + $Messages.Add("Revoked $($Revoked.Count) of $($Targets.Count) $Scope sharing link(s) on $SiteUrl.") + if ($Failed.Count -gt 0) { + $Messages.Add("Failed: $($Failed -join '; ')") + } + $Messages.Add('Note: links created since the last sharing report sync are not covered.') + $Results = $Messages -join ' ' + if ($Revoked.Count -eq 0 -and $Failed.Count -gt 0) { + throw $Results + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to bulk revoke sharing links on $($SiteUrl): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveLibraryPermission.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveLibraryPermission.ps1 new file mode 100644 index 0000000000000..9c4ff659e8861 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveLibraryPermission.ps1 @@ -0,0 +1,107 @@ +function Invoke-ExecRemoveLibraryPermission { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Removes a principal's permission on a document library (ListId) or on the site root web + (ListId omitted) via the SharePoint REST API. Supplying RoleDefinitionId removes that one + permission level; omitting it removes every level the principal holds on the scope. + + Limited Access is never removed: SharePoint creates and cleans it up itself so a user can + traverse to an item they were given access to further down, and deleting it by hand breaks + that navigation. + + Removing a permission requires the library to hold its own permissions, so a library that + still inherits has its inheritance broken (copying the current permissions) first - the + removal then applies to that library only, not to the whole site. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + $ListId = $Request.Body.ListId + $LibraryName = $Request.Body.LibraryName + $PrincipalId = $Request.Body.PrincipalId + $RoleDefinitionId = $Request.Body.RoleDefinitionId + $Label = $Request.Body.PrincipalName ?? $Request.Body.Title ?? $PrincipalId + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + if ([string]::IsNullOrWhiteSpace($PrincipalId)) { throw 'PrincipalId is required.' } + + $SPScope = Resolve-CIPPSharePointPermissionScope -SiteUrl $SiteUrl -ListId $ListId -TenantFilter $TenantFilter -EnsureUniqueRoleAssignments + + # Read what the principal actually holds so only real bindings are removed and Limited + # Access can be filtered out. + $Assignments = @(New-GraphGetRequest -uri "$($SPScope.AssignmentUri)?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true) + $Current = @($Assignments | Where-Object { [string]$_.Member.Id -eq [string]$PrincipalId }) + if ($Current.Count -eq 0) { + throw "$Label holds no permissions on $($SPScope.TargetLabel)." + } + if (-not $Label -or $Label -eq $PrincipalId) { $Label = $Current[0].Member.Title ?? $PrincipalId } + + $Targets = [System.Collections.Generic.List[object]]::new() + $SkippedSystem = [System.Collections.Generic.List[string]]::new() + foreach ($Assignment in $Current) { + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + if (-not [string]::IsNullOrWhiteSpace($RoleDefinitionId) -and [string]$Binding.Id -ne [string]$RoleDefinitionId) { continue } + if ($Binding.RoleTypeKind -eq 1) { + $SkippedSystem.Add($Binding.Name) + continue + } + $Targets.Add($Binding) + } + } + + if ($Targets.Count -eq 0) { + if ($SkippedSystem.Count -gt 0) { + throw "$Label only holds $($SkippedSystem -join ', ') on $($SPScope.TargetLabel). SharePoint manages that level itself and it cannot be removed here; remove the permission that granted it instead." + } + throw "No matching permission found for $Label on $($SPScope.TargetLabel)." + } + + $Removed = [System.Collections.Generic.List[string]]::new() + $Failed = [System.Collections.Generic.List[string]]::new() + foreach ($Binding in $Targets) { + try { + $null = New-GraphPostRequest -uri "$($SPScope.AssignmentUri)/removeroleassignment(principalid=$PrincipalId,roledefid=$($Binding.Id))" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body '{}' -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + $Removed.Add($Binding.Name) + } catch { + $Failed.Add("$($Binding.Name) - $(Get-CIPPSharePointErrorMessage -ErrorMessage $_.Exception.Message)") + } + } + + $TargetLabel = if ($LibraryName) { "library $LibraryName" } else { $SPScope.TargetLabel } + $Messages = [System.Collections.Generic.List[string]]::new() + if ($Removed.Count -gt 0) { + $Messages.Add("Successfully removed $($Removed -join ', ') from $Label on $TargetLabel.") + } + if ($SPScope.BrokeInheritance) { + $Messages.Add('Permission inheritance was broken so the change applies to this library only; the permissions it inherited were copied across.') + } + if ($Failed.Count -gt 0) { + # The explanations are already sentences, so trim before adding the closing period. + $Messages.Add("Failed for $(($Failed -join '; ').TrimEnd('.')).") + } + $Result = $Messages -join ' ' + if ($Removed.Count -eq 0) { throw $Result } + + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to remove permission for $Label. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSPOExternalUser.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSPOExternalUser.ps1 new file mode 100644 index 0000000000000..945cd60f15cdf --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSPOExternalUser.ps1 @@ -0,0 +1,85 @@ +function Invoke-ExecRemoveSPOExternalUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Fully removes an external user's guest access: deletes their Entra guest account (when + one exists) AND removes them from every SharePoint site they hold membership on, in one + pass - so no orphaned accounts or lingering site access are left behind. The inert + SharePoint external-store entry cannot be deleted (Microsoft deprecated + RemoveExternalUsers) and ages out on its own; sharing links the user received are + revoked separately via the Sharing Report. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $EntraUserId = $Request.Body.EntraUserId + $LoginName = $Request.Body.LoginName + $SiteUrls = @($Request.Body.SiteUrls) | Where-Object { $_ } + $DisplayName = $Request.Body.DisplayName ?? $EntraUserId ?? $LoginName + + try { + if (-not $EntraUserId -and $SiteUrls.Count -eq 0) { + throw 'This entry has no Entra guest account and no known site memberships. The remaining SharePoint store entry cannot be removed (Microsoft deprecated the API) and ages out on its own; revoke any sharing links they hold via the Sharing Report.' + } + + $Messages = [System.Collections.Generic.List[string]]::new() + $Errors = [System.Collections.Generic.List[string]]::new() + + # 1. Strip the SharePoint footprint first (needs the login; falls back to the Entra UPN). + if ($SiteUrls.Count -gt 0) { + $RemovalLogin = $LoginName + if (-not $RemovalLogin -and $EntraUserId) { + try { + $RemovalLogin = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($EntraUserId)?`$select=userPrincipalName" -tenantid $TenantFilter -AsApp $true).userPrincipalName + } catch { + $Errors.Add("Could not resolve the user's login for site removal: $($_.Exception.Message)") + } + } + if ($RemovalLogin) { + $Removal = Remove-CIPPSPOSiteUser -TenantFilter $TenantFilter -SiteUrls $SiteUrls -LoginName $RemovalLogin + if ($Removal.Succeeded.Count -gt 0) { + $Messages.Add("Removed from $($Removal.Succeeded.Count) site(s): $($Removal.Succeeded -join ', ').") + } + if ($Removal.Failed.Count -gt 0) { + $Errors.Add("Site removal failed on: $($Removal.Failed -join '; ')") + } + } + } + + # 2. Delete the Entra guest account so the user cannot sign in anywhere. + if ($EntraUserId) { + try { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/users/$EntraUserId" -tenantid $TenantFilter -type DELETE -body '' -asapp $true + $Messages.Add('Deleted the Entra guest account, blocking their sign-in.') + } catch { + $Errors.Add("Deleting the Entra guest account failed: $($_.Exception.Message)") + } + } + + if ($Messages.Count -eq 0) { + throw ($Errors -join ' ') + } + $Results = "Removed guest access for $($DisplayName): $($Messages -join ' ')" + if ($Errors.Count -gt 0) { + $Results += " Issues: $($Errors -join '; ')" + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to remove guest access for $($DisplayName): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSharingLink.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSharingLink.ps1 new file mode 100644 index 0000000000000..f8d6d448b8888 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSharingLink.ps1 @@ -0,0 +1,54 @@ +function Invoke-ExecRemoveSharingLink { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Revokes a sharing link (or direct sharing grant) on a SharePoint or OneDrive item by + deleting the permission from the drive item. Also removes the revoked link from the + SharePointSharingLinks reporting cache so the sharing report reflects it immediately. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $DriveId = $Request.Body.DriveId + $ItemId = $Request.Body.ItemId + $PermissionId = $Request.Body.PermissionId + $FileName = $Request.Body.FileName + $CacheId = $Request.Body.CacheId + + try { + if ([string]::IsNullOrWhiteSpace($DriveId) -or [string]::IsNullOrWhiteSpace($ItemId) -or [string]::IsNullOrWhiteSpace($PermissionId)) { + throw 'DriveId, ItemId and PermissionId are required.' + } + + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/drives/$DriveId/items/$ItemId/permissions/$PermissionId" -tenantid $TenantFilter -type DELETE -asapp $true + + # Best effort: drop the revoked link from the reporting cache so the report updates without a full sync. + if (-not [string]::IsNullOrWhiteSpace($CacheId)) { + try { + Remove-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointSharingLinks' -ItemId $CacheId + } catch { + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message "Revoked sharing link but could not update the reporting cache: $($_.Exception.Message)" -sev Warning + } + } + + $Result = "Successfully revoked sharing link$(if ($FileName) { " for $FileName" })." + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to revoke sharing link$(if ($FileName) { " for $FileName" }). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSiteUser.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSiteUser.ps1 new file mode 100644 index 0000000000000..a2315847ea6ae --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveSiteUser.ps1 @@ -0,0 +1,55 @@ +function Invoke-ExecRemoveSiteUser { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Removes a user from one or more SharePoint sites entirely: deleting the site user + removes them from every site group and direct permission grant at once. Uses the + SharePoint REST API with certificate authentication. Note this does not revoke + sharing links the user received by mail; use the sharing link actions for those. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + # Single site (SiteUrl) or several at once (SiteUrls, e.g. from the External Users report). + $SiteUrls = @($Request.Body.SiteUrls ?? $Request.Body.SiteUrl) | Where-Object { $_ } + # The picker supplies the SP claims login via addedFields; fall back to building it from the UPN. + $LoginName = $Request.Body.user.addedFields.LoginName ?? $Request.Body.user.value + $Label = $Request.Body.DisplayName ?? $Request.Body.user.value ?? $LoginName + + try { + if ($SiteUrls.Count -eq 0) { throw 'SiteUrl is required.' } + if (-not $LoginName) { throw 'No user was selected.' } + + $Removal = Remove-CIPPSPOSiteUser -TenantFilter $TenantFilter -SiteUrls $SiteUrls -LoginName $LoginName + + $Messages = [System.Collections.Generic.List[string]]::new() + if ($Removal.Succeeded.Count -gt 0) { + $Messages.Add("Successfully removed $Label (all site groups and direct permissions) from: $($Removal.Succeeded -join ', ').") + } + if ($Removal.Failed.Count -gt 0) { + $Messages.Add("Failed on: $($Removal.Failed -join '; ')") + } + $Results = $Messages -join ' ' + if ($Removal.Succeeded.Count -eq 0) { + throw $Results + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to remove $Label from the selected site(s): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 index 83e3d96a5f1fb..f80c5dd02d95e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment.ps1 @@ -4,6 +4,8 @@ Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { Entrypoint .ROLE Teams.Voice.ReadWrite + .DESCRIPTION + Unassigns a phone number from a user or resource account via the Teams administration Graph API. #> [CmdletBinding()] param($Request, $TriggerMetadata) @@ -11,7 +13,6 @@ Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { $APIName = $Request.Params.CIPPEndpoint $Headers = $Request.Headers - # Interact with query parameters or the body of the request. $TenantFilter = $Request.Body.tenantFilter $AssignedTo = $Request.Body.AssignedTo @@ -19,8 +20,14 @@ Function Invoke-ExecRemoveTeamsVoicePhoneNumberAssignment { $PhoneNumberType = $Request.Body.PhoneNumberType try { - $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Remove-CsPhoneNumberAssignment' -CmdParams @{Identity = $AssignedTo; PhoneNumber = $PhoneNumber; PhoneNumberType = $PhoneNumberType; ErrorAction = 'Stop' } - $Result = "Successfully unassigned $PhoneNumber from $AssignedTo" + # unassignNumber is keyed on the number alone - AssignedTo is kept only for the audit log. + $Body = @{ + telephoneNumber = $PhoneNumber + numberType = Get-CippTeamsNumberType -NumberType $PhoneNumberType + } + # Asynchronous: 202 Accepted with a Location header for the operation. + $null = New-GraphPOSTRequest -uri 'https://graph.microsoft.com/v1.0/admin/teams/telephoneNumberManagement/numberAssignments/unassignNumber' -tenantid $TenantFilter -body ($Body | ConvertTo-Json -Compress) -type POST + $Result = "Successfully submitted unassignment of $PhoneNumber from $AssignedTo" Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message $Result -Sev 'Info' $StatusCode = [HttpStatusCode]::OK } catch { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreDeletedSite.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreDeletedSite.ps1 new file mode 100644 index 0000000000000..88009fadf8184 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreDeletedSite.ps1 @@ -0,0 +1,40 @@ +function Invoke-ExecRestoreDeletedSite { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Restores a deleted SharePoint site from the tenant recycle bin via the SharePoint + admin CSOM API. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl ?? $Request.Body.Url + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + $Operation = Restore-CIPPSPODeletedSite -TenantFilter $TenantFilter -SiteUrl $SiteUrl + $Results = if ($Operation -and -not $Operation.IsComplete) { + "Restore of $SiteUrl has started. Large sites can take a while to finish restoring." + } else { + "Successfully restored $SiteUrl from the tenant recycle bin." + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to restore $($SiteUrl): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreRecycleBinItems.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreRecycleBinItems.ps1 new file mode 100644 index 0000000000000..cfad4b5705659 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecRestoreRecycleBinItems.ps1 @@ -0,0 +1,52 @@ +function Invoke-ExecRestoreRecycleBinItems { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.SiteRecycleBin.ReadWrite + .DESCRIPTION + Restores one or more items from a SharePoint site's recycle bin via the SharePoint + REST API RestoreByIds method with certificate authentication. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + $Ids = @($Request.Body.Ids) | Where-Object { $_ } + $ItemNames = @($Request.Body.ItemNames) | Where-Object { $_ } + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + if ($Ids.Count -eq 0) { throw 'No recycle bin items were selected.' } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $RestoreBody = ConvertTo-Json -Compress -Depth 5 -InputObject @{ ids = @($Ids) } + try { + $null = New-GraphPostRequest -uri "$BaseUri/site/RecycleBin/RestoreByIds" -tenantid $TenantFilter -scope $Scope -type POST -body $RestoreBody -contentType 'application/json;odata=nometadata' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + throw "RestoreByIds failed: $($_.Exception.Message)" + } + + $Label = if ($ItemNames.Count -gt 0) { $ItemNames -join ', ' } else { "$($Ids.Count) item(s)" } + $Results = "Successfully restored $Label from the recycle bin of $SiteUrl." + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to restore recycle bin items on $($SiteUrl): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryInheritance.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryInheritance.ps1 new file mode 100644 index 0000000000000..a93cb97ed0fef --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryInheritance.ps1 @@ -0,0 +1,78 @@ +function Invoke-ExecSetLibraryInheritance { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Controls whether a document library inherits its permissions from the site, via the + SharePoint REST API. + + Action 'Break' detaches the library so it holds its own permissions. CopyRoleAssignments + (default true) copies the permissions it currently inherits, so nobody loses access at the + moment of the break; with it disabled the library starts with an empty permission set and + only site collection admins can reach it. ClearSubscopes (default false) resets any folder + or item inside the library that has its own unique permissions. + + Action 'Reset' puts the library back to inheriting from the site. This discards every + permission unique to the library and cannot be undone other than by granting them again. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + $ListId = $Request.Body.ListId + $LibraryName = $Request.Body.LibraryName + $Action = $Request.Body.Action + # Default to the safe options: keep current access on a break, leave sub-scopes alone. + $CopyRoleAssignments = ($Request.Body.CopyRoleAssignments ?? $true) -eq $true + $ClearSubscopes = $Request.Body.ClearSubscopes -eq $true + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + if ([string]::IsNullOrWhiteSpace($ListId)) { throw 'ListId is required: a site root web always holds its own permissions.' } + if ([string]$Action -notin @('Break', 'Reset')) { throw "Action must be 'Break' or 'Reset'." } + + $SPScope = Resolve-CIPPSharePointPermissionScope -SiteUrl $SiteUrl -ListId $ListId -TenantFilter $TenantFilter + $TargetLabel = if ($LibraryName) { "library $LibraryName" } else { $SPScope.TargetLabel } + + if ($Action -eq 'Break') { + if ($SPScope.HasUniqueRoleAssignments) { + $Result = "$TargetLabel already has its own permissions; nothing to change." + } else { + $null = New-GraphPostRequest -uri "$($SPScope.ScopeUri)/breakroleinheritance(copyRoleAssignments=$($CopyRoleAssignments.ToString().ToLower()),clearSubscopes=$($ClearSubscopes.ToString().ToLower()))" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body '{}' -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + $Detail = if ($CopyRoleAssignments) { + 'The permissions it inherited were copied across, so current access is unchanged.' + } else { + 'It started with an empty permission set, so only site collection admins can reach it until permissions are granted.' + } + if ($ClearSubscopes) { $Detail += ' Unique permissions on folders and items inside it were reset.' } + $Result = "Successfully stopped $TargetLabel inheriting permissions from the site. $Detail" + } + } else { + if (-not $SPScope.HasUniqueRoleAssignments) { + $Result = "$TargetLabel already inherits its permissions from the site; nothing to change." + } else { + $null = New-GraphPostRequest -uri "$($SPScope.ScopeUri)/resetroleinheritance" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body '{}' -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + $Result = "Successfully restored permission inheritance on $TargetLabel. The permissions that were unique to it have been discarded and it now follows the site." + } + } + + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $FailTarget = if ($LibraryName) { "library $LibraryName" } else { 'the library' } + $Result = "Failed to change permission inheritance on $FailTarget. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryPermission.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryPermission.ps1 new file mode 100644 index 0000000000000..56313892835f5 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetLibraryPermission.ps1 @@ -0,0 +1,191 @@ +function Invoke-ExecSetLibraryPermission { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Grants users and/or groups a SharePoint permission level on a document library (ListId) or + on the site root web (ListId omitted) via the SharePoint REST API. Principals are resolved + with ensureuser unless PrincipalId is supplied, role inheritance on the library is broken + (copying the existing permissions) when it still inherits, and the role assignment is added + with addroleassignment. + + Mode 'Add' leaves any level the principal already holds in place - SharePoint allows a + principal to hold several at once. Mode 'Replace' removes the levels it already holds on + this scope first, so the principal ends up with exactly the requested one. + + The level is taken from RoleDefinitionId when supplied (which is how custom permission + levels are addressed), otherwise from the named PermissionLevel. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + $ListId = $Request.Body.ListId + $LibraryName = $Request.Body.LibraryName + $PermissionLevel = $Request.Body.PermissionLevel + $RoleDefinitionId = $Request.Body.RoleDefinitionId + $PrincipalId = $Request.Body.PrincipalId + $PrincipalName = $Request.Body.PrincipalName + $Mode = $Request.Body.Mode ?? 'Add' + $Users = @($Request.Body.Users) + $Groups = @($Request.Body.Groups) + + # Built-in SharePoint role definition IDs, used when the caller names a level instead of + # supplying a role definition id. + $RoleDefinitionIds = @{ + 'read' = 1073741826 + 'contribute' = 1073741827 + 'design' = 1073741828 + 'fullControl' = 1073741829 + 'edit' = 1073741830 + } + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + + $RoleDefId = if (-not [string]::IsNullOrWhiteSpace($RoleDefinitionId)) { + $RoleDefinitionId + } else { + $RoleDefinitionIds[[string]$PermissionLevel] + } + if (-not $RoleDefId) { throw 'No permission level was selected.' } + + # Build the claims-encoded logon names for ensureuser. A PrincipalId from the permission + # list is already resolved on the site, so it skips that round-trip. + $Principals = [System.Collections.Generic.List[object]]::new() + if (-not [string]::IsNullOrWhiteSpace($PrincipalId)) { + $Principals.Add([PSCustomObject]@{ + Id = $PrincipalId + LogonName = $null + Label = "$($PrincipalName ?? $PrincipalId)" + IsGroup = $false + }) + } + foreach ($User in $Users) { + if ($null -eq $User -or -not $User.value) { continue } + $Principals.Add([PSCustomObject]@{ + Id = $null + LogonName = "i:0#.f|membership|$($User.value)" + Label = "$($User.value)" + IsGroup = $false + }) + } + foreach ($Group in $Groups) { + if ($null -eq $Group -or -not $Group.value) { continue } + # Microsoft 365 groups use the federated directory claim; security groups the tenant claim. + $IsUnified = @($Group.addedFields.groupTypes) -contains 'Unified' + $LogonName = if ($IsUnified) { + "c:0o.c|federateddirectoryclaimprovider|$($Group.value)" + } else { + "c:0t.c|tenant|$($Group.value)" + } + $Principals.Add([PSCustomObject]@{ + Id = $null + LogonName = $LogonName + Label = "$($Group.label ?? $Group.value)" + IsGroup = $true + }) + } + if ($Principals.Count -eq 0) { + throw 'No users or groups selected.' + } + + # Resolving with -EnsureUniqueRoleAssignments breaks inheritance (copying the existing + # permissions) when a library still inherits, so the grant stays scoped to the library. + $SPScope = Resolve-CIPPSharePointPermissionScope -SiteUrl $SiteUrl -ListId $ListId -TenantFilter $TenantFilter -EnsureUniqueRoleAssignments + + # Replace needs the levels each principal currently holds so they can be removed first. + $ExistingAssignments = @() + if ($Mode -eq 'Replace') { + $ExistingAssignments = @(New-GraphGetRequest -uri "$($SPScope.AssignmentUri)?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true) + } + + $Granted = [System.Collections.Generic.List[string]]::new() + $Failed = [System.Collections.Generic.List[string]]::new() + foreach ($Principal in $Principals) { + try { + $ResolvedId = $Principal.Id + if (-not $ResolvedId) { + $EnsureBody = ConvertTo-Json -Compress -InputObject @{ logonName = $Principal.LogonName } + $EnsuredUser = New-GraphPostRequest -uri "$($SPScope.BaseUri)/web/ensureuser" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body $EnsureBody -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + if (-not $EnsuredUser.Id) { + throw 'Could not resolve principal on the site.' + } + $ResolvedId = $EnsuredUser.Id + } + + if ($Mode -eq 'Replace') { + # Drop every level this principal already holds here, except Limited Access + # (RoleTypeKind 1) which SharePoint maintains itself. + $Current = @($ExistingAssignments | Where-Object { [string]$_.Member.Id -eq [string]$ResolvedId }) + foreach ($Assignment in $Current) { + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + if ($Binding.RoleTypeKind -eq 1) { continue } + if ([string]$Binding.Id -eq [string]$RoleDefId) { continue } + $null = New-GraphPostRequest -uri "$($SPScope.AssignmentUri)/removeroleassignment(principalid=$ResolvedId,roledefid=$($Binding.Id))" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body '{}' -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + } + } + } + + $null = New-GraphPostRequest -uri "$($SPScope.AssignmentUri)/addroleassignment(principalid=$ResolvedId,roledefid=$RoleDefId)" -tenantid $TenantFilter -scope $SPScope.Scope -type POST -body '{}' -AddedHeaders $SPScope.Headers -UseCertificate -AsApp $true + $Granted.Add($Principal.Label) + } catch { + # SharePoint returns an OData JSON envelope; translate it rather than passing it on. + $Failed.Add("$($Principal.Label) - $(Get-CIPPSharePointErrorMessage -ErrorMessage $_.Exception.Message -IsGroup:$Principal.IsGroup)") + } + } + + # Named levels have a fixed label; a role definition id is looked up on the site so + # custom levels are logged under their real name. + $LevelLabel = if ($PermissionLevel) { + switch ([string]$PermissionLevel) { + 'fullControl' { 'Full Control' } + default { (Get-Culture).TextInfo.ToTitleCase([string]$PermissionLevel) } + } + } else { + try { + (New-GraphGetRequest -uri "$($SPScope.BaseUri)/web/roledefinitions/getbyid($RoleDefId)?`$select=Name" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true).Name + } catch { + "role definition $RoleDefId" + } + } + $TargetLabel = if ($LibraryName) { "library $LibraryName" } else { $SPScope.TargetLabel } + $Verb = if ($Mode -eq 'Replace') { 'set' } else { 'granted' } + + $Messages = [System.Collections.Generic.List[string]]::new() + if ($Granted.Count -gt 0) { + $Messages.Add("Successfully $Verb $LevelLabel on $TargetLabel for $($Granted -join ', ').") + } + if ($SPScope.BrokeInheritance) { + $Messages.Add('Permission inheritance was broken so the change applies to this library only; the permissions it inherited were copied across.') + } + if ($Failed.Count -gt 0) { + # The explanations are already sentences, so trim before adding the closing period. + $Messages.Add("Failed for $(($Failed -join '; ').TrimEnd('.')).") + } + $Result = $Messages -join ' ' + if ($Granted.Count -gt 0) { + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Info + $StatusCode = [HttpStatusCode]::OK + } else { + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error + $StatusCode = [HttpStatusCode]::BadRequest + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $FailTarget = if ($LibraryName) { "library $LibraryName" } else { 'the site root' } + $Result = "Failed to set permission on $FailTarget. Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Result } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 index 1949aac407b29..fdffad7a36c74 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSharePointMember.ps1 @@ -4,37 +4,127 @@ function Invoke-ExecSetSharePointMember { Entrypoint .ROLE Sharepoint.Site.ReadWrite + .DESCRIPTION + Adds or removes a user in a SharePoint site role (Owners, Members or Visitors). + Group-connected sites manage Owners/Members through the backing M365 group via Graph; + Visitors (and classic/communication sites entirely) are managed through the site's + associated SharePoint role groups via the SharePoint REST API using certificate + authentication. Removals sourced from ListSiteMembers carry the group and type of the + selected entry, so users directly added to a role group on a group-connected site are + removed from that group rather than from the M365 group. #> [CmdletBinding()] param($Request, $TriggerMetadata) - $Headers = $Request.Headers - - # Interact with query parameters or the body of the request. + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers $TenantFilter = $Request.Body.tenantFilter + $UPN = $Request.Body.user.value + $Add = $Request.Body.Add -eq $true + + # Role comes from the removal picker's selected entry when present, else from the form. + $Role = $Request.Body.user.addedFields.Group ?? $Request.Body.Role ?? 'Members' + $MemberType = $Request.Body.user.addedFields.Type + $AssociatedGroups = @{ + 'Owners' = 'associatedownergroup' + 'Members' = 'associatedmembergroup' + 'Visitors' = 'associatedvisitorgroup' + } try { - if ($Request.Body.SharePointType -eq 'Group') { + if (-not $UPN) { throw 'No user was selected.' } + if (-not $AssociatedGroups.ContainsKey([string]$Role)) { + throw "Invalid role '$Role'. Valid roles are: $($AssociatedGroups.Keys -join ', ')." + } + + $IsGroupSite = $Request.Body.SharePointType -eq 'Group' + # Owners/Members of a group-connected site live in the M365 group. Visitors are always + # a SharePoint role group. A removal of a directly-added user (Type 'User') on a group + # site targets the SharePoint role group instead of the M365 group. + $UseGraphGroup = $IsGroupSite -and $Role -ne 'Visitors' -and ($Add -or $MemberType -ne 'User') + + if ($UseGraphGroup) { 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 + if ($Role -eq 'Owners') { + $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$UPN`?`$select=id" -tenantid $TenantFilter).id + if ($Add) { + $OwnerBody = ConvertTo-Json -Compress -InputObject @{ '@odata.id' = "https://graph.microsoft.com/v1.0/directoryObjects/$UserID" } + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/groups/$GroupId/owners/`$ref" -tenantid $TenantFilter -type POST -body $OwnerBody + $Results = "Successfully added $UPN as an owner of the M365 group backing the site." + } else { + $null = New-GraphPostRequest -uri "https://graph.microsoft.com/v1.0/groups/$GroupId/owners/$UserID/`$ref" -tenantid $TenantFilter -type DELETE -body '' + $Results = "Successfully removed $UPN as an owner of the M365 group backing the site." + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info } else { - $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($Request.Body.user.value)" -tenantid $TenantFilter).id - $Results = Remove-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $UserID -TenantFilter $TenantFilter -Headers $Headers + if ($Add) { + $Results = Add-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $UPN -TenantFilter $TenantFilter -Headers $Headers + } else { + $UserID = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$UPN`?`$select=id" -tenantid $TenantFilter).id + $Results = Remove-CIPPGroupMember -GroupType 'Team' -GroupID $GroupID -Member $UserID -TenantFilter $TenantFilter -Headers $Headers + } } $StatusCode = [HttpStatusCode]::OK } else { - $StatusCode = [HttpStatusCode]::BadRequest - $Results = 'This type of SharePoint site is not supported.' + # SharePoint role group management via REST with certificate auth. + $SiteUrl = $Request.Body.URL + if (-not $SiteUrl) { throw 'No site URL was provided for this site.' } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + $RoleGroup = $AssociatedGroups[[string]$Role] + $RoleLabel = ([string]$Role).ToLower().TrimEnd('s') + $Article = if ($RoleLabel -match '^[aeiou]') { 'an' } else { 'a' } + + try { + $EnsureBody = ConvertTo-Json -Compress -InputObject @{ logonName = "i:0#.f|membership|$UPN" } + $EnsuredUser = New-GraphPostRequest -uri "$BaseUri/web/ensureuser" -tenantid $TenantFilter -scope $Scope -type POST -body $EnsureBody -contentType 'application/json;odata=nometadata' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + throw "Could not resolve $UPN on the site (ensureuser): $($_.Exception.Message)" + } + if (-not $EnsuredUser.Id) { + throw "Could not resolve $UPN on the site." + } + + if ($Add) { + # Same shape PnP sends: an SP.User entity posted to the group's users + # collection, which requires the odata=verbose content type. + $AddBody = ConvertTo-Json -Compress -Depth 5 -InputObject @{ + '__metadata' = @{ 'type' = 'SP.User' } + 'LoginName' = $EnsuredUser.LoginName + } + try { + $null = New-GraphPostRequest -uri "$BaseUri/web/$RoleGroup/users" -tenantid $TenantFilter -scope $Scope -type POST -body $AddBody -contentType 'application/json;odata=verbose' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + throw "Could not add $UPN to the site $Role group: $($_.Exception.Message)" + } + $Results = "Successfully added $UPN as $Article $RoleLabel of $SiteUrl." + } else { + try { + $null = New-GraphPostRequest -uri "$BaseUri/web/$RoleGroup/users/removebyid($($EnsuredUser.Id))" -tenantid $TenantFilter -scope $Scope -type POST -body '{}' -contentType 'application/json;odata=nometadata' -AddedHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + if ($_.Exception.Message -match 'Can not find the user') { + throw "$UPN is not in the site's $Role group." + } + throw "Could not remove $UPN from the site $Role group: $($_.Exception.Message)" + } + $Results = "Successfully removed $UPN as $Article $RoleLabel of $SiteUrl." + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK } } catch { - $Results = $_.Exception.Message - $StatusCode = [HttpStatusCode]::InternalServerError + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to modify $Role for $($Request.Body.URL ?? $Request.Body.GroupID). Error: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSiteProperties.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSiteProperties.ps1 new file mode 100644 index 0000000000000..c8395de597814 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSetSiteProperties.ps1 @@ -0,0 +1,136 @@ +function Invoke-ExecSetSiteProperties { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.ReadWrite + .DESCRIPTION + Sets admin-level properties on a single SharePoint site (sharing, lifecycle, version + policy) through Set-CIPPSPOSite. Only whitelisted properties are accepted; enum values + arrive as friendly names (matching Invoke-ListSiteProperties output) and are converted + to their numeric CSOM values here. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter + $SiteUrl = $Request.Body.SiteUrl + + # Friendly name -> SPO enum value maps + $EnumMaps = @{ + SharingCapability = @{ 'Disabled' = 0; 'ExternalUserSharingOnly' = 1; 'ExternalUserAndGuestSharing' = 2; 'ExistingExternalUserSharingOnly' = 3 } + DefaultSharingLinkType = @{ 'None' = 0; 'Direct' = 1; 'Internal' = 2; 'AnonymousAccess' = 3 } + DefaultLinkPermission = @{ 'None' = 0; 'View' = 1; 'Edit' = 2 } + SharingDomainRestrictionMode = @{ 'None' = 0; 'AllowList' = 1; 'BlockList' = 2 } + } + $StringProperties = @('Title', 'SharingAllowedDomainList', 'SharingBlockedDomainList') + $BoolProperties = @('OverrideTenantAnonymousLinkExpirationPolicy', 'InheritVersionPolicyFromTenant', 'EnableAutoExpirationVersionTrim', 'ApplyToNewDocumentLibraries', 'ApplyToExistingDocumentLibraries') + $IntProperties = @('AnonymousLinkExpirationInDays', 'MajorVersionLimit', 'ExpireVersionsAfterDays') + $Int64Properties = @('StorageMaximumLevel', 'StorageWarningLevel') + $ValidLockStates = @('Unlock', 'ReadOnly', 'NoAccess') + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + + $Properties = @{} + $Changes = [System.Collections.Generic.List[string]]::new() + + foreach ($Key in $EnumMaps.Keys) { + $Value = $Request.Body.$Key.value ?? $Request.Body.$Key + if ($null -ne $Value -and "$Value" -ne '') { + if (-not $EnumMaps[$Key].ContainsKey([string]$Value)) { + throw "Invalid value '$Value' for $Key. Valid values: $($EnumMaps[$Key].Keys -join ', ')." + } + $Properties[$Key] = [int]$EnumMaps[$Key][[string]$Value] + $Changes.Add("$Key=$Value") + } + } + + $LockState = $Request.Body.LockState.value ?? $Request.Body.LockState + if ($null -ne $LockState -and "$LockState" -ne '') { + if ($LockState -notin $ValidLockStates) { + throw "Invalid LockState '$LockState'. Valid values: $($ValidLockStates -join ', ')." + } + $Properties['LockState'] = [string]$LockState + $Changes.Add("LockState=$LockState") + } + + foreach ($Key in $StringProperties) { + $Value = $Request.Body.$Key + if ($null -ne $Value) { + $Properties[$Key] = [string]$Value + $Changes.Add("$Key=$Value") + } + } + foreach ($Key in $BoolProperties) { + $Value = $Request.Body.$Key + if ($null -ne $Value) { + $Properties[$Key] = [bool]$Value + $Changes.Add("$Key=$Value") + } + } + foreach ($Key in $IntProperties) { + $Value = $Request.Body.$Key + if ($null -ne $Value -and "$Value" -ne '') { + $Properties[$Key] = [int]$Value + $Changes.Add("$Key=$Value") + } + } + foreach ($Key in $Int64Properties) { + $Value = $Request.Body.$Key + if ($null -ne $Value -and "$Value" -ne '') { + $Properties[$Key] = [int64]$Value + $Changes.Add("$Key=$Value") + } + } + + if ($Properties.Count -eq 0) { + throw 'No valid properties were provided to set.' + } + + # Group-connected sites only accept a small subset of tenant site properties; SPO + # rejects the whole request if any other property is included. Filter to the + # supported set and report what was skipped. + $Site = Get-CIPPSPOSite -TenantFilter $TenantFilter -SiteUrl $SiteUrl + $IsGroupSite = $Site.GroupId -and $Site.GroupId -notmatch '^0{8}-' + $Skipped = [System.Collections.Generic.List[string]]::new() + if ($IsGroupSite) { + $GroupSiteAllowed = @('SharingCapability', 'DefaultSharingLinkType', 'DefaultLinkPermission', 'LockState', 'StorageMaximumLevel', 'StorageWarningLevel') + foreach ($Key in @($Properties.Keys)) { + if ($Key -notin $GroupSiteAllowed) { + $Properties.Remove($Key) + $Skipped.Add($Key) + } + } + if ($Properties.Count -eq 0) { + throw "None of the selected properties can be changed on a group-connected site. Supported: $($GroupSiteAllowed -join ', ')." + } + } + + $Response = Set-CIPPSPOSite -TenantFilter $TenantFilter -SiteUrl $SiteUrl -Properties $Properties + $CsomError = ($Response | Where-Object { $_.ErrorInfo } | Select-Object -First 1).ErrorInfo.ErrorMessage + if ($CsomError) { + throw $CsomError + } + + $AppliedChanges = $Changes | Where-Object { ($_ -split '=')[0] -in $Properties.Keys } + $Results = "Successfully updated site properties for $($SiteUrl): $($AppliedChanges -join ', ')" + if ($Skipped.Count -gt 0) { + $Results += " Skipped (not supported on group-connected sites): $($Skipped -join ', ')." + } + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Info + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to update site properties for $($SiteUrl): $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointTemplate.ps1 new file mode 100644 index 0000000000000..8f24d1ee7dc81 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecSharePointTemplate.ps1 @@ -0,0 +1,206 @@ +function Invoke-ExecSharePointTemplate { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Sharepoint.Admin.ReadWrite + .DESCRIPTION + Saves, retrieves, deletes and deploys SharePoint provisioning templates. A template holds + one or more site templates, each with its own document libraries and permission grants. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Table = Get-CIPPTable -TableName 'templates' + $User = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Headers.'x-ms-client-principal')) | ConvertFrom-Json + + $Action = $Request.Query.Action ?? $Request.Body.Action + $StatusCode = [HttpStatusCode]::OK + + switch ($Action) { + 'Save' { + try { + # Every site template must carry at least one root-level permission object. + $MissingPerms = @($Request.Body.siteTemplates | Where-Object { @($_.permissions).Count -eq 0 }) + if ($MissingPerms.Count -gt 0) { + $Names = ($MissingPerms | ForEach-Object { $_.displayName ?? 'Unnamed site' }) -join ', ' + $Body = @{ Results = "Cannot save template: the following site templates have no root-level permission objects: $Names" } + $StatusCode = [HttpStatusCode]::BadRequest + break + } + + # Frontend sends TemplateId only when editing (add.js). Create/copy omit it. + $GUID = $Request.Body.TemplateId + if ([string]::IsNullOrWhiteSpace([string]$GUID)) { + $GUID = (New-Guid).GUID + $Existing = $null + } else { + $GUID = [string]$GUID + $Existing = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'SharePointTemplate' and RowKey eq '$GUID'" + } + + # Never trust client-supplied audit fields. + $TemplateObject = $Request.Body | Select-Object -Property * -ExcludeProperty Action, TemplateId, GUID, CreatedBy, CreatedOn, UpdatedBy, UpdatedOn + + if ($Existing) { + $ExistingData = $Existing.JSON | ConvertFrom-Json + $TemplateObject | Add-Member -NotePropertyName 'CreatedBy' -NotePropertyValue ($ExistingData.CreatedBy ?? $User.userDetails ?? 'CIPP-API') -Force + $TemplateObject | Add-Member -NotePropertyName 'CreatedOn' -NotePropertyValue ($ExistingData.CreatedOn ?? (Get-Date).ToString('o')) -Force + } else { + $TemplateObject | Add-Member -NotePropertyName 'CreatedBy' -NotePropertyValue ($User.userDetails ?? 'CIPP-API') -Force + $TemplateObject | Add-Member -NotePropertyName 'CreatedOn' -NotePropertyValue (Get-Date).ToString('o') -Force + } + $TemplateObject | Add-Member -NotePropertyName 'UpdatedBy' -NotePropertyValue ($User.userDetails ?? 'CIPP-API') -Force + $TemplateObject | Add-Member -NotePropertyName 'UpdatedOn' -NotePropertyValue (Get-Date).ToString('o') -Force + $TemplateObject | Add-Member -NotePropertyName 'GUID' -NotePropertyValue $GUID -Force + # Always stamp the engine version this API understands; clients cannot omit or override. + $TemplateObject | Add-Member -NotePropertyName 'templateEngineVersion' -NotePropertyValue 1 -Force + + $TemplateJson = $TemplateObject | ConvertTo-Json -Depth 10 -Compress + + $Table.Force = $true + Add-CIPPAzDataTableEntity @Table -Entity @{ + JSON = [string]$TemplateJson + RowKey = "$GUID" + PartitionKey = 'SharePointTemplate' + } + + $Body = @( + [PSCustomObject]@{ + 'Results' = 'Template Saved' + 'Metadata' = @{ + 'TemplateName' = $Request.Body.templateName + 'TemplateId' = $GUID + } + } + ) + + Write-LogMessage -headers $Headers -API $APIName -message "SharePoint Template Saved: $($Request.Body.templateName)" -Sev 'Info' + } catch { + $Body = @{ + 'Results' = $_.Exception.Message + } + $StatusCode = [HttpStatusCode]::InternalServerError + Write-LogMessage -headers $Headers -API $APIName -message "SharePoint Template Save failed: $($_.Exception.Message)" -Sev 'Error' + } + } + 'Delete' { + try { + $TemplateId = $Request.Body.TemplateId ?? $Request.Query.TemplateId + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'SharePointTemplate' and RowKey eq '$TemplateId'" + + if ($Template) { + $TemplateName = ($Template.JSON | ConvertFrom-Json).templateName + $null = Remove-AzDataTableEntity @Table -Entity $Template -Force + $Body = @{ + 'Results' = "Successfully deleted template '$TemplateName'" + } + Write-LogMessage -headers $Headers -API $APIName -message "SharePoint Template deleted: $TemplateName" -Sev 'Info' + } else { + $Body = @{ + 'Results' = 'No template found with the provided ID' + } + } + } catch { + $Body = @{ + 'Results' = "Failed to delete template: $($_.Exception.Message)" + } + $StatusCode = [HttpStatusCode]::InternalServerError + Write-LogMessage -headers $Headers -API $APIName -message "SharePoint Template Delete failed: $($_.Exception.Message)" -Sev 'Error' + } + } + 'Get' { + $Filter = "PartitionKey eq 'SharePointTemplate'" + if ($Request.Query.TemplateId) { + $TemplateId = $Request.Query.TemplateId + $Filter = "PartitionKey eq 'SharePointTemplate' and RowKey eq '$TemplateId'" + } + + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $Body = $Templates | ForEach-Object { + $TemplateData = $_.JSON | ConvertFrom-Json + $OutputObject = $TemplateData | Select-Object -Property * + $OutputObject | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $_.RowKey -Force + $OutputObject | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') -Force + return $OutputObject + } + } + 'Deploy' { + try { + $TemplateId = $Request.Body.TemplateId + $SiteOwner = $Request.Body.SiteOwner + $Template = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'SharePointTemplate' and RowKey eq '$TemplateId'" + if (-not $Template) { throw 'No template found with the provided ID' } + $TemplateData = $Template.JSON | ConvertFrom-Json + if (-not $SiteOwner) { throw 'A site/team owner is required to deploy this template.' } + + $TenantFilter = $Request.Body.tenantFilter + if ([string]::IsNullOrWhiteSpace($TenantFilter)) { + throw 'A tenant is required to deploy this template.' + } + + # Pre-create a status row so the frontend can poll live progress from queue time. + $JobId = New-CIPPAsyncDeployment -Names @($TenantFilter) -StepTitles @(@($TemplateData.siteTemplates) | ForEach-Object { $_.displayName }) -Source 'SharePointTemplate' + + # Site and Team provisioning is slow (Teams sites can take a minute each), so the + # actual work runs on the durable queue instead of in this request. + $Queue = New-CippQueueEntry -Name "SharePoint Template - $($TemplateData.templateName)" -TotalTasks 1 + $InputObject = @{ + OrchestratorName = 'SharePointTemplateOrchestrator' + Batch = @( + [pscustomobject]@{ + FunctionName = 'ExecSharePointTemplateDeploy' + Tenant = $TenantFilter + TemplateId = $TemplateId + SiteOwner = $SiteOwner + DeploymentId = $JobId + QueueId = $Queue.RowKey + } + ) + SkipLog = $true + } + $null = Start-CIPPOrchestrator -InputObject $InputObject + + $Body = @{ + Results = "Deployment of template '$($TemplateData.templateName)' queued for $TenantFilter." + DeploymentId = $JobId + } + Write-LogMessage -headers $Headers -API $APIName -message "Queued SharePoint template deployment '$($TemplateData.templateName)' for $TenantFilter" -Sev 'Info' + } catch { + $Body = @{ Results = "Failed to queue template deployment: $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::BadRequest + } + } + 'DeployStatus' { + try { + $JobId = $Request.Query.DeploymentId ?? $Request.Body.DeploymentId + if (-not $JobId) { throw 'DeploymentId is required' } + $Body = @(Get-CIPPAsyncDeployment -JobId $JobId) + } catch { + $Body = @{ Results = "Failed to get deployment status: $($_.Exception.Message)" } + $StatusCode = [HttpStatusCode]::BadRequest + } + } + default { + $Filter = "PartitionKey eq 'SharePointTemplate'" + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $Body = $Templates | ForEach-Object { + $TemplateData = $_.JSON | ConvertFrom-Json + $OutputObject = $TemplateData | Select-Object -Property * + $OutputObject | Add-Member -NotePropertyName 'TemplateId' -NotePropertyValue $_.RowKey -Force + $OutputObject | Add-Member -NotePropertyName 'Timestamp' -NotePropertyValue $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') -Force + return $OutputObject + } + } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = ConvertTo-Json -Depth 10 -InputObject @($Body) + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 index 94097e2f46ec1..744c35d9312d9 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ExecTeamsVoicePhoneNumberAssignment.ps1 @@ -4,6 +4,9 @@ Function Invoke-ExecTeamsVoicePhoneNumberAssignment { Entrypoint .ROLE Teams.Voice.ReadWrite + .DESCRIPTION + Assigns a phone number to a user or resource account, or sets the emergency location on a + number, via the Teams administration Graph API. #> [CmdletBinding()] param($Request, $TriggerMetadata) @@ -12,15 +15,37 @@ Function Invoke-ExecTeamsVoicePhoneNumberAssignment { $Headers = $Request.Headers $Identity = $Request.Body.input.value + $PhoneNumber = $Request.Body.PhoneNumber + $TenantFilter = $Request.Body.TenantFilter + $BaseUri = 'https://graph.microsoft.com/v1.0/admin/teams/telephoneNumberManagement/numberAssignments' - $tenantFilter = $Request.Body.TenantFilter try { if ($Request.Body.locationOnly) { - $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{LocationId = $Identity; PhoneNumber = $Request.Body.PhoneNumber; ErrorAction = 'stop' } - $Results = [pscustomobject]@{'Results' = "Successfully assigned emergency location to $($Request.Body.PhoneNumber)" } + # updateNumber is synchronous (200) and only touches the optional attributes. + $Body = @{ + telephoneNumber = $PhoneNumber + locationId = $Identity + } + $null = New-GraphPOSTRequest -uri "$BaseUri/updateNumber" -tenantid $TenantFilter -body ($Body | ConvertTo-Json -Compress) -type POST + $Results = [pscustomobject]@{'Results' = "Successfully assigned emergency location to $PhoneNumber" } } else { - $null = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Set-CsPhoneNumberAssignment' -CmdParams @{Identity = $Identity; PhoneNumber = $Request.Body.PhoneNumber; PhoneNumberType = $Request.Body.PhoneNumberType; ErrorAction = 'stop' } - $Results = [pscustomobject]@{'Results' = "Successfully assigned $($Request.Body.PhoneNumber) to $($Identity)" } + # Graph wants the object ID; the UI sends a UPN, so resolve it when it isn't a GUID. + $TargetId = $Identity + if ($Identity -notmatch '^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$') { + $TargetId = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$([uri]::EscapeDataString($Identity))?`$select=id" -tenantid $TenantFilter).id + if (-not $TargetId) { throw "Could not resolve $Identity to a user or resource account." } + } + + $Body = @{ + telephoneNumber = $PhoneNumber + assignmentTargetId = $TargetId + numberType = Get-CippTeamsNumberType -NumberType $Request.Body.PhoneNumberType + } + if ($Request.Body.AssignmentCategory) { $Body.assignmentCategory = $Request.Body.AssignmentCategory } + + # assignNumber is asynchronous: 202 Accepted with a Location header for the operation. + $null = New-GraphPOSTRequest -uri "$BaseUri/assignNumber" -tenantid $TenantFilter -body ($Body | ConvertTo-Json -Compress) -type POST + $Results = [pscustomobject]@{'Results' = "Successfully submitted assignment of $PhoneNumber to $Identity" } } Write-LogMessage -Headers $Headers -API $APINAME -tenant $($TenantFilter) -message $($Results.Results) -Sev Info $StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListDeletedSites.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListDeletedSites.ps1 new file mode 100644 index 0000000000000..5020b45d4b2f3 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListDeletedSites.ps1 @@ -0,0 +1,49 @@ +function Invoke-ListDeletedSites { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists deleted SharePoint sites still restorable from the tenant recycle bin, via the + SharePoint admin CSOM API. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + + # CSOM verbose JSON dates arrive as '/Date(year,month,day,h,m,s,ms)/' with a 0-based month. + function ConvertFrom-CsomDate($Value) { + if ("$Value" -match '/Date\((\d+),(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)\)/') { + return ([datetime]::new([int]$Matches[1], ([int]$Matches[2] + 1), [int]$Matches[3], [int]$Matches[4], [int]$Matches[5], [int]$Matches[6], [System.DateTimeKind]::Utc)).ToString('yyyy-MM-ddTHH:mm:ssZ') + } + return $Value + } + + try { + $DeletedSites = Get-CIPPSPODeletedSites -TenantFilter $TenantFilter + $Body = @($DeletedSites | ForEach-Object { + [PSCustomObject]@{ + # Deleted-site CSOM entries carry no Title; derive a display name from the URL. + Name = ([uri]$_.Url).Segments[-1].TrimEnd('/') + Url = $_.Url + SiteId = $_.SiteId + Status = $_.Status + DeletionTime = ConvertFrom-CsomDate $_.DeletionTime + DaysRemaining = $_.DaysRemaining + StorageMaximumLevel = $_.StorageMaximumLevel + } + }) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = "Failed to list deleted sites: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointExternalUsers.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointExternalUsers.ps1 new file mode 100644 index 0000000000000..803dfa847989b --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointExternalUsers.ps1 @@ -0,0 +1,164 @@ +function Invoke-ListSharePointExternalUsers { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists external/guest users known to SharePoint from two sources: the tenant external + users store (populated when a guest first redeems a share) and a sweep of every site's + user list (which also catches guests who were granted membership but never signed in). + Every entry is classified against Entra: 'Entra B2B' (live Entra guest), 'Orphaned B2B' + (the Entra guest was deleted but SharePoint still references them) or 'SharePoint-only' + (legacy email-authenticated guest that never had an Entra object). + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + + # CSOM verbose JSON dates arrive as '/Date(year,month,day,h,m,s,ms)/' with a 0-based month. + function ConvertFrom-CsomDate($Value) { + if ("$Value" -match '/Date\((\d+),(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)\)/') { + return ([datetime]::new([int]$Matches[1], ([int]$Matches[2] + 1), [int]$Matches[3], [int]$Matches[4], [int]$Matches[5], [int]$Matches[6], [System.DateTimeKind]::Utc)).ToString('yyyy-MM-ddTHH:mm:ssZ') + } + return $Value + } + + try { + # --- Source 1: tenant external users store --- + try { + $StoreUsers = @(Get-CIPPSPOExternalUsers -TenantFilter $TenantFilter) + } catch { + throw "Could not enumerate the SharePoint external users store: $($_.Exception.Message)" + } + + # --- Source 2: guest entries in every site's user list --- + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $SiteGuests = @{} + try { + # NB: getAllSites returns an empty set when $select is combined with this $filter. + $Sites = @((New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/getAllSites?`$filter=isPersonalSite eq false&`$top=999" -tenantid $TenantFilter -AsApp $true).webUrl) | Where-Object { $_ } + } catch { + $Sites = @() + Write-Information "Site enumeration failed; external users report is store-only: $($_.Exception.Message)" + } + foreach ($SiteUrl in $Sites) { + try { + $Users = New-GraphGetRequest -uri "$($SiteUrl.TrimEnd('/'))/_api/web/siteusers?`$select=Title,Email,LoginName,IsShareByEmailGuestUser,IsEmailAuthenticationGuestUser" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + } catch { + continue # sites the app cannot reach (locked etc.) are skipped + } + foreach ($User in $Users) { + $IsGuest = [bool]$User.IsShareByEmailGuestUser -or [bool]$User.IsEmailAuthenticationGuestUser -or $User.LoginName -match '(?i)#ext#|urn%3aspo%3aguest' + if (-not $IsGuest) { continue } + $Key = ($User.LoginName -split '\|')[-1].ToLower() + if (-not $SiteGuests.ContainsKey($Key)) { + $SiteGuests[$Key] = [PSCustomObject]@{ + Title = $User.Title + Email = $User.Email + LoginName = $User.LoginName + Sites = [System.Collections.Generic.List[string]]::new() + } + } + [void]$SiteGuests[$Key].Sites.Add($SiteUrl) + } + } + + # --- Entra guest sweep for the join --- + $EntraGuests = @() + if ($StoreUsers.Count -gt 0 -or $SiteGuests.Count -gt 0) { + try { + $EntraGuests = @(New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users?`$filter=userType eq 'Guest'&`$select=id,userPrincipalName,mail&`$top=999" -tenantid $TenantFilter -AsApp $true) + } catch { + throw "Could not list Entra guest users for cross-referencing: $($_.Exception.Message)" + } + } + $GuestsByUpn = @{} + $GuestsByMail = @{} + foreach ($Guest in $EntraGuests) { + if ($Guest.userPrincipalName) { $GuestsByUpn[$Guest.userPrincipalName.ToLower()] = $Guest } + if ($Guest.mail) { $GuestsByMail[$Guest.mail.ToLower()] = $Guest } + } + + function Resolve-GuestClassification($LoginName, $AcceptedAs, $InvitedAs) { + if ("$LoginName" -match '(?i)urn(%3a|:)spo(%3a|:)guest') { + return @('SharePoint-only (email authenticated)', $null) + } + $ClaimsUpn = ("$LoginName" -split '\|')[-1].ToLower() + $EntraUser = $GuestsByUpn[$ClaimsUpn] + if (-not $EntraUser -and $AcceptedAs) { $EntraUser = $GuestsByMail[([string]$AcceptedAs).ToLower()] } + if (-not $EntraUser -and $InvitedAs) { $EntraUser = $GuestsByMail[([string]$InvitedAs).ToLower()] } + if ($EntraUser) { return @('Entra B2B', $EntraUser) } + return @('Orphaned B2B (not in Entra)', $null) + } + + $Rows = [System.Collections.Generic.List[object]]::new() + $SeenKeys = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + + foreach ($User in $StoreUsers) { + $GuestType, $EntraUser = Resolve-GuestClassification $User.LoginName $User.AcceptedAs $User.InvitedAs + # Match this store entry to any site membership sweep hit for a Sites column. + $MatchKey = $null + foreach ($Key in $SiteGuests.Keys) { + $SG = $SiteGuests[$Key] + if (($User.AcceptedAs -and $SG.Email -eq $User.AcceptedAs) -or ($EntraUser -and $Key -eq $EntraUser.userPrincipalName.ToLower())) { $MatchKey = $Key; break } + } + if ($MatchKey) { [void]$SeenKeys.Add($MatchKey) } + # Direct assignment keeps the List intact; an if-expression would pipeline-unwrap + # a single-element list to a scalar and the API would emit a string, not an array. + $RowSites = [System.Collections.Generic.List[string]]::new() + if ($MatchKey) { $RowSites = $SiteGuests[$MatchKey].Sites } + $Rows.Add([PSCustomObject]@{ + DisplayName = $User.DisplayName + InvitedAs = $User.InvitedAs + AcceptedAs = $User.AcceptedAs + # Store entries often carry no login; the site sweep's claims login fills the gap. + LoginName = if ($User.LoginName) { $User.LoginName } elseif ($MatchKey) { $SiteGuests[$MatchKey].LoginName } else { $null } + UniqueId = $User.UniqueId + WhenCreated = ConvertFrom-CsomDate $User.WhenCreated + InvitedBy = $User.InvitedBy + GuestType = $GuestType + InEntra = [bool]$EntraUser + EntraUserId = $EntraUser.id + Source = 'External users store' + Sites = $RowSites + }) + } + + # Guests that only exist as site members (never redeemed / store aged out) + foreach ($Key in $SiteGuests.Keys) { + if ($SeenKeys.Contains($Key)) { continue } + $SG = $SiteGuests[$Key] + $GuestType, $EntraUser = Resolve-GuestClassification $SG.LoginName $SG.Email $null + $Rows.Add([PSCustomObject]@{ + DisplayName = $SG.Title + InvitedAs = $null + AcceptedAs = $SG.Email + LoginName = $SG.LoginName + UniqueId = $null + WhenCreated = $null + InvitedBy = $null + GuestType = $GuestType + InEntra = [bool]$EntraUser + EntraUserId = $EntraUser.id + Source = 'Site membership' + Sites = $SG.Sites + }) + } + + $Body = @($Rows) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = "Failed to list SharePoint external users: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointPermissions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointPermissions.ps1 new file mode 100644 index 0000000000000..a6b7f59a4a838 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointPermissions.ps1 @@ -0,0 +1,164 @@ +function Invoke-ListSharePointPermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Compiles the SharePoint permissions report for a tenant from CACHED data in the CIPP + reporting database (SharePointPermissions). No live enumeration is performed - refresh the + data by syncing that cache (ExecCIPPDBCache). Returns the scan summary, the oversharing + signals worth acting on, chart datasets and the individual permission assignments. + + Signals reported: + - Broad claims: grants to Everyone, Everyone except external users, or All Users. A library + carrying one of these is reachable by the whole tenant regardless of who was meant to + have it, which is the classic oversharing footgun. + - External grants: permissions held by guest or external identities. + - Direct Full Control: Full Control held by something other than a SharePoint group, i.e. + granted to a user or directory group rather than through the site's Owners group. + - Unique permission libraries: libraries that no longer inherit from their site, so site + level permission changes no longer reach them. + + Limited Access assignments (isSystemManaged) are excluded from every signal - SharePoint + creates them itself so a user can traverse to an item, and they grant nothing on their own. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + # A readable label for a site that has no display name, taken from the last path segment of + # its URL: '.../sites/AllCompany' becomes 'AllCompany', '.../search' becomes 'search'. + function Get-CIPPSiteLabel { + param([string]$SiteUrl) + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { return 'Unnamed site' } + try { + $Path = ([System.Uri]$SiteUrl).AbsolutePath.Trim('/') + if ($Path) { return ($Path -split '/')[-1] } + return 'Root site' + } catch { + return 'Unnamed site' + } + } + + # --- Cached dataset from the CIPP reporting database --- + try { + $CacheRows = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SharePointPermissions') + } catch { + $CacheRows = @() + } + + $PermissionsSynced = $false + $LastDataRefresh = $null + try { + $CountRow = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SharePointPermissions' -CountsOnly | Select-Object -First 1 + if ($CountRow) { $PermissionsSynced = $true } + if ($CountRow.Timestamp) { $LastDataRefresh = $CountRow.Timestamp } + } catch {} + + $SiteRows = @($CacheRows | Where-Object { $_.rowType -eq 'Site' }) + $Assignments = @($CacheRows | Where-Object { $_.rowType -eq 'Assignment' }) + + # --- Scan coverage --- + $SitesScanned = 0; $LibrariesScanned = 0; $UniquePermissionLibraries = 0 + $SkippedSites = [System.Collections.Generic.List[object]]::new() + foreach ($Site in $SiteRows) { + $SitesScanned++ + $LibrariesScanned += [int]($Site.librariesScanned ?? 0) + $UniquePermissionLibraries += [int]($Site.librariesWithUniquePermissions ?? 0) + if ($Site.collectionStatus -eq 'Skipped') { + $SkippedSites.Add([PSCustomObject]@{ + siteName = $Site.siteName + siteUrl = $Site.siteUrl + error = $Site.collectionError + }) + } + } + + # --- Assignment rollups --- + $BroadClaimGrants = 0; $ExternalGrants = 0; $DirectFullControlGrants = 0 + $ByPermissionLevel = @{} + $ByPrincipalType = @{} + $ByBroadClaim = @{} + $BySiteUnique = @{} + $RealAssignments = 0 + foreach ($Assignment in $Assignments) { + # Placeholder rows for a unique-permission library with nothing granted carry no principal. + if (-not $Assignment.principalId) { continue } + # SharePoint maintains Limited Access itself; it grants nothing on its own. + if ($Assignment.isSystemManaged -eq $true) { continue } + $RealAssignments++ + + $Level = [string]($Assignment.permissionLevel ?? 'Unknown') + $ByPermissionLevel[$Level] = [int]($ByPermissionLevel[$Level] ?? 0) + 1 + $Type = [string]($Assignment.principalType ?? 'Other') + $ByPrincipalType[$Type] = [int]($ByPrincipalType[$Type] ?? 0) + 1 + + if ($Assignment.broadClaim) { + $BroadClaimGrants++ + $Claim = [string]$Assignment.broadClaim + $ByBroadClaim[$Claim] = [int]($ByBroadClaim[$Claim] ?? 0) + 1 + } + if ($Assignment.isGuest -eq $true) { $ExternalGrants++ } + # Full Control held by anything other than a SharePoint group means it was granted + # directly rather than through the site's Owners group, which every site has by default. + if ($Level -eq 'Full Control' -and $Assignment.principalType -ne 'SharePoint Group') { + $DirectFullControlGrants++ + } + } + + # Libraries that no longer inherit, counted per site for the chart. + foreach ($Site in $SiteRows) { + $Unique = [int]($Site.librariesWithUniquePermissions ?? 0) + if ($Unique -gt 0) { + $SiteName = [string]($Site.siteName ?? $Site.siteUrl) + if ($SiteName) { $BySiteUnique[$SiteName] = [int]($BySiteUnique[$SiteName] ?? 0) + $Unique } + } + } + + $Body = [PSCustomObject]@{ + summary = [PSCustomObject]@{ + sitesScanned = $SitesScanned + sitesSkipped = $SkippedSites.Count + librariesScanned = $LibrariesScanned + uniquePermissionLibraries = $UniquePermissionLibraries + totalAssignments = $RealAssignments + broadClaimGrants = $BroadClaimGrants + externalGrants = $ExternalGrants + directFullControlGrants = $DirectFullControlGrants + permissionsSynced = $PermissionsSynced + lastDataRefresh = $LastDataRefresh + } + byPermissionLevel = @($ByPermissionLevel.GetEnumerator() | Sort-Object -Property Value -Descending | ForEach-Object { [PSCustomObject]@{ level = $_.Key; grants = $_.Value } }) + byPrincipalType = @($ByPrincipalType.GetEnumerator() | Sort-Object -Property Value -Descending | ForEach-Object { [PSCustomObject]@{ type = $_.Key; grants = $_.Value } }) + byBroadClaim = @($ByBroadClaim.GetEnumerator() | Sort-Object -Property Value -Descending | ForEach-Object { [PSCustomObject]@{ claim = $_.Key; grants = $_.Value } }) + topSitesByUniqueLibraries = @($BySiteUnique.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 10 | ForEach-Object { [PSCustomObject]@{ site = $_.Key; libraries = $_.Value } }) + skippedSites = @($SkippedSites) + # Display fields are derived here rather than stored, so existing cached data gains them + # without waiting for a re-scan. + # + # appliesTo spells out what scope means for a reader scanning the table. Every Library row + # is by definition a library that stopped inheriting - libraries that still inherit are not + # collected, because their permissions are the site's repeated. + # + # siteName falls back to a label built from the URL for the handful of system sites that + # have no name. The URL itself is not used: the tables render any value starting with http + # as a link, and a column of links where names should be is worse than a plain label. + assignments = @($Assignments | ForEach-Object { + $AppliesTo = if ($_.scope -eq 'Library') { 'This library only' } else { 'Whole site' } + $_ | Add-Member -NotePropertyName 'appliesTo' -NotePropertyValue $AppliesTo -Force + + $SiteName = [string]$_.siteName + if ([string]::IsNullOrWhiteSpace($SiteName) -or $SiteName -like 'http*') { + $_ | Add-Member -NotePropertyName 'siteName' -NotePropertyValue (Get-CIPPSiteLabel -SiteUrl $_.siteUrl) -Force + } + $_ + }) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointSharing.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointSharing.ps1 new file mode 100644 index 0000000000000..7faa7e9172fea --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointSharing.ps1 @@ -0,0 +1,158 @@ +function Invoke-ListSharePointSharing { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Compiles the SharePoint & OneDrive sharing report for a tenant from CACHED data in the + CIPP reporting database (SharePointSharingLinks, SharePointSiteUsage, OneDriveUsage). + No live Graph enumeration is performed - refresh the data by syncing those caches + (ExecCIPPDBCache). Returns environment/file/storage summaries per workload, sharing link + counts by classification, chart datasets and the individual sharing link rows. + + Also rolls up the sharing sprawl signals held in the same rows: anonymous links that allow + editing, anonymous links with no expiry, folder-level external shares (one share exposes + everything below it), and the busiest libraries and external recipients. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + # Usage report values can arrive as numbers, strings or empty strings depending on the tenant. + function ConvertTo-SafeDouble { + param($Value) + $Parsed = [double]0 + if ($null -ne $Value -and [double]::TryParse("$Value", [ref]$Parsed)) { return $Parsed } + return [double]0 + } + + # --- Cached datasets from the CIPP reporting database --- + $CacheTypes = @('SharePointSharingLinks', 'SharePointSiteUsage', 'OneDriveUsage') + $CacheData = @{} + $CacheSynced = @{} + $CacheTimestamps = [System.Collections.Generic.List[object]]::new() + foreach ($Type in $CacheTypes) { + try { + $CacheData[$Type] = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type $Type) + } catch { + $CacheData[$Type] = @() + } + $CacheSynced[$Type] = $false + try { + $CountRow = Get-CIPPDbItem -TenantFilter $TenantFilter -Type $Type -CountsOnly | Select-Object -First 1 + if ($CountRow) { $CacheSynced[$Type] = $true } + if ($CountRow.Timestamp) { $CacheTimestamps.Add($CountRow.Timestamp) } + } catch {} + } + $LastDataRefresh = $CacheTimestamps | Sort-Object | Select-Object -First 1 + + # --- Environment summaries per workload. Teams-connected sites (rootWebTemplate 'Group') + # are reported separately from the remaining SharePoint sites; OneDrive is per account. --- + $SharePointSites = 0; $SharePointFiles = [int64]0; $SharePointStorage = [double]0 + $TeamsSites = 0; $TeamsFiles = [int64]0; $TeamsStorage = [double]0 + foreach ($Site in $CacheData['SharePointSiteUsage']) { + $Files = [int64](ConvertTo-SafeDouble -Value $Site.fileCount) + $Storage = ConvertTo-SafeDouble -Value $Site.storageUsedInBytes + if ($Site.rootWebTemplate -eq 'Group') { + $TeamsSites++; $TeamsFiles += $Files; $TeamsStorage += $Storage + } else { + $SharePointSites++; $SharePointFiles += $Files; $SharePointStorage += $Storage + } + } + + $OneDriveAccounts = 0; $OneDriveFiles = [int64]0; $OneDriveStorage = [double]0 + foreach ($Account in $CacheData['OneDriveUsage']) { + $OneDriveAccounts++ + $OneDriveFiles += [int64](ConvertTo-SafeDouble -Value $Account.fileCount) + $OneDriveStorage += ConvertTo-SafeDouble -Value $Account.storageUsedInBytes + } + + # --- Sharing link rollups --- + $Links = $CacheData['SharePointSharingLinks'] + $AnonymousLinks = 0; $ExternalLinks = 0; $InternalLinks = 0 + $ByScope = @{} + $ByLinkType = @{} + $BySite = @{} + $ByLibrary = @{} + $ByRecipient = @{} + $SharedItemIds = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + # Sprawl risk signals, derived from the same cached rows. + $AnonymousEditLinks = 0; $NeverExpiringAnonymousLinks = 0; $FolderShares = 0; $PasswordProtectedLinks = 0 + foreach ($Link in $Links) { + switch ($Link.classification) { + 'Anonymous' { $AnonymousLinks++ } + 'External' { $ExternalLinks++ } + default { $InternalLinks++ } + } + $Scope = [string]($Link.classification ?? 'Internal') + $ByScope[$Scope] = [int]($ByScope[$Scope] ?? 0) + 1 + $Type = [string]($Link.linkType ?? 'link') + $ByLinkType[$Type] = [int]($ByLinkType[$Type] ?? 0) + 1 + $SiteName = [string]($Link.siteName ?? $Link.siteUrl) + if ($SiteName) { $BySite[$SiteName] = [int]($BySite[$SiteName] ?? 0) + 1 } + if ($Link.driveName) { + $LibraryLabel = if ($SiteName) { "$SiteName / $($Link.driveName)" } else { [string]$Link.driveName } + $ByLibrary[$LibraryLabel] = [int]($ByLibrary[$LibraryLabel] ?? 0) + 1 + } + if ($Link.driveId -and $Link.itemId) { [void]$SharedItemIds.Add("$($Link.driveId)|$($Link.itemId)") } + + # 'write' and 'owner' both mean the recipient can change the content. + $CanEdit = @($Link.roles) -contains 'write' -or @($Link.roles) -contains 'owner' + if ($Link.classification -eq 'Anonymous') { + if ($CanEdit) { $AnonymousEditLinks++ } + if (-not $Link.expirationDateTime) { $NeverExpiringAnonymousLinks++ } + } + # A share on a folder exposes everything below it, so it counts differently to a file share. + if ($Link.itemType -eq 'Folder' -and $Link.classification -in @('Anonymous', 'External')) { $FolderShares++ } + if ($Link.hasPassword -eq $true) { $PasswordProtectedLinks++ } + + # Who the tenant is sharing with, counted from named external recipients only: + # anonymous links have no recipient and internal ones are not sprawl. + if ($Link.classification -eq 'External') { + foreach ($Recipient in @($Link.sharedWith)) { + if ([string]::IsNullOrWhiteSpace($Recipient)) { continue } + $ByRecipient[[string]$Recipient] = [int]($ByRecipient[[string]$Recipient] ?? 0) + 1 + } + } + } + + $Body = [PSCustomObject]@{ + summary = [PSCustomObject]@{ + sharePointSites = $SharePointSites + sharePointFiles = $SharePointFiles + sharePointStorageUsedGB = [math]::Round($SharePointStorage / 1GB, 2) + teamsSites = $TeamsSites + teamsFiles = $TeamsFiles + teamsStorageUsedGB = [math]::Round($TeamsStorage / 1GB, 2) + oneDriveAccounts = $OneDriveAccounts + oneDriveFiles = $OneDriveFiles + oneDriveStorageUsedGB = [math]::Round($OneDriveStorage / 1GB, 2) + totalLinks = @($Links).Count + anonymousLinks = $AnonymousLinks + externalLinks = $ExternalLinks + internalLinks = $InternalLinks + itemsShared = $SharedItemIds.Count + anonymousEditLinks = $AnonymousEditLinks + neverExpiringAnonymous = $NeverExpiringAnonymousLinks + folderShares = $FolderShares + passwordProtectedLinks = $PasswordProtectedLinks + externalRecipients = $ByRecipient.Count + linksSynced = $CacheSynced['SharePointSharingLinks'] + usageSynced = ($CacheSynced['SharePointSiteUsage'] -or $CacheSynced['OneDriveUsage']) + lastDataRefresh = $LastDataRefresh + } + byScope = @($ByScope.GetEnumerator() | Sort-Object -Property Value -Descending | ForEach-Object { [PSCustomObject]@{ scope = $_.Key; links = $_.Value } }) + byLinkType = @($ByLinkType.GetEnumerator() | Sort-Object -Property Value -Descending | ForEach-Object { [PSCustomObject]@{ type = $_.Key; links = $_.Value } }) + topSites = @($BySite.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 10 | ForEach-Object { [PSCustomObject]@{ site = $_.Key; links = $_.Value } }) + topLibraries = @($ByLibrary.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 10 | ForEach-Object { [PSCustomObject]@{ library = $_.Key; links = $_.Value } }) + topRecipients = @($ByRecipient.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 10 | ForEach-Object { [PSCustomObject]@{ recipient = $_.Key; links = $_.Value } }) + links = @($Links) + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointTemplates.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointTemplates.ps1 new file mode 100644 index 0000000000000..ba1088f590efb --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharePointTemplates.ps1 @@ -0,0 +1,67 @@ +function Invoke-ListSharePointTemplates { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Sharepoint.Admin.Read + .DESCRIPTION + Lists saved SharePoint provisioning templates (site templates and their document libraries). + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + + $Table = Get-CIPPTable -TableName 'templates' + + try { + $Filter = "PartitionKey eq 'SharePointTemplate'" + $Templates = Get-CIPPAzDataTableEntity @Table -Filter $Filter + + $Body = $Templates | ForEach-Object { + try { + $TemplateData = $null + if ($_.JSON) { + $TemplateData = $_.JSON | ConvertFrom-Json -ErrorAction Stop + } + + $TemplateObject = [PSCustomObject]@{ + TemplateId = $_.RowKey + Timestamp = $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + + if ($TemplateData) { + foreach ($Property in $TemplateData.PSObject.Properties) { + $TemplateObject | Add-Member -NotePropertyName $Property.Name -NotePropertyValue $Property.Value -Force + } + } + + # Surface scalar counts so the list can show/sort them without inspecting the nested arrays. + $SiteTemplates = @($TemplateData.siteTemplates | Where-Object { $_ }) + $LibraryCount = ($SiteTemplates | ForEach-Object { @($_.libraries | Where-Object { $_ }).Count } | Measure-Object -Sum).Sum + $TemplateObject | Add-Member -NotePropertyName 'SiteTemplateCount' -NotePropertyValue ([int]$SiteTemplates.Count) -Force + $TemplateObject | Add-Member -NotePropertyName 'LibraryCount' -NotePropertyValue ([int]$LibraryCount) -Force + + return $TemplateObject + } catch { + Write-LogMessage -headers $Headers -API $APIName -message "Error processing SharePoint template $($_.RowKey): $($_.Exception.Message)" -Sev 'Error' + return [PSCustomObject]@{ + TemplateId = $_.RowKey + templateName = 'Error parsing template data' + Error = $_.Exception.Message + Timestamp = $_.Timestamp.DateTime.ToString('yyyy-MM-ddTHH:mm:ssZ') + } + } + } + } catch { + $Body = @{ + Results = "Failed to list SharePoint templates: $($_.Exception.Message)" + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = ConvertTo-Json -Depth 10 -InputObject @($Body) + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 index 355facd78999b..a630624ad9533 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSharepointAdminUrl.ps1 @@ -5,7 +5,11 @@ function Invoke-ListSharepointAdminUrl { .ROLE CIPP.Core.Read .DESCRIPTION - Retrieves the SharePoint Admin Center URL for a tenant. + Retrieves the SharePoint Admin Center URL for a tenant and redirects to it. Pass ReturnUrl to + get the URL back as JSON instead of being redirected. + + The URL cannot be derived from the tenant name - it has to be resolved through Graph - so the + result is cached on the tenant, which lets ListTenants hand out a direct link from then on. #> [CmdletBinding()] param( @@ -13,40 +17,55 @@ function Invoke-ListSharepointAdminUrl { $TriggerMetadata ) - if ($Request.Query.TenantFilter) { - $TenantFilter = $Request.Query.TenantFilter + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Query.TenantFilter + + if (!$TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'TenantFilter is required' } + }) + } - $Tenant = Get-Tenants -TenantFilter $TenantFilter + try { + $Tenant = Get-Tenants -TenantFilter $TenantFilter | Select-Object -First 1 + if (!$Tenant) { + throw "Tenant '$TenantFilter' was not found." + } if ($Tenant.SharepointAdminUrl) { $AdminUrl = $Tenant.SharepointAdminUrl } else { - $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter - $Tenant | Add-Member -MemberType NoteProperty -Name SharepointAdminUrl -Value $SharePointInfo.AdminUrl + # Throws rather than returning a placeholder if the name can't be resolved, so we never + # cache a URL that points nowhere. + $AdminUrl = (Get-SharePointAdminLink -Public $false -TenantFilter $TenantFilter).AdminUrl + + $Tenant | Add-Member -MemberType NoteProperty -Name 'SharepointAdminUrl' -Value $AdminUrl -Force $Table = Get-CIPPTable -TableName 'Tenants' Add-CIPPAzDataTableEntity @Table -Entity $Tenant -Force - $AdminUrl = $SharePointInfo.AdminUrl } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to resolve the SharePoint admin URL: $ErrorMessage" -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::InternalServerError + Body = @{ Results = "Could not resolve the SharePoint admin URL for $TenantFilter. $ErrorMessage" } + }) + } - if ($Request.Query.ReturnUrl) { - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = @{ - AdminUrl = $AdminUrl - } - }) - } else { - return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::Found - Headers = @{ - Location = $AdminUrl - } - }) - } - } else { + if ($Request.Query.ReturnUrl) { return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::BadRequest - Body = 'TenantFilter is required' + StatusCode = [HttpStatusCode]::OK + Body = @{ AdminUrl = $AdminUrl } }) } + + # The body is not decoration: a browser that follows the redirect never sees it, but it means a + # caller whose runtime drops the Location header gets the URL instead of a bare 'null' page. + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::Found + Headers = @{ Location = $AdminUrl } + Body = @{ AdminUrl = $AdminUrl } + }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteActivity.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteActivity.ps1 new file mode 100644 index 0000000000000..a57482965dce8 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteActivity.ps1 @@ -0,0 +1,111 @@ +function Invoke-ListSiteActivity { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists cached site activity rows from the CIPP reporting database for SharePoint and Teams sites. + Supports tenantFilter and optional Type filter (SharePoint or TeamsSite). + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = 'ListSiteActivity' + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $Type = $Request.Query.Type ?? $Request.Body.Type + $SiteId = $Request.Query.siteId ?? $Request.Body.siteId + + if (-not $TenantFilter) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'tenantFilter is required' + }) + } + + if ($Type -and $Type -notin @('SharePoint', 'TeamsSite')) { + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = 'Type must be SharePoint or TeamsSite' + }) + } + + try { + $NormalizeSiteId = { + param($Value) + if ([string]::IsNullOrWhiteSpace($Value)) { return $null } + return $Value.ToString().Trim().Trim('{}').ToLowerInvariant() + } + $LookupSiteId = & $NormalizeSiteId $SiteId + + $TypeMap = @{ + SharePoint = 'SharePoint' + TeamsSite = 'SharePointAndTeams' + } + $SelectedSiteType = if ($Type) { $TypeMap[$Type] } else { $null } + + $AllResults = [System.Collections.Generic.List[object]]::new() + + if ($TenantFilter -eq 'AllTenants') { + $AnyItems = Get-CIPPDbItem -TenantFilter 'allTenants' -Type 'SiteActivity' + $Tenants = @($AnyItems | Where-Object { $_.RowKey -notlike '*-Count' } | Select-Object -ExpandProperty PartitionKey -Unique) + + $TenantList = Get-Tenants -IncludeErrors + $Tenants = $Tenants | Where-Object { $TenantList.defaultDomainName -contains $_ } + + foreach ($Tenant in $Tenants) { + try { + $TenantRows = @(New-CIPPDbRequest -TenantFilter $Tenant -Type 'SiteActivity') + if (-not $TenantRows) { continue } + + $CountRow = Get-CIPPDbItem -TenantFilter $Tenant -Type 'SiteActivity' -CountsOnly | Select-Object -First 1 + $CacheTimestamp = $CountRow.Timestamp + + foreach ($Row in $TenantRows) { + if ($Row.siteType -eq 'OneDrive') { continue } + if ($SelectedSiteType -and $Row.siteType -ne $SelectedSiteType) { continue } + if ($LookupSiteId) { + $RowSiteId = & $NormalizeSiteId $Row.siteId + if ($RowSiteId -ne $LookupSiteId) { continue } + } + + $Row | Add-Member -NotePropertyName 'Tenant' -NotePropertyValue $Tenant -Force + $Row | Add-Member -NotePropertyName 'CacheTimestamp' -NotePropertyValue $CacheTimestamp -Force + [void]$AllResults.Add($Row) + } + } catch { + Write-LogMessage -API $APIName -tenant $Tenant -message "Failed to retrieve cached site activity: $($_.Exception.Message)" -sev Warning + } + } + } else { + $TenantRows = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SiteActivity') + $CountRow = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'SiteActivity' -CountsOnly | Select-Object -First 1 + $CacheTimestamp = $CountRow.Timestamp + + foreach ($Row in $TenantRows) { + if ($Row.siteType -eq 'OneDrive') { continue } + if ($SelectedSiteType -and $Row.siteType -ne $SelectedSiteType) { continue } + if ($LookupSiteId) { + $RowSiteId = & $NormalizeSiteId $Row.siteId + if ($RowSiteId -ne $LookupSiteId) { continue } + } + + $Row | Add-Member -NotePropertyName 'CacheTimestamp' -NotePropertyValue $CacheTimestamp -Force + [void]$AllResults.Add($Row) + } + } + + $GraphRequest = @($AllResults | Sort-Object -Property displayName) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Failed to list site activity: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::InternalServerError + $GraphRequest = @{ Error = $ErrorMessage.NormalizedError } + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @($GraphRequest) + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteLibraries.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteLibraries.ps1 new file mode 100644 index 0000000000000..9a9eea2c2ae03 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteLibraries.ps1 @@ -0,0 +1,57 @@ +function Invoke-ListSiteLibraries { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists the visible document libraries of a SharePoint site via the Graph API. The site can + be addressed by SiteId or by SiteUrl (hostname:path addressing). Returns the SharePoint + list GUID as Id so the result can be used directly against the SharePoint REST API. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $SiteId = $Request.Query.SiteId ?? $Request.Body.SiteId + $SiteUrl = $Request.Query.SiteUrl ?? $Request.Body.SiteUrl + + try { + # Resolve the site addressing segment: prefer the Graph site id, else hostname:path from the URL. + if (-not [string]::IsNullOrWhiteSpace($SiteId)) { + $SiteSegment = $SiteId + } elseif (-not [string]::IsNullOrWhiteSpace($SiteUrl)) { + $ParsedUrl = [System.Uri]$SiteUrl + $SiteSegment = if ($ParsedUrl.AbsolutePath -in @('', '/')) { + $ParsedUrl.Host + } else { + "$($ParsedUrl.Host):$($ParsedUrl.AbsolutePath):" + } + } else { + throw 'SiteId or SiteUrl is required.' + } + + $Lists = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteSegment/lists?`$select=id,displayName,name,webUrl,list" -tenantid $TenantFilter -asapp $true + # documentLibrary covers regular libraries; webPageLibrary is the Site Pages library. + $Results = @($Lists | Where-Object { $_.list.hidden -ne $true -and $_.list.template -in @('documentLibrary', 'webPageLibrary') } | ForEach-Object { + [PSCustomObject]@{ + Id = $_.id + Title = $_.displayName + Template = $_.list.template + WebUrl = $_.webUrl + } + }) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to list document libraries: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteMembers.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteMembers.ps1 index d57571cee6b3f..d1f2627b12d16 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteMembers.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteMembers.ps1 @@ -5,34 +5,159 @@ Function Invoke-ListSiteMembers { .ROLE Sharepoint.Site.Read .DESCRIPTION - Lists members of a specific SharePoint site by site ID, including user display names and email addresses. + Lists the actual membership of a SharePoint site: the users in the site's associated + Owners/Members/Visitors role groups via the SharePoint REST API with certificate + authentication, plus site collection admins. On group-connected (Team) sites the role + groups contain the backing M365 group as a claim; those are expanded through Graph so + the real people are returned. Falls back to the site's hidden User Information List + via Graph when the SharePoint REST API is unavailable (e.g. the tenant does not have + the SharePoint application permission consented yet). #> [CmdletBinding()] param($Request, $TriggerMetadata) - $TenantFilter = $Request.Query.TenantFilter + $TenantFilter = $Request.Query.tenantFilter $SiteId = $Request.Query.SiteId + $SiteUrl = $Request.Query.SiteUrl + $Filter = $Request.Query.Filter + + # A SharePoint user entity is a guest/external identity when either guest flag is set or + # the claims login carries the external-user or spo-guest marker. + function Test-SPGuestUser($User) { + [bool]$User.IsShareByEmailGuestUser -or [bool]$User.IsEmailAuthenticationGuestUser -or $User.LoginName -match '(?i)#ext#|urn%3aspo%3aguest' + } try { - # Find User Information List by template (language independent) - $Lists = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteId/lists?`$select=id,list,system" -tenantid $TenantFilter -AsApp $true - $UIList = $Lists | Where-Object { $_.list.template -eq 'userInformation' } | Select-Object -First 1 - - if ($UIList.id) { - $Items = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteId/lists/$($UIList.id)/items?`$expand=fields" -tenantid $TenantFilter -AsApp $true - } else { - $Items = @() + if (-not $SiteUrl) { + $SiteUrl = (New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/sites/$($SiteId)?`$select=webUrl" -tenantid $TenantFilter -AsApp $true).webUrl + } + + $Members = [System.Collections.Generic.List[object]]::new() + try { + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $RoleGroups = [ordered]@{ + 'Owners' = 'associatedownergroup' + 'Members' = 'associatedmembergroup' + 'Visitors' = 'associatedvisitorgroup' + } + foreach ($Role in $RoleGroups.Keys) { + $Users = New-GraphGetRequest -uri "$BaseUri/web/$($RoleGroups[$Role])/users?`$select=Id,Title,Email,LoginName,PrincipalType,IsShareByEmailGuestUser,IsEmailAuthenticationGuestUser" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + foreach ($User in $Users) { + if ($User.LoginName -match 'federateddirectoryclaimprovider\|([0-9a-fA-F-]{36})(_o)?$') { + # Group-connected site: the role group holds the backing M365 group as + # a claim ('_o' suffix = the group's owners). Expand it through Graph. + $GroupId = $Matches[1] + $GraphSegment = if ($Matches[2]) { 'owners' } else { 'members' } + try { + $GroupMembers = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/groups/$GroupId/$($GraphSegment)?`$select=displayName,mail,userPrincipalName&`$top=999" -tenantid $TenantFilter -AsApp $true + foreach ($GroupMember in $GroupMembers) { + $Members.Add([PSCustomObject]@{ + Title = $GroupMember.displayName + Email = $GroupMember.mail ?? $GroupMember.userPrincipalName + LoginName = $GroupMember.userPrincipalName + UserPrincipalName = $GroupMember.userPrincipalName + Group = $Role + Type = 'User (via M365 Group)' + IsGuest = ($GroupMember.userPrincipalName -match '(?i)#ext#') + IsSiteAdmin = $false + }) + } + } catch { + # Could not expand the group; show the claim entity itself. + $Members.Add([PSCustomObject]@{ + Title = $User.Title + Email = $User.Email + LoginName = $User.LoginName + UserPrincipalName = $null + Group = $Role + Type = 'M365 Group' + IsGuest = $false + IsSiteAdmin = $false + }) + } + } else { + $Type = switch ($User.PrincipalType) { + 1 { 'User' } + 4 { 'Security Group' } + 8 { 'SharePoint Group' } + default { 'Other' } + } + $Members.Add([PSCustomObject]@{ + Title = $User.Title + Email = $User.Email + LoginName = $User.LoginName + UserPrincipalName = if ($User.PrincipalType -eq 1) { ($User.LoginName -split '\|')[-1] } else { $null } + Group = $Role + Type = $Type + IsGuest = (Test-SPGuestUser $User) + IsSiteAdmin = $false + }) + } + } + } + + # Site collection admins: flag them on existing rows, add rows for admins that + # are not in any role group. + $Admins = New-GraphGetRequest -uri "$BaseUri/web/siteusers?`$filter=IsSiteAdmin eq true&`$select=Id,Title,Email,LoginName,PrincipalType,IsShareByEmailGuestUser,IsEmailAuthenticationGuestUser" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + foreach ($Admin in $Admins) { + $Existing = @($Members | Where-Object { $_.LoginName -eq $Admin.LoginName }) + if ($Existing.Count -gt 0) { + $Existing | ForEach-Object { $_.IsSiteAdmin = $true } + } else { + $Members.Add([PSCustomObject]@{ + Title = $Admin.Title + Email = $Admin.Email + LoginName = $Admin.LoginName + UserPrincipalName = if ($Admin.PrincipalType -eq 1) { ($Admin.LoginName -split '\|')[-1] } else { $null } + Group = 'Site Admins' + IsGuest = (Test-SPGuestUser $Admin) + Type = if ($Admin.PrincipalType -eq 1) { 'User' } elseif ($Admin.LoginName -match 'federateddirectoryclaimprovider') { 'M365 Group' } else { 'Other' } + IsSiteAdmin = $true + }) + } + } + } catch { + # SharePoint REST unavailable (e.g. no certificate/consent) - fall back to the + # hidden User Information List via Graph. This lists everyone ever resolved on + # the site rather than actual role group membership. + Write-Information "ListSiteMembers falling back to User Information List: $($_.Exception.Message)" + $Members.Clear() + $Lists = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteId/lists?`$select=id,list,system" -tenantid $TenantFilter -AsApp $true + $UIList = $Lists | Where-Object { $_.list.template -eq 'userInformation' } | Select-Object -First 1 + if ($UIList.id) { + $Items = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/sites/$SiteId/lists/$($UIList.id)/items?`$expand=fields" -tenantid $TenantFilter -AsApp $true + foreach ($Item in $Items) { + $Members.Add([PSCustomObject]@{ + Title = $Item.fields.Title + Email = $Item.fields.EMail + LoginName = $Item.fields.UserName + UserPrincipalName = if ($Item.fields.UserName) { ($Item.fields.UserName -split '\|')[-1] } else { $null } + Group = 'Site Users' + Type = 'User' + IsGuest = ($Item.fields.UserName -match '(?i)#ext#') + IsSiteAdmin = [bool]$Item.fields.IsSiteAdmin + }) + } + } + } + + if ($Filter -eq 'External') { + $Members = @($Members | Where-Object { $_.IsGuest }) } $StatusCode = [HttpStatusCode]::OK - $Body = @($Items) + $Body = @($Members) } catch { $StatusCode = [HttpStatusCode]::Forbidden $Body = Get-NormalizedError -Message $_.Exception.Message } return ([HttpResponseContext]@{ - StatusCode = $StatusCode - Body = @{ 'Results' = $Body } - }) + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSitePermissions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSitePermissions.ps1 new file mode 100644 index 0000000000000..5710dc9d498df --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSitePermissions.ps1 @@ -0,0 +1,103 @@ +function Invoke-ListSitePermissions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists the permissions of a SharePoint scope via the SharePoint REST API with certificate + authentication: the inheritance state plus every role assignment, flattened to one row per + principal and permission level. Supplying ListId targets a document library; omitting it + targets the site root web. Limited Access assignments are returned but flagged as system + managed - SharePoint creates them automatically so a user can traverse to an item they were + given access to, and removing them by hand breaks that navigation. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $SiteUrl = $Request.Query.SiteUrl ?? $Request.Body.SiteUrl + $ListId = $Request.Query.ListId ?? $Request.Body.ListId + + # A SharePoint principal is a guest/external identity when either guest flag is set or the + # claims login carries the external-user or spo-guest marker. + function Test-SPGuestPrincipal($Principal) { + [bool]$Principal.IsShareByEmailGuestUser -or [bool]$Principal.IsEmailAuthenticationGuestUser -or $Principal.LoginName -match '(?i)#ext#|urn%3aspo%3aguest' + } + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + # Scope: a document library, or the site root web when no list was supplied. + $IsLibrary = -not [string]::IsNullOrWhiteSpace($ListId) + if ($IsLibrary) { + $ScopeUri = "$BaseUri/web/lists(guid'$ListId')" + $ListInfo = New-GraphGetRequest -uri "$ScopeUri`?`$select=HasUniqueRoleAssignments,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + $HasUniqueRoleAssignments = [bool]$ListInfo.HasUniqueRoleAssignments + $TargetTitle = $ListInfo.Title + $TargetType = 'Library' + } else { + $ScopeUri = "$BaseUri/web" + $WebInfo = New-GraphGetRequest -uri "$ScopeUri`?`$select=HasUniqueRoleAssignments,Title" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + # A site collection root web always holds its own assignments. + $HasUniqueRoleAssignments = $true + $TargetTitle = $WebInfo.Title + $TargetType = 'Site' + } + + $Assignments = @(New-GraphGetRequest -uri "$ScopeUri/roleassignments?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + + # One row per principal and permission level: SharePoint allows a principal to hold + # several levels on the same scope, and each is removed separately. + $Results = [System.Collections.Generic.List[object]]::new() + foreach ($Assignment in $Assignments) { + $Member = $Assignment.Member + if (-not $Member) { continue } + $PrincipalType = switch ($Member.PrincipalType) { + 1 { 'User' } + 4 { 'Security Group' } + 8 { 'SharePoint Group' } + default { 'Other' } + } + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + $Results.Add([PSCustomObject]@{ + PrincipalId = [string]$Member.Id + Title = $Member.Title + LoginName = $Member.LoginName + Email = $Member.Email + UserPrincipalName = if ($Member.PrincipalType -eq 1 -and $Member.LoginName) { ($Member.LoginName -split '\|')[-1] } else { $null } + PrincipalType = $PrincipalType + IsGuest = (Test-SPGuestPrincipal $Member) + PermissionLevel = $Binding.Name + RoleDefinitionId = [string]$Binding.Id + # RoleTypeKind 1 is Limited Access: created and cleaned up by SharePoint itself. + IsSystemManaged = ($Binding.RoleTypeKind -eq 1) + }) + } + } + + $Body = [PSCustomObject]@{ + HasUniqueRoleAssignments = $HasUniqueRoleAssignments + TargetTitle = $TargetTitle + TargetType = $TargetType + Assignments = @($Results) + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = "Failed to list permissions: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Body -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteProperties.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteProperties.ps1 new file mode 100644 index 0000000000000..0f11bb9f2855b --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteProperties.ps1 @@ -0,0 +1,63 @@ +function Invoke-ListSiteProperties { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Returns a single site's admin-level properties (sharing, lifecycle and version policy) + via the SharePoint admin CSOM API, with enum values translated to friendly names so + the Edit Site form can consume and round-trip them. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + $SiteUrl = $Request.Query.SiteUrl + + # SPO enum value -> friendly name maps (reverse of the maps in Invoke-ExecSetSiteProperties) + $SharingCapabilityNames = @{ 0 = 'Disabled'; 1 = 'ExternalUserSharingOnly'; 2 = 'ExternalUserAndGuestSharing'; 3 = 'ExistingExternalUserSharingOnly' } + $LinkTypeNames = @{ 0 = 'None'; 1 = 'Direct'; 2 = 'Internal'; 3 = 'AnonymousAccess' } + $LinkPermissionNames = @{ 0 = 'None'; 1 = 'View'; 2 = 'Edit' } + $DomainRestrictionNames = @{ 0 = 'None'; 1 = 'AllowList'; 2 = 'BlockList' } + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + $Site = Get-CIPPSPOSite -TenantFilter $TenantFilter -SiteUrl $SiteUrl + + $Body = [PSCustomObject]@{ + Url = $Site.Url + Title = $Site.Title + Template = $Site.Template + # Sharing + SharingCapability = $SharingCapabilityNames[[int]$Site.SharingCapability] ?? $Site.SharingCapability + DefaultSharingLinkType = $LinkTypeNames[[int]$Site.DefaultSharingLinkType] ?? $Site.DefaultSharingLinkType + DefaultLinkPermission = $LinkPermissionNames[[int]$Site.DefaultLinkPermission] ?? $Site.DefaultLinkPermission + SharingDomainRestrictionMode = $DomainRestrictionNames[[int]$Site.SharingDomainRestrictionMode] ?? $Site.SharingDomainRestrictionMode + SharingAllowedDomainList = $Site.SharingAllowedDomainList + SharingBlockedDomainList = $Site.SharingBlockedDomainList + OverrideTenantAnonymousLinkExpirationPolicy = [bool]$Site.OverrideTenantAnonymousLinkExpirationPolicy + AnonymousLinkExpirationInDays = $Site.AnonymousLinkExpirationInDays + # Lifecycle + LockState = $Site.LockState + StorageMaximumLevel = $Site.StorageMaximumLevel + StorageWarningLevel = $Site.StorageWarningLevel + StorageUsage = $Site.StorageUsage + # Version policy + InheritVersionPolicyFromTenant = [bool]$Site.InheritVersionPolicyFromTenant + EnableAutoExpirationVersionTrim = [bool]$Site.EnableAutoExpirationVersionTrim + MajorVersionLimit = $Site.MajorVersionLimit + ExpireVersionsAfterDays = $Site.ExpireVersionsAfterDays + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = "Failed to get site properties for $($SiteUrl): $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRecycleBin.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRecycleBin.ps1 new file mode 100644 index 0000000000000..b0530cb6d2ad8 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRecycleBin.ps1 @@ -0,0 +1,54 @@ +function Invoke-ListSiteRecycleBin { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.SiteRecycleBin.Read + .DESCRIPTION + Lists the contents of a SharePoint site's recycle bin (first and second stage) via the + SharePoint REST API with certificate authentication. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter + $SiteUrl = $Request.Query.SiteUrl + + $ItemTypeNames = @{ 1 = 'File'; 2 = 'File Version'; 3 = 'List Item'; 4 = 'List'; 5 = 'Folder'; 6 = 'Folder'; 7 = 'Attachment'; 8 = 'List Item Version'; 10 = 'Web' } + $ItemStateNames = @{ 1 = 'First Stage'; 2 = 'Second Stage' } + + try { + if (-not $SiteUrl) { throw 'SiteUrl is required.' } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $Items = New-GraphGetRequest -uri "$BaseUri/site/RecycleBin?`$top=500&`$orderby=DeletedDate desc" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true + + $Body = @($Items | ForEach-Object { + [PSCustomObject]@{ + Id = $_.Id + Title = $_.Title + LeafName = $_.LeafName + DirName = $_.DirName + ItemType = $ItemTypeNames[[int]$_.ItemType] ?? $_.ItemType + ItemState = $ItemStateNames[[int]$_.ItemState] ?? $_.ItemState + Size = $_.Size + DeletedByName = $_.DeletedByName + DeletedDate = $_.DeletedDate + } + }) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Body = "Failed to list the recycle bin for $($SiteUrl): $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Body } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRoleDefinitions.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRoleDefinitions.ps1 new file mode 100644 index 0000000000000..f82dec1dddf60 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteRoleDefinitions.ps1 @@ -0,0 +1,57 @@ +function Invoke-ListSiteRoleDefinitions { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Lists the permission levels defined on a SharePoint site via the SharePoint REST API with + certificate authentication. Reading them from the site rather than assuming the five + built-ins means custom permission levels are offered too. Hidden levels and Limited Access + (RoleTypeKind 1, managed by SharePoint itself) are excluded by default because they must + not be handed out manually; pass IncludeUnassignable to get the full list. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $SiteUrl = $Request.Query.SiteUrl ?? $Request.Body.SiteUrl + $IncludeUnassignable = ($Request.Query.IncludeUnassignable ?? $Request.Body.IncludeUnassignable) -eq $true + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + + $SharePointInfo = Get-SharePointAdminLink -Public $false -tenantFilter $TenantFilter + $Scope = "$($SharePointInfo.SharePointUrl)/.default" + $JsonAccept = @{ Accept = 'application/json;odata=nometadata' } + $BaseUri = "$($SiteUrl.TrimEnd('/'))/_api" + + $RoleDefinitions = @(New-GraphGetRequest -uri "$BaseUri/web/roledefinitions?`$select=Id,Name,Description,RoleTypeKind,Hidden,Order" -tenantid $TenantFilter -scope $Scope -extraHeaders $JsonAccept -UseCertificate -AsApp $true) + + $Results = @($RoleDefinitions | + Where-Object { $IncludeUnassignable -or ($_.Hidden -ne $true -and $_.RoleTypeKind -ne 1) } | + Sort-Object -Property Order | + ForEach-Object { + [PSCustomObject]@{ + Id = [string]$_.Id + Name = $_.Name + Description = $_.Description + RoleTypeKind = $_.RoleTypeKind + # Built-in levels carry a RoleTypeKind; custom ones are created as None (0). + IsCustom = ($_.RoleTypeKind -eq 0) + } + }) + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to list permission levels: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteUserAccess.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteUserAccess.ps1 new file mode 100644 index 0000000000000..36c0dbd16f0eb --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListSiteUserAccess.ps1 @@ -0,0 +1,218 @@ +function Invoke-ListSiteUserAccess { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Sharepoint.Site.Read + .DESCRIPTION + Explains how one user can reach a SharePoint site or document library: every route that + grants them access, and the permission level each route carries. This is the effective + access answer that the permission lists cannot give on their own, because those show who + holds a grant rather than who the grant resolves to. + + Routes checked, live: + - Site collection administrator (full control over everything in the site) + - A permission granted straight to the user + - Membership of a SharePoint group that holds a permission, including the Owners, + Members and Visitors groups + - Membership of an Entra security group or Microsoft 365 group that holds a permission, + resolved through transitiveMemberOf so nested groups count + - A tenant-wide claim (Everyone, Everyone except external users, All Users), which every + internal user matches + - Sharing links and direct item shares the user received, read from the + SharePointSharingLinks cache rather than live + + When a library is given and it still inherits, its permissions are the site's, so the + site is evaluated and the result says so. + + Limited Access is reported but flagged, because on its own it grants no ability to open + or list anything - SharePoint adds it so a user can traverse to an item they were given + access to further down. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + $SiteUrl = $Request.Query.SiteUrl ?? $Request.Body.SiteUrl + $ListId = $Request.Query.ListId ?? $Request.Body.ListId + $UserPrincipalName = $Request.Query.UserPrincipalName ?? $Request.Body.UserPrincipalName + + try { + if ([string]::IsNullOrWhiteSpace($SiteUrl)) { throw 'SiteUrl is required.' } + if ([string]::IsNullOrWhiteSpace($UserPrincipalName)) { throw 'UserPrincipalName is required.' } + + # --- Resolve the user and every group they are in, nested groups included --- + $User = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$UserPrincipalName`?`$select=id,displayName,userPrincipalName,mail,userType" -tenantid $TenantFilter -AsApp $true + if (-not $User.id) { throw "User $UserPrincipalName was not found in this tenant." } + $IsGuest = $User.userType -eq 'Guest' -or $User.userPrincipalName -match '(?i)#ext#' + + $GroupIds = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $GroupNameById = @{} + try { + $Memberships = @(New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$($User.id)/transitiveMemberOf?`$select=id,displayName&`$top=999" -tenantid $TenantFilter -AsApp $true) + foreach ($Membership in $Memberships) { + if ($Membership.id) { + [void]$GroupIds.Add([string]$Membership.id) + $GroupNameById[[string]$Membership.id] = $Membership.displayName + } + } + } catch { + Write-Information "Could not read group membership for $UserPrincipalName : $($_.Exception.Message)" + } + + # --- SharePoint scope --- + $SPScope = Resolve-CIPPSharePointPermissionScope -SiteUrl $SiteUrl -ListId $ListId -TenantFilter $TenantFilter + $Inherits = $SPScope.IsLibrary -and -not $SPScope.HasUniqueRoleAssignments + # An inheriting library has no assignments of its own; the site's apply instead. + $AssignmentUri = if ($Inherits) { "$($SPScope.BaseUri)/web/roleassignments" } else { $SPScope.AssignmentUri } + + $Paths = [System.Collections.Generic.List[object]]::new() + + # Matches a role assignment principal against the user, returning how it matched. + function Get-PrincipalMatch { + param($Member, $User, $GroupIds, $GroupNameById) + + $LoginName = [string]$Member.LoginName + + # Tenant-wide claims resolve to every internal user. + if ($LoginName -like 'c:0(.s|true*') { return @{ Route = 'Tenant-wide claim'; Via = 'Everyone (includes external users)' } } + if ($LoginName -like '*spo-grid-all-users*') { return @{ Route = 'Tenant-wide claim'; Via = 'Everyone except external users' } } + if ($LoginName -like 'c:0!.s|windows*') { return @{ Route = 'Tenant-wide claim'; Via = 'All Users' } } + + # A permission granted straight to this person. + if ($Member.PrincipalType -eq 1) { + $MemberUpn = if ($LoginName) { ($LoginName -split '\|')[-1] } else { $null } + if ($MemberUpn -and ($MemberUpn -ieq $User.userPrincipalName -or $MemberUpn -ieq $User.mail)) { + return @{ Route = 'Direct grant'; Via = 'Granted to this user' } + } + return $null + } + + # A directory group holding the permission: the claim carries the group's object id. + if ($LoginName -match '(?i)(?:federateddirectoryclaimprovider|tenant)\|([0-9a-fA-F-]{36})(_o)?') { + $GroupId = $Matches[1] + $OwnersOnly = [bool]$Matches[2] + if ($GroupIds.Contains($GroupId)) { + $GroupLabel = $GroupNameById[$GroupId] ?? $Member.Title ?? $GroupId + $Suffix = if ($OwnersOnly) { ' (owners)' } else { '' } + return @{ Route = 'Directory group'; Via = "Member of $GroupLabel$Suffix" } + } + return $null + } + + return $null + } + + $Assignments = @(New-GraphGetRequest -uri "$AssignmentUri`?`$expand=Member,RoleDefinitionBindings" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true) + + foreach ($Assignment in $Assignments) { + $Member = $Assignment.Member + if (-not $Member) { continue } + + $Match = Get-PrincipalMatch -Member $Member -User $User -GroupIds $GroupIds -GroupNameById $GroupNameById + + # SharePoint groups hold their own membership, so they need expanding to check. + if (-not $Match -and $Member.PrincipalType -eq 8) { + try { + $GroupUsers = @(New-GraphGetRequest -uri "$($SPScope.BaseUri)/web/sitegroups($($Member.Id))/users?`$select=Id,Title,LoginName,PrincipalType" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true) + foreach ($GroupUser in $GroupUsers) { + $Inner = Get-PrincipalMatch -Member $GroupUser -User $User -GroupIds $GroupIds -GroupNameById $GroupNameById + if ($Inner) { + # Report the SharePoint group as the route, noting how they are in it. + $Detail = if ($Inner.Route -eq 'Direct grant') { 'directly a member' } else { $Inner.Via.ToLower() } + $Match = @{ Route = 'SharePoint group'; Via = "Member of $($Member.Title) ($Detail)" } + break + } + } + } catch { + Write-Information "Could not expand SharePoint group $($Member.Title): $($_.Exception.Message)" + } + } + + if (-not $Match) { continue } + + foreach ($Binding in @($Assignment.RoleDefinitionBindings)) { + $Paths.Add([PSCustomObject]@{ + Route = $Match.Route + Via = $Match.Via + PermissionLevel = $Binding.Name + AppliesTo = if ($Inherits) { 'Whole site (this library inherits)' } elseif ($SPScope.IsLibrary) { 'This library only' } else { 'Whole site' } + IsSystemManaged = ($Binding.RoleTypeKind -eq 1) + GrantsRealAccess = ($Binding.RoleTypeKind -ne 1) + }) + } + } + + # --- Site collection administrators bypass all of the above --- + try { + $Admins = @(New-GraphGetRequest -uri "$($SPScope.BaseUri)/web/siteusers?`$filter=IsSiteAdmin eq true&`$select=Id,Title,LoginName,PrincipalType" -tenantid $TenantFilter -scope $SPScope.Scope -extraHeaders $SPScope.Headers -UseCertificate -AsApp $true) + foreach ($Admin in $Admins) { + $Match = Get-PrincipalMatch -Member $Admin -User $User -GroupIds $GroupIds -GroupNameById $GroupNameById + if ($Match) { + $Paths.Add([PSCustomObject]@{ + Route = 'Site collection admin' + Via = if ($Match.Route -eq 'Direct grant') { 'Named as a site collection administrator' } else { $Match.Via } + PermissionLevel = 'Full Control' + AppliesTo = 'Whole site collection' + IsSystemManaged = $false + GrantsRealAccess = $true + }) + } + } + } catch { + Write-Information "Could not read site collection admins: $($_.Exception.Message)" + } + + # --- Sharing links this user received, from the cache --- + $SharingLinksChecked = $false + try { + $CachedLinks = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'SharePointSharingLinks') + $SharingLinksChecked = $CachedLinks.Count -gt 0 + $SiteHost = ([System.Uri]$SiteUrl).AbsoluteUri.TrimEnd('/') + foreach ($Link in $CachedLinks) { + if (-not $Link.siteUrl -or ($Link.siteUrl.TrimEnd('/') -ne $SiteHost)) { continue } + $Recipients = @($Link.sharedWith) + $IsRecipient = $Recipients | Where-Object { + $_ -and ($_ -ieq $User.userPrincipalName -or $_ -ieq $User.mail) + } + if (-not $IsRecipient) { continue } + $Paths.Add([PSCustomObject]@{ + Route = 'Sharing link' + Via = "Shared '$($Link.fileName)' with them$(if ($Link.driveName) { " in $($Link.driveName)" })" + PermissionLevel = (@($Link.roles) -join ', ') + AppliesTo = 'One item' + IsSystemManaged = $false + GrantsRealAccess = $true + }) + } + } catch { + Write-Information "Could not check sharing links: $($_.Exception.Message)" + } + + $RealPaths = @($Paths | Where-Object { $_.GrantsRealAccess }) + $Results = [PSCustomObject]@{ + UserPrincipalName = $User.userPrincipalName + DisplayName = $User.displayName + IsGuest = $IsGuest + TargetType = if ($SPScope.IsLibrary) { 'Library' } else { 'Site' } + TargetLabel = $SPScope.TargetLabel + LibraryInherits = $Inherits + HasAccess = $RealPaths.Count -gt 0 + AccessPathCount = $RealPaths.Count + SharingLinksChecked = $SharingLinksChecked + Paths = @($Paths) + } + $StatusCode = [HttpStatusCode]::OK + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Results = "Failed to check access: $($ErrorMessage.NormalizedError)" + Write-LogMessage -Headers $Request.Headers -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage + $StatusCode = [HttpStatusCode]::BadRequest + } + + return ([HttpResponseContext]@{ + StatusCode = $StatusCode + Body = @{ 'Results' = $Results } + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 index a348bf6a9ac80..318af9a8e8b1a 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsLisLocation.ps1 @@ -11,7 +11,43 @@ Function Invoke-ListTeamsLisLocation { param($Request, $TriggerMetadata) $TenantFilter = $Request.Query.TenantFilter try { - $EmergencyLocations = New-TeamsRequest -TenantFilter $TenantFilter -Cmdlet 'Get-CsOnlineLisLocation' + # Skype.Ncs/locations returns a bare array; the tenant comes from the token, not the path. + # Property names are mapped to the shape Get-CsOnlineLisLocation returned so the UI contract + # (Description / LocationId) is unchanged. + $Locations = New-TeamsRequestV2 -TenantFilter $TenantFilter -Path 'Skype.Ncs/locations' + $EmergencyLocations = foreach ($Location in @($Locations)) { + [PSCustomObject]@{ + LocationId = $Location.id + CivicAddressId = $Location.civicAddressId + TenantId = $Location.tenantId + Description = $Location.description + Location = $Location.location + CompanyName = $Location.companyName + CompanyTaxId = $Location.companyId + PartnerId = $Location.partnerId + HouseNumber = $Location.houseNumber + HouseNumberSuffix = $Location.houseNumberSuffix + PreDirectional = $Location.preDirectional + StreetName = $Location.streetName + StreetSuffix = $Location.streetSuffix + PostDirectional = $Location.postDirectional + City = $Location.cityOrTown + CityAlias = $Location.cityOrTownAlias + StateOrProvince = $Location.stateOrProvince + CountyOrDistrict = $Location.countyOrDistrict + PostalCode = $Location.postalOrZipCode + CountryOrRegion = $Location.country + Latitude = $Location.latitude + Longitude = $Location.longitude + Confidence = $Location.confidence + Elin = $Location.elin + IsDefault = $Location.isDefault + ValidationStatus = $Location.validationStatus + # The service returns -1 for these rather than a real count. + NumberOfVoiceUsers = $Location.numberOfVoiceUsers + NumberOfTelephoneNumbers = $Location.numberOfTelephoneNumbers + } + } $StatusCode = [HttpStatusCode]::OK } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 index a52f51d00d543..ea94c42912585 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Teams-Sharepoint/Invoke-ListTeamsVoice.ps1 @@ -29,13 +29,19 @@ function Invoke-ListTeamsVoice { $TenantId = (Get-Tenants -TenantFilter $TenantFilter).customerId $Users = (New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$top=999&`$select=id,userPrincipalName,displayName" -tenantid $TenantFilter) + # The number list only carries LocationId GUIDs; resolve them to a readable label. + $LocationLookup = Get-CippTeamsLocationLookup -TenantFilter $TenantFilter $Skip = 0 $GraphRequest = do { Write-Host "Getting page $Skip" - $Results = New-TeamsAPIGetRequest -uri "https://api.interfaces.records.teams.microsoft.com/Skype.TelephoneNumberMgmt/Tenants/$($TenantId)/telephone-numbers?skip=$($Skip)&locale=en-US&top=999" -tenantid $TenantFilter + $Results = New-TeamsRequestV2 -TenantFilter $TenantFilter -Path "Skype.TelephoneNumberMgmt/Tenants/$TenantId/telephone-numbers" ` + -QueryParameters @{ skip = $Skip; locale = 'en-US'; top = 999 } ` + -AdditionalHeaders @{ 'x-ms-tnm-applicationid' = '045268c0-445e-4ac1-9157-d58f67b167d9' } #Write-Information ($Results | ConvertTo-Json -Depth 10) $data = $Results.TelephoneNumbers | ForEach-Object { - $CompleteRequest = $_ | Select-Object *, @{Name = 'AssignedTo'; Expression = { $users | Where-Object -Property id -EQ $_.TargetId } } + $CompleteRequest = $_ | Select-Object *, + @{Name = 'AssignedTo'; Expression = { $users | Where-Object -Property id -EQ $_.TargetId } }, + @{Name = 'EmergencyLocation'; Expression = { if ($_.LocationId) { $LocationLookup[[string]$_.LocationId] } } } if ($CompleteRequest.AcquisitionDate) { $CompleteRequest.AcquisitionDate = $_.AcquisitionDate -split 'T' | Select-Object -First 1 } else { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddScriptedAlert.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddScriptedAlert.ps1 index 6068ac1e50bcf..7efff1a444d2d 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddScriptedAlert.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-AddScriptedAlert.ps1 @@ -28,15 +28,19 @@ function Invoke-AddScriptedAlert { $AllTenantsList = Get-Tenants -IncludeErrors $computedExcluded = @($AllTenantsList.defaultDomainName | Where-Object { $_ -notin $targetDomains }) - $existingExcluded = @() + $existingEntries = @() if ($Request.Body.PSObject.Properties['excludedTenants'] -and $Request.Body.excludedTenants) { - $existingExcluded = @($Request.Body.excludedTenants | ForEach-Object { $_.value ?? $_ }) + $existingEntries = @($Request.Body.excludedTenants) } + # Keep user-picked groups as typed objects so Add-CIPPScheduledTask stores them + # for runtime expansion instead of flattening them into the domain list + $excludedGroupEntries = @($existingEntries | Where-Object { $_.type -eq 'Group' }) + $existingExcluded = @($existingEntries | Where-Object { $_.type -ne 'Group' } | ForEach-Object { $_.value ?? $_ }) $mergedExcluded = @($existingExcluded + $computedExcluded) | Where-Object { $_ } | Select-Object -Unique $excludedValue = @($mergedExcluded | ForEach-Object { [PSCustomObject]@{ value = $_; label = $_ } - }) + }) + $excludedGroupEntries $Request.Body | Add-Member -MemberType NoteProperty -Name 'excludedTenants' -Value $excludedValue -Force } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 index 56cc814a95fbc..7956b8e2902c3 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ExecAuditLogSearch.ps1 @@ -50,6 +50,11 @@ function Invoke-ExecAuditLogSearch { Add-CIPPAzDataTableEntity @Table -Entity $Entity -Force | Out-Null + # Bridge into the V2 AuditLogCoverage ledger so the pipeline picks it up automatically + # (re-queuing resets it to State 'Created' to reprocess). + $ManualStatus = if ($Search) { [string]$Search.status } else { '' } + Add-CippAuditLogCoverageManualEntry -TenantFilter $TenantFilter -SearchId $SearchId -StartTime $Entity.StartTime -EndTime $Entity.EndTime -SearchStatus $ManualStatus + $DisplayName = $Entity.DisplayName Write-LogMessage -headers $Headers -API $APIName -message "Queued search for processing: $($Search.displayName)" -Sev 'Info' -tenant $TenantFilter diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 index 21ecc2dd632ec..35ec64a84b964 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAlertsQueue.ps1 @@ -89,6 +89,14 @@ function Invoke-ListAlertsQueue { } else { $ExcludedTenants = @() } + # Excluded tenant groups are stored separately as JSON — surface them as objects so the + # frontend renders a single named chip and can round-trip the group on edit + if ($Task.excludedTenantGroups) { + $ExcludedGroups = @($Task.excludedTenantGroups | ConvertFrom-Json -ErrorAction SilentlyContinue) + if ($ExcludedGroups) { + $ExcludedTenants = @($ExcludedTenants + $ExcludedGroups) + } + } # Handle tenant display information for alerts $TenantsForDisplay = @() diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogCoverage.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogCoverage.ps1 new file mode 100644 index 0000000000000..2944d6810ae6b --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Alerts/Invoke-ListAuditLogCoverage.ps1 @@ -0,0 +1,135 @@ +function Invoke-ListAuditLogCoverage { + <# + .FUNCTIONALITY + Entrypoint,AnyTenant + .ROLE + Tenant.Alert.Read + .DESCRIPTION + Lists the V2 audit-log coverage ledger (AuditLogCoverage) - one row per tenant + 60-minute + search window with its state (Planned / Created / Downloaded / Retry / DeadLetter / Skipped), + record count, attempts and last error. Honours the tenant selector (a specific tenant or + AllTenants) and CIPP tenant access control. Accepts the same date filters as the Saved Logs + view: RelativeTime (e.g. 48h, 7d) or StartDate/EndDate. Defaults to the last 48 hours. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter + + # --- Date range (mirrors Invoke-ListAuditLogs) --- + $RelativeTime = $Request.Query.RelativeTime ?? $Request.Body.RelativeTime + $StartDate = $Request.Query.StartDate ?? $Request.Body.StartDate + $EndDate = $Request.Query.EndDate ?? $Request.Body.EndDate + + $EndUtc = (Get-Date).ToUniversalTime() + $StartUtc = $EndUtc.AddHours(-48) + + if (-not $RelativeTime -and -not $StartDate -and -not $EndDate) { + $RelativeTime = '48h' + } + + if ($RelativeTime -and $RelativeTime -match '(\d+)([dhm])') { + $Interval = [int]$Matches[1] + switch ($Matches[2]) { + 'd' { $StartUtc = $EndUtc.AddDays(-$Interval) } + 'h' { $StartUtc = $EndUtc.AddHours(-$Interval) } + 'm' { $StartUtc = $EndUtc.AddMinutes(-$Interval) } + } + } elseif ($StartDate) { + if ([string]$StartDate -match '^\d+$') { + $StartUtc = [DateTimeOffset]::FromUnixTimeSeconds([int64]$StartDate).UtcDateTime + } else { + try { $StartUtc = ([datetimeoffset]$StartDate).UtcDateTime } catch {} + } + if ($EndDate) { + if ([string]$EndDate -match '^\d+$') { + $EndUtc = [DateTimeOffset]::FromUnixTimeSeconds([int64]$EndDate).UtcDateTime + } else { + try { $EndUtc = ([datetimeoffset]$EndDate).UtcDateTime } catch {} + } + } + } + + $AllowedTenants = Test-CIPPAccess -Request $Request -TenantList + + # When access is scoped, resolve the caller's allowed tenants to both domain + id for matching. + $AllowedDomains = $null + $AllowedIds = $null + if ($AllowedTenants -notcontains 'AllTenants') { + $TenantList = Get-Tenants -IncludeErrors | Where-Object { $_.customerId -in $AllowedTenants } + $AllowedDomains = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + $AllowedIds = [System.Collections.Generic.HashSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) + foreach ($Tenant in $TenantList) { + if ($Tenant.defaultDomainName) { [void]$AllowedDomains.Add([string]$Tenant.defaultDomainName) } + if ($Tenant.customerId) { [void]$AllowedIds.Add([string]$Tenant.customerId) } + } + } + + function ConvertTo-Utc { + param($Value) + if (-not $Value) { return $null } + try { return ([datetimeoffset]$Value).UtcDateTime } catch { return $null } + } + + $Table = Get-CIPPTable -TableName 'AuditLogCoverage' + $Rows = Get-CIPPAzDataTableEntity @Table + + $Results = foreach ($Row in $Rows) { + $WindowStart = ConvertTo-Utc $Row.WindowStart + # Date range filter on the window start + if ($WindowStart) { + if ($WindowStart -lt $StartUtc -or $WindowStart -gt $EndUtc) { continue } + } + + # Tenant selector filter (match on default domain or customer id) + if ($TenantFilter -and $TenantFilter -ne 'AllTenants') { + if (($Row.PartitionKey -ne $TenantFilter) -and ([string]$Row.TenantId -ne [string]$TenantFilter)) { continue } + } + + # Access control when not AllTenants + if ($AllowedTenants -notcontains 'AllTenants') { + if (-not ($AllowedDomains.Contains([string]$Row.PartitionKey) -or $AllowedIds.Contains([string]$Row.TenantId))) { continue } + } + + [PSCustomObject]@{ + Tenant = $Row.PartitionKey + TenantId = $Row.TenantId + Type = if ($Row.Type) { $Row.Type } elseif ($Row.RowKey -like 'RECON-*') { 'Reconciliation' } else { 'Window' } + WindowStart = $WindowStart + WindowEnd = ConvertTo-Utc $Row.WindowEnd + State = $Row.State + RecordCount = if ($null -ne $Row.RecordCount) { [int]$Row.RecordCount } else { $null } + Attempts = if ($null -ne $Row.Attempts) { [int]$Row.Attempts } else { 0 } + RetryCount = if ($null -ne $Row.RetryCount) { [int]$Row.RetryCount } else { 0 } + ThrottleCount = if ($null -ne $Row.ThrottleCount) { [int]$Row.ThrottleCount } else { 0 } + SearchId = $Row.SearchId + SearchStatus = $Row.SearchStatus + NextAttemptUtc = ConvertTo-Utc $Row.NextAttemptUtc + LastError = $Row.LastError + LastErrorUtc = ConvertTo-Utc $Row.LastErrorUtc + LastPolledUtc = ConvertTo-Utc $Row.LastPolledUtc + CreatedUtc = ConvertTo-Utc $Row.CreatedUtc + DownloadedUtc = ConvertTo-Utc $Row.DownloadedUtc + ProcessedUtc = ConvertTo-Utc $Row.ProcessedUtc + MatchedCount = if ($null -ne $Row.MatchedCount) { [int]$Row.MatchedCount } else { $null } + LastUpdated = ConvertTo-Utc $Row.Timestamp + } + } + + $Results = @($Results | Sort-Object -Property @{ Expression = 'Tenant' }, @{ Expression = 'WindowStart'; Descending = $true }) + + $Body = @{ + Results = @($Results) + Metadata = @{ + TenantFilter = $TenantFilter + StartDate = $StartUtc.ToString('o') + EndDate = $EndUtc.ToString('o') + Total = $Results.Count + } + } | ConvertTo-Json -Depth 10 -Compress + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = $Body + }) +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 index 64de2982c3416..6436c66157592 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecApplication.ps1 @@ -62,7 +62,8 @@ function Invoke-ExecApplication { } if ($Request.Body) { - $PostParams.Body = $Request.Body.Payload | ConvertTo-Json -Compress + # Depth 10 so nested payloads (e.g. web/spa/publicClient redirectUris and implicitGrantSettings) aren't truncated. + $PostParams.Body = $Request.Body.Payload | ConvertTo-Json -Depth 10 -Compress } $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 index 78945aa34b2a2..c23bb61c7c2ce 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecCreateAppTemplate.ps1 @@ -34,12 +34,12 @@ function Invoke-ExecCreateAppTemplate { [PSCustomObject]@{ id = 'app' method = 'GET' - url = "/applications(appId='$AppId')?`$select=id,appId,displayName,requiredResourceAccess" + url = "/applications(appId='$AppId')?`$select=id,appId,displayName,signInAudience,requiredResourceAccess" } [PSCustomObject]@{ id = 'splist' method = 'GET' - url = '/servicePrincipals?$top=999&$select=id,appId,displayName' + url = '/servicePrincipals?$top=999&$select=id,appId,displayName,signInAudience' } ) @@ -52,6 +52,20 @@ function Invoke-ExecCreateAppTemplate { # Find the specific service principal in the list $SPResult = $TenantInfo | Where-Object { $_.appId -eq $AppId } | Select-Object -First 1 + # Determine the source app's sign-in audience so we only build Enterprise App + # templates for genuinely multi-tenant apps. A single-tenant app (AzureADMyOrg) + # cannot be deployed via an appId-based service principal, and copying it to the + # partner tenant as multi-tenant produces a template that fails to deploy. Those + # apps must use a Manifest (single-tenant) template instead. + $MultiTenantAudiences = @('AzureADMultipleOrgs', 'AzureADandPersonalMicrosoftAccount') + $SignInAudience = $AppResult.body.signInAudience + if ([string]::IsNullOrWhiteSpace($SignInAudience)) { + $SignInAudience = $SPResult.signInAudience + } + if (-not [string]::IsNullOrWhiteSpace($SignInAudience) -and $SignInAudience -notin $MultiTenantAudiences) { + throw "Application '$DisplayName' is single-tenant (signInAudience '$SignInAudience') and cannot be used as an Enterprise App template. Create a Manifest (single-tenant) template for this app instead." + } + # Get the app details based on type if ($Type -eq 'servicePrincipal') { if (-not $SPResult) { @@ -222,6 +236,17 @@ function Invoke-ExecCreateAppTemplate { $PermissionSetId = $null $PermissionSetName = "$DisplayName (Auto-created)" + # The service principal fallback above emits a separate entry for delegated access + # (oauth2PermissionGrants) and application access (appRoleAssignments), so a resource that has + # both appears twice. $CIPPPermissions is keyed by resourceAppId, so without merging here the + # second entry overwrites the first and one of the two permission types is silently discarded. + $Permissions = @($Permissions | Group-Object -Property resourceAppId | ForEach-Object { + [PSCustomObject]@{ + resourceAppId = $_.Name + resourceAccess = @($_.Group.resourceAccess) + } + }) + if ($Permissions -and $Permissions.Count -gt 0) { # Build bulk requests to get all service principals efficiently using object IDs from cached list $BulkRequests = [System.Collections.Generic.List[object]]::new() @@ -320,9 +345,11 @@ function Invoke-ExecCreateAppTemplate { } } + # A resource can carry several oauth2PermissionGrants rows (an AllPrincipals grant plus + # per-user grants), which repeats the same scope once merged, so dedupe on the claim value. $CIPPPermissions[$ResourceAppId] = [PSCustomObject]@{ - applicationPermissions = @($AppPerms) - delegatedPermissions = @($DelegatedPerms) + applicationPermissions = @($AppPerms | Sort-Object -Property value -Unique) + delegatedPermissions = @($DelegatedPerms | Sort-Object -Property value -Unique) } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecManageAppCredentials.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecManageAppCredentials.ps1 index 87178d788e332..5715084610646 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecManageAppCredentials.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecManageAppCredentials.ps1 @@ -8,6 +8,9 @@ function Invoke-ExecManageAppCredentials { [CmdletBinding()] param($Request, $TriggerMetadata) + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter $Action = $Request.Body.Action $AppType = $Request.Body.AppType # applications | servicePrincipals @@ -15,27 +18,135 @@ function Invoke-ExecManageAppCredentials { $KeyId = $Request.Body.KeyId $AppId = $Request.Body.AppId $Id = $Request.Body.Id + $DisplayName = $Request.Body.DisplayName + $EndDateTime = $Request.Body.EndDateTime + $ExpiryMonths = $Request.Body.ExpiryMonths.value ?? $Request.Body.ExpiryMonths + $ExpiryDate = $Request.Body.ExpiryDate + $AppRef = $Id ?? $AppId $IdPath = if ($Id) { "/$Id" } else { "(appId='$AppId')" } $Uri = "https://graph.microsoft.com/beta/$AppType$IdPath" + # Max credential end date allowed by the tenant default app management policy's passwordLifetime + # restriction, or $null when not enforced/readable. Custom per-app policies aren't read here. + function Get-PasswordPolicyMaxEnd { + param([datetime]$From) + try { + $Policy = New-GraphGetRequest -uri 'https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy' -tenantid $TenantFilter -AsApp $true + $Lifetime = $Policy.applicationRestrictions.passwordCredentials | Where-Object { $_.restrictionType -eq 'passwordLifetime' } + if ($Lifetime -and -not ($Lifetime.state -eq 'disabled' -or $null -eq $Lifetime.state) -and $Lifetime.maxLifetime) { + return $From.Add([System.Xml.XmlConvert]::ToTimeSpan($Lifetime.maxLifetime)) + } + } catch { + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Could not read app management policy for expiry clamping: $($_.Exception.Message)" -sev Debug + } + return $null + } + try { $Results = switch ($Action) { 'Remove' { if ($CredentialType -eq 'password') { $null = New-GraphPOSTRequest -Uri "$Uri/removePassword" -Body (@{ keyId = $KeyId } | ConvertTo-Json) -tenantid $TenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Removed password credential $KeyId from $AppType $AppRef" -sev Info @{ resultText = "Successfully removed password credential $KeyId"; state = 'success' } } else { # Certificates can't use removeKey without a proof JWT, so PATCH the array instead $Current = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter $Updated = @($Current.keyCredentials | Where-Object { $_.keyId -ne $KeyId }) $null = New-GraphPOSTRequest -Uri $Uri -Type 'PATCH' -Body (@{ keyCredentials = $Updated } | ConvertTo-Json -Depth 10) -tenantid $TenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Removed key credential $KeyId from $AppType $AppRef" -sev Info @{ resultText = "Successfully removed key credential $KeyId"; state = 'success' } } } 'Add' { - # TODO: implement credential addition - @{ resultText = 'Add not yet implemented'; state = 'info' } + # Only client secret (password) addition is implemented here. Adding a certificate means + # PATCHing keyCredentials with an uploaded public-key cert - not built yet; use Entra. + if ($CredentialType -ne 'password') { + @{ resultText = 'Adding certificate credentials is not supported here yet. Upload the certificate in Entra instead.'; state = 'error' } + } else { + $PasswordCredential = @{ + displayName = if ([string]::IsNullOrWhiteSpace($DisplayName)) { 'CIPP-Generated Secret' } else { $DisplayName } + } + + $Now = (Get-Date).ToUniversalTime() + if ($EndDateTime) { + $RequestedEnd = ([System.DateTimeOffset]$EndDateTime).UtcDateTime + } elseif ($ExpiryDate) { + $RequestedEnd = [System.DateTimeOffset]::FromUnixTimeSeconds([long]$ExpiryDate).UtcDateTime + } else { + $Months = if ($ExpiryMonths -as [int]) { [int]$ExpiryMonths } else { 12 } + $RequestedEnd = $Now.AddMonths($Months) + } + + # Clamp the expiry to the tenant policy maximum so the add isn't rejected outright. + $ClampNote = '' + $MaxAllowedEnd = Get-PasswordPolicyMaxEnd -From $Now + if ($MaxAllowedEnd -and $RequestedEnd -gt $MaxAllowedEnd) { + $RequestedEnd = $MaxAllowedEnd + $ClampNote = " Expiry was reduced to the tenant policy maximum of $([math]::Round(($MaxAllowedEnd - $Now).TotalDays)) day(s)." + } + + $PasswordCredential.endDateTime = $RequestedEnd.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + + $NewSecret = New-GraphPOSTRequest -Uri "$Uri/addPassword" -Body (@{ passwordCredential = $PasswordCredential } | ConvertTo-Json -Depth 10) -tenantid $TenantFilter + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Added password credential '$($PasswordCredential.displayName)' (keyId $($NewSecret.keyId)) to $AppType $AppRef" -sev Info + @{ + resultText = "Client secret '$($PasswordCredential.displayName)' created for the app registration. Use the Copy to Clipboard button to retrieve the secret.$ClampNote" + copyField = $NewSecret.secretText + state = 'success' + } + } + } + 'Rotate' { + # Rotate a client secret: add a replacement with the same display name, then remove the + # original. Add first so a failure leaves the existing secret intact. + if ($CredentialType -ne 'password') { + @{ resultText = 'Rotation is only supported for client secrets.'; state = 'error' } + } elseif (-not $KeyId) { + @{ resultText = 'KeyId is required to rotate a secret.'; state = 'error' } + } else { + $App = New-GraphGetRequest -Uri $Uri -tenantid $TenantFilter + $OldCred = $App.passwordCredentials | Where-Object { $_.keyId -eq $KeyId } + if (-not $OldCred) { + @{ resultText = "Secret $KeyId was not found on this application."; state = 'error' } + } else { + $Name = if ([string]::IsNullOrWhiteSpace($OldCred.displayName)) { 'CIPP-Generated Secret' } else { $OldCred.displayName } + + $Now = (Get-Date).ToUniversalTime() + $RequestedEnd = $Now.AddMonths(12) + $ClampNote = '' + $MaxAllowedEnd = Get-PasswordPolicyMaxEnd -From $Now + if ($MaxAllowedEnd -and $RequestedEnd -gt $MaxAllowedEnd) { + $RequestedEnd = $MaxAllowedEnd + $ClampNote = " New secret expiry was set to the tenant policy maximum of $([math]::Round(($MaxAllowedEnd - $Now).TotalDays)) day(s)." + } + + $NewCredential = @{ + displayName = $Name + endDateTime = $RequestedEnd.ToString('yyyy-MM-ddTHH:mm:ss.fffZ') + } + $NewSecret = New-GraphPOSTRequest -Uri "$Uri/addPassword" -Body (@{ passwordCredential = $NewCredential } | ConvertTo-Json -Depth 10) -tenantid $TenantFilter + + # Remove the old secret; if that fails, keep the new one and tell the caller. + $RemoveNote = '' + try { + $null = New-GraphPOSTRequest -Uri "$Uri/removePassword" -Body (@{ keyId = $KeyId } | ConvertTo-Json) -tenantid $TenantFilter + } catch { + $RemoveNote = ' The new secret was created, but the old one could not be removed - remove it manually.' + } + + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Rotated password credential '$Name' on $AppType $AppRef (old keyId $KeyId, new keyId $($NewSecret.keyId))" -sev Info + @{ + resultText = "Secret '$Name' rotated. Use the Copy to Clipboard button to retrieve the new secret.$ClampNote$RemoveNote" + copyField = $NewSecret.secretText + state = 'success' + } + } + } + } + default { + @{ resultText = "Unknown action: $Action"; state = 'error' } } } @@ -44,9 +155,11 @@ function Invoke-ExecManageAppCredentials { Body = @{ Results = $Results } }) } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API $APIName -tenant $TenantFilter -headers $Headers -message "Failed to $Action credential: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::InternalServerError - Body = @{ Results = @{ resultText = "Failed to $Action credential: $($_.Exception.Message)"; state = 'error' } } + Body = @{ Results = @{ resultText = "Failed to $Action credential: $($ErrorMessage.NormalizedError)"; state = 'error' } } }) } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecRegistrationCampaign.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecRegistrationCampaign.ps1 new file mode 100644 index 0000000000000..ce03c60af94d2 --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-ExecRegistrationCampaign.ps1 @@ -0,0 +1,80 @@ +function Invoke-ExecRegistrationCampaign { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Administration.ReadWrite + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $APIName = $Request.Params.CIPPEndpoint + $Headers = $Request.Headers + $TenantFilter = $Request.Body.tenantFilter.value ?? $Request.Body.tenantFilter + + if (-not $TenantFilter) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'Error: tenantFilter is required' } + } + } + + if ($null -ne $Request.Body.snoozeDurationInDays -and ([int]$Request.Body.snoozeDurationInDays -lt 0 -or [int]$Request.Body.snoozeDurationInDays -gt 14)) { + return [HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = 'Error: snoozeDurationInDays must be between 0 and 14' } + } + } + + try { + # Build include/exclude target lists; $null means "keep what is currently configured" + $IncludeSpecified = ($null -ne $Request.Body.includeAllUsers) -or ($null -ne $Request.Body.includeGroups) -or ($null -ne $Request.Body.includeUsers) + $IncludeTargets = if ($IncludeSpecified) { + if ([bool]$Request.Body.includeAllUsers) { + @(@{ id = 'all_users'; targetType = 'group' }) + } else { + $Targets = [System.Collections.Generic.List[hashtable]]::new() + foreach ($GroupId in @($Request.Body.includeGroups)) { + if ($GroupId) { $Targets.Add(@{ id = "$GroupId"; targetType = 'group' }) } + } + foreach ($UserId in @($Request.Body.includeUsers)) { + if ($UserId) { $Targets.Add(@{ id = "$UserId"; targetType = 'user' }) } + } + @($Targets) + } + } else { $null } + + $ExcludeSpecified = ($null -ne $Request.Body.excludeGroups) -or ($null -ne $Request.Body.excludeUsers) + $ExcludeTargets = if ($ExcludeSpecified) { + $Targets = [System.Collections.Generic.List[hashtable]]::new() + foreach ($GroupId in @($Request.Body.excludeGroups)) { + if ($GroupId) { $Targets.Add(@{ id = "$GroupId"; targetType = 'group' }) } + } + foreach ($UserId in @($Request.Body.excludeUsers)) { + if ($UserId) { $Targets.Add(@{ id = "$UserId"; targetType = 'user' }) } + } + @($Targets) + } else { $null } + + $CampaignParams = @{ + Tenant = $TenantFilter + State = $Request.Body.state.value ?? $Request.Body.state + TargetedAuthenticationMethod = $Request.Body.targetedAuthenticationMethod.value ?? $Request.Body.targetedAuthenticationMethod + SnoozeDurationInDays = $Request.Body.snoozeDurationInDays + EnforceRegistrationAfterAllowedSnoozes = $Request.Body.enforceRegistrationAfterAllowedSnoozes + IncludeTargets = $IncludeTargets + ExcludeTargets = $ExcludeTargets + APIName = $APIName + Headers = $Headers + } + $Result = Set-CIPPRegistrationCampaign @CampaignParams + } catch { + $Result = $_.Exception.Message + $StatusCode = [HttpStatusCode]::InternalServerError + } + + return [HttpResponseContext]@{ + StatusCode = $StatusCode ?? [HttpStatusCode]::OK + Body = @{ Results = $Result } + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 index 71b5adf5984dc..d179814f4f3d0 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Invoke-SetAuthMethod.ps1 @@ -28,6 +28,20 @@ function Invoke-SetAuthMethod { if ($GroupIds) { $Params.GroupIds = @($GroupIds) } + # Forward any method-specific sub-settings present in the body (omitted ones keep current/default values) + $OptionalSettings = @( + 'TAPisUsableOnce', 'TAPMinimumLifetime', 'TAPMaximumLifetime', 'TAPDefaultLifeTime', 'TAPDefaultLength' + 'MicrosoftAuthenticatorSoftwareOathEnabled', 'MicrosoftAuthenticatorDisplayAppInfo', 'MicrosoftAuthenticatorDisplayLocation', 'MicrosoftAuthenticatorCompanionApp' + 'EmailAllowExternalIdToUseEmailOtp', 'EmailExcludeGroupIds' + 'QRCodeLifetimeInDays', 'QRCodePinLength' + 'FIDO2AttestationEnforced', 'FIDO2SelfServiceRegistration', 'VoiceIsOfficePhoneAllowed' + 'SmsIsUsableForSignIn' + ) + foreach ($Setting in $OptionalSettings) { + if ($null -ne $Request.Body.$Setting) { + $Params.$Setting = $Request.Body.$Setting + } + } $Result = Set-CIPPAuthenticationPolicy @Params $StatusCode = [HttpStatusCode]::OK } catch { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 index bc9e541f0dd0a..78b5577f9ce73 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Administration/Tenant/Invoke-ListTenants.ps1 @@ -145,7 +145,14 @@ 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 = { + # Unlike the other portals, SharePoint's host name cannot be derived from the + # tenant - it has to be resolved through Graph. Hand out the cached URL when we + # have one so the link behaves like every other portal, and fall back to the + # endpoint that resolves (and caches) it on first use. + if ($_.SharepointAdminUrl) { $_.SharepointAdminUrl } else { "/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)" } } } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 index f8936e91f4d1a..6561156b262df 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ExecCAExclusion.ps1 @@ -35,11 +35,17 @@ function Invoke-ExecCAExclusion { throw "Policy with ID $PolicyId not found in tenant $TenantFilter." } - $VacationGroupName = "Vacation Exclusion - $($Policy.displayName)" - $escapedGroupName = $VacationGroupName -replace "'", "''" - $groupFilter = "displayName eq '$escapedGroupName' and mailEnabled eq false and securityEnabled eq true" - $encodedGroupFilter = [System.Uri]::EscapeDataString($groupFilter) - $VacationGroups = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$filter=$encodedGroupFilter" -tenantid $TenantFilter) + $GroupNamePrefix = 'Vacation Exclusion - ' + $VacationGroupName = "$GroupNamePrefix$($Policy.displayName)" + if ($VacationGroupName.Length -gt 120) { + $PolicyIdSuffix = " [$($Policy.id.Substring(0, 8))]" + $MaxNameLength = 120 - $GroupNamePrefix.Length - $PolicyIdSuffix.Length + $VacationGroupName = '{0}{1}{2}' -f $GroupNamePrefix, $Policy.displayName.Substring(0, $MaxNameLength).TrimEnd(), $PolicyIdSuffix + } + + $EscapedGroupName = $VacationGroupName -replace "'", "''" + $GroupFilter = [System.Uri]::EscapeDataString("displayName eq '$EscapedGroupName' and mailEnabled eq false and securityEnabled eq true") + $VacationGroups = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$count=true&`$filter=$GroupFilter" -tenantid $TenantFilter -ComplexFilter) $DuplicateGroupWarning = $null if ($VacationGroups.Count -eq 0) { @@ -64,7 +70,7 @@ function Invoke-ExecCAExclusion { } 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 + Set-CIPPCAExclusion -TenantFilter $TenantFilter -ExclusionType 'Add' -PolicyId $PolicyId -Groups @{ value = @($GroupId); addedFields = @{ displayName = @($VacationGroupName) } } -Headers $Headers } $PolicyName = $Policy.displayName @@ -133,6 +139,55 @@ function Invoke-ExecCAExclusion { Add-CIPPScheduledTask -Task $AuditRemoveTask -hidden $true } $Results = @("Successfully added vacation mode schedule for $Username on policy '$PolicyName'.") + + # Optional: temporary travel policy that only allows sign-ins from the travel destination + $TravelCountries = @($Request.Body.TravelCountries.value | Where-Object { $_ }) + if ($Request.Body.CreateTravelPolicy -eq $true -and $TravelCountries.Count -gt 0) { + $TravelUsers = @($Users.addedFields.userPrincipalName ?? $Users.value ?? $Users ?? $UserID) + $StartLabel = [DateTimeOffset]::FromUnixTimeSeconds([int64]$StartDate).ToString('yyyy-MM-dd') + $EndLabel = [DateTimeOffset]::FromUnixTimeSeconds([int64]$EndDate).ToString('yyyy-MM-dd') + $UserLabel = $TravelUsers -join ', ' + $TravelPolicyName = "Travel Policy $UserLabel - $StartLabel - $EndLabel" + if ($TravelPolicyName.Length -gt 256) { + $TravelPolicyName = "Travel Policy $($TravelUsers.Count) users - $StartLabel - $EndLabel" + } + + $TravelCreateTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Create Travel Policy Vacation Mode: $TravelPolicyName" + Command = @{ + value = 'New-CIPPTravelPolicy' + label = 'New-CIPPTravelPolicy' + } + Parameters = [pscustomobject]@{ + Users = $TravelUsers + Countries = $TravelCountries + PolicyName = $TravelPolicyName + } + ScheduledTime = $StartDate + PostExecution = $Request.Body.postExecution + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $TravelCreateTask -hidden $false + + $TravelRemoveTask = [pscustomobject]@{ + TenantFilter = $TenantFilter + Name = "Remove Travel Policy Vacation Mode: $TravelPolicyName" + Command = @{ + value = 'Remove-CIPPTravelPolicy' + label = 'Remove-CIPPTravelPolicy' + } + Parameters = [pscustomobject]@{ + PolicyName = $TravelPolicyName + } + ScheduledTime = $EndDate + PostExecution = $Request.Body.postExecution + Reference = $Request.Body.reference + } + Add-CIPPScheduledTask -Task $TravelRemoveTask -hidden $false + $Results += "Successfully scheduled temporary travel policy '$TravelPolicyName' restricting sign-ins to $($TravelCountries -join ', '). The policy and named location will be removed at the end date." + } + if ($DuplicateGroupWarning) { $Results += $DuplicateGroupWarning } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 index 769a3e7c43b8a..7c08fb3741ed4 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Conditional/Invoke-ListCAtemplates.ps1 @@ -9,7 +9,7 @@ function Invoke-ListCAtemplates { #> [CmdletBinding()] param($Request, $TriggerMetadata) - Write-Host $Request.query.id + $GUID = $Request.query.id ?? $Request.query.ID ?? $Request.query.guid ?? $Request.query.GUID #Migrating old policies whenever you do a list $Table = Get-CippTable -tablename 'templates' $Imported = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'settings'" @@ -31,10 +31,10 @@ function Invoke-ListCAtemplates { } #List new policies $Table = Get-CippTable -tablename 'templates' - $Filter = "PartitionKey eq 'CATemplate'" - $RawTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) if ($Request.query.mode -eq 'Tag') { + $Filter = "PartitionKey eq 'CATemplate'" + $RawTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) #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 } | Group-Object -Property Package | ForEach-Object { $package = $_.Name @@ -59,6 +59,14 @@ function Invoke-ListCAtemplates { } } | Sort-Object -Property label) } else { + if ($GUID) { + $SafeGUID = ConvertTo-CIPPODataFilterValue -Value $GUID -Type Guid + $Filter = "PartitionKey eq 'CATemplate' and GUID eq '$SafeGUID'" + $RawTemplates = (Get-CIPPAzDataTableEntity @Table -Filter $Filter) + } + else { + $RawTemplates = (Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'CATemplate'") + } $Templates = $RawTemplates | ForEach-Object { try { $row = $_ @@ -74,8 +82,6 @@ function Invoke-ListCAtemplates { } | 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 return ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 index 8c0898c318ef9..d0f4ed0b234cd 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecDeleteGDAPRelationship.ps1 @@ -1,4 +1,4 @@ -Function Invoke-ExecDeleteGDAPRelationship { +function Invoke-ExecDeleteGDAPRelationship { <# .FUNCTIONALITY Entrypoint,AnyTenant @@ -13,19 +13,23 @@ Function Invoke-ExecDeleteGDAPRelationship { # Interact with query parameters or the body of the request. - $GDAPID = $Request.Query.GDAPId ?? $Request.Body.GDAPId + $GDAPId = $Request.Query.GDAPId ?? $Request.Body.GDAPId try { - $DELETE = New-GraphPostRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($GDAPID)/requests" -type POST -body '{"action":"terminate"}' -tenantid $env:TenantID - $Results = [pscustomobject]@{'Results' = "Success. GDAP relationship for $($GDAPID) been revoked" } - Write-LogMessage -headers $Headers -API $APIName -message "Success. GDAP relationship for $($GDAPID) been revoked" -Sev 'Info' + $null = New-GraphPostRequest -NoAuthCheck $True -uri "https://graph.microsoft.com/beta/tenantRelationships/delegatedAdminRelationships/$($GDAPId)/requests" -type POST -body '{"action":"terminate"}' -tenantid $env:TenantID + $Result = "Success. GDAP relationship for $($GDAPId) been revoked" + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Info' + $StatusCode = [HttpStatusCode]::OK } catch { - $Results = [pscustomobject]@{'Results' = "Failed. $($_.Exception.Message)" } + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Failed to revoke GDAP relationship for $($GDAPId). Error: $($ErrorMessage.NormalizedError)" + $StatusCode = [HttpStatusCode]::InternalServerError + Write-LogMessage -headers $Headers -API $APIName -message $Result -Sev 'Error' -LogData $ErrorMessage } return ([HttpResponseContext]@{ - StatusCode = [HttpStatusCode]::OK - Body = $Results + StatusCode = $StatusCode + Body = @{ 'Results' = $Result } }) } diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 index 98021647278a5..d5472f996b01f 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/GDAP/Invoke-ExecGDAPInvite.ps1 @@ -106,7 +106,7 @@ function Invoke-ExecGDAPInvite { } } catch { $Message = 'Error creating GDAP relationship, failed at step: ' + $Step - Write-Host "GDAP ERROR: $($_.InvocationInfo.PositionMessage)" + Write-Information "GDAP ERROR: on line $($_.InvocationInfo.PositionMessage) | $(($_ | ConvertTo-Json -Compress))" if ($Step -eq 'Creating GDAP relationship' -and $_.Exception.Message -match 'The user (principal) does not have the required permissions to perform the specified action on the resource.') { $Message = 'Error creating GDAP relationship, ensure that all users have MFA enabled and enforced without exception. Please see the Microsoft Partner Security Requirements documentation for more information. https://learn.microsoft.com/en-us/partner-center/security/partner-security-requirements' diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecShadowAISanction.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecShadowAISanction.ps1 new file mode 100644 index 0000000000000..8c5f84c6d1e0a --- /dev/null +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecShadowAISanction.ps1 @@ -0,0 +1,61 @@ +function Invoke-ExecShadowAISanction { + <# + .FUNCTIONALITY + Entrypoint + .ROLE + Tenant.Standards.ReadWrite + .DESCRIPTION + Marks an AI tool from the Shadow AI catalog as company sanctioned for a tenant, or removes + that status. Sanctioned tools are stored per tenant in the ShadowAIConfig table and are + reported by ListShadowAI with risk 'Informational' and status 'Sanctioned'; all other + detected AI tools report status 'Unsanctioned'. + #> + [CmdletBinding()] + param($Request, $TriggerMetadata) + + $TenantFilter = $Request.Body.tenantFilter ?? $Request.Query.tenantFilter + $Tools = @($Request.Body.Tools ?? $Request.Body.Tool) | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } + $Action = $Request.Body.Action ?? 'Sanction' + + try { + if (-not $TenantFilter) { throw 'tenantFilter is required' } + if ($Tools.Count -eq 0) { throw 'No AI tool specified' } + if ($Action -notin @('Sanction', 'Unsanction')) { throw "Unknown action '$Action'. Use Sanction or Unsanction." } + + $Table = Get-CIPPTable -TableName 'ShadowAIConfig' + $Results = foreach ($Tool in $Tools) { + # Table storage forbids /, \, # and ? in row keys + $RowKey = ($Tool -replace '[\\/#\?]', ' ').Trim() + if ($Action -eq 'Sanction') { + Add-CIPPAzDataTableEntity @Table -Entity @{ + PartitionKey = $TenantFilter + RowKey = $RowKey + Tool = "$Tool" + Sanctioned = $true + } -Force + Write-LogMessage -headers $Request.Headers -API 'ExecShadowAISanction' -tenant $TenantFilter -message "Marked AI tool '$Tool' as company sanctioned" -Sev 'Info' + "Marked '$Tool' as company sanctioned. Its risk level now reports as Informational." + } else { + $EscapedTenant = $TenantFilter -replace "'", "''" + $EscapedRowKey = $RowKey -replace "'", "''" + $Entity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq '$EscapedTenant' and RowKey eq '$EscapedRowKey'" + if ($Entity) { + Remove-AzDataTableEntity @Table -Entity $Entity -Force + } + Write-LogMessage -headers $Request.Headers -API 'ExecShadowAISanction' -tenant $TenantFilter -message "Removed company sanctioned status from AI tool '$Tool'" -Sev 'Info' + "Removed company sanctioned status from '$Tool'. Its catalog risk level applies again." + } + } + + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::OK + Body = @{ Results = @($Results) } + }) + } catch { + Write-LogMessage -headers $Request.Headers -API 'ExecShadowAISanction' -tenant $TenantFilter -message "Failed to update sanctioned AI tools: $($_.Exception.Message)" -Sev 'Error' + return ([HttpResponseContext]@{ + StatusCode = [HttpStatusCode]::BadRequest + Body = @{ Results = @("Failed to update sanctioned AI tools: $($_.Exception.Message)") } + }) + } +} diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 index 78c556cf7abef..152e87c5515f9 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ExecUpdateDriftDeviation.ps1 @@ -11,6 +11,49 @@ function Invoke-ExecUpdateDriftDeviation { $APIName = $TriggerMetadata.FunctionName Write-LogMessage -Headers $Request.Headers -API $APINAME -message 'Accessed this API' -Sev 'Debug' + function Find-CIPPTagBundleEntry { + param($Entries, $TemplateId, $TemplatePartition) + + if (-not $Entries) { return $null } + + $BundleEntry = $null + $TemplatesTable = Get-CippTable -tablename 'templates' + $LiveTemplate = Get-CIPPAzDataTableEntity @TemplatesTable -Filter "PartitionKey eq '$TemplatePartition' and RowKey eq '$TemplateId'" + if (-not $LiveTemplate) { + # Built-in templates are keyed as '.IntuneTemplate.json' / '.CATemplate.json', + # while deviation ids may carry the bare guid - match by prefix as a fallback + $LiveTemplate = Get-CIPPAzDataTableEntity @TemplatesTable -Filter "PartitionKey eq '$TemplatePartition'" | + Where-Object { $_.RowKey -like "$TemplateId*" } | Select-Object -First 1 + } + if ($LiveTemplate.Package) { + $BundleEntry = $Entries | Where-Object { + $TagValues = foreach ($Tag in @($_.'TemplateList-Tags')) { + if ($Tag.value) { $Tag.value } elseif ($Tag -is [string]) { $Tag } + } + @($TagValues) -contains $LiveTemplate.Package + } | Select-Object -First 1 + } + + if (-not $BundleEntry) { + # Fallback: the stored snapshot, for templates whose live row no longer exists + $BundleEntry = $Entries | Where-Object { + ($_.'TemplateList-Tags'.rawData.templates | Where-Object { $_.GUID -like "*$TemplateId*" }) -or + ($_.'TemplateList-Tags'.addedFields.templates | Where-Object { $_.GUID -like "*$TemplateId*" }) + } | Select-Object -First 1 + } + + if ($BundleEntry) { + $Matched = $BundleEntry.PSObject.Copy() + $Matched.PSObject.Properties.Remove('TemplateList-Tags') + $Matched | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ + label = $TemplateId + value = $TemplateId + }) -Force + return $Matched + } + return $null + } + try { $TenantFilter = $Request.Body.TenantFilter @@ -44,23 +87,17 @@ function Invoke-ExecUpdateDriftDeviation { $Setting = $Deviation.standardName -replace 'standards\.', '' $StandardTemplate = Get-CIPPTenantAlignment -TenantFilter $TenantFilter | Where-Object -Property standardType -EQ 'drift' $DriftTemplateId = $StandardTemplate.StandardId + $Settings = $null if ($Setting -like '*IntuneTemplate*') { $Setting = 'IntuneTemplate' - $TemplateId = $Deviation.standardName.split('.') | Select-Object -Index 2 + # Take everything after the prefix: template ids can contain dots + # (built-in templates are keyed '.IntuneTemplate.json') + $TemplateId = $Deviation.standardName -replace '^(standards\.)?IntuneTemplates?\.', '' $MatchedTemplate = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } | Select-Object -First 1 if (-not $MatchedTemplate) { - # Template may be inside a TemplateList-Tags bundle, expand it - $BundleEntry = $StandardTemplate.standardSettings.IntuneTemplate | Where-Object { - $_.'TemplateList-Tags'.rawData.templates | Where-Object { $_.GUID -like "*$TemplateId*" } - } | Select-Object -First 1 - if ($BundleEntry) { - $MatchedTemplate = $BundleEntry.PSObject.Copy() - $MatchedTemplate.PSObject.Properties.Remove('TemplateList-Tags') - $MatchedTemplate | Add-Member -NotePropertyName TemplateList -NotePropertyValue ([pscustomobject]@{ - label = $TemplateId - value = $TemplateId - }) -Force - } + # Template may be referenced through a TemplateList-Tags bundle - resolve the + # tag membership live so members added after the bundle was saved still remediate + $MatchedTemplate = Find-CIPPTagBundleEntry -Entries $StandardTemplate.standardSettings.IntuneTemplate -TemplateId $TemplateId -TemplatePartition 'IntuneTemplate' } if (-not $MatchedTemplate) { Write-LogMessage -tenant $TenantFilter -Headers $Request.Headers -API $APINAME -message "Could not find IntuneTemplate $TemplateId in drift standard settings for remediation" -Sev 'Warning' @@ -71,11 +108,21 @@ function Invoke-ExecUpdateDriftDeviation { } } 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 + # Take everything after the prefix: template ids can contain dots + # (built-in templates are keyed '.CATemplate.json') + $TemplateId = $Deviation.standardName -replace '^(standards\.)?ConditionalAccessTemplates?\.', '' + $MatchedTemplate = $StandardTemplate.standardSettings.ConditionalAccessTemplate | Where-Object { $_.TemplateList.value -like "*$TemplateId*" } | Select-Object -First 1 + if (-not $MatchedTemplate) { + # CA templates can be referenced through a TemplateList-Tags bundle too + $MatchedTemplate = Find-CIPPTagBundleEntry -Entries $StandardTemplate.standardSettings.ConditionalAccessTemplate -TemplateId $TemplateId -TemplatePartition 'CATemplate' + } + if (-not $MatchedTemplate) { + Write-LogMessage -tenant $TenantFilter -Headers $Request.Headers -API $APINAME -message "Could not find ConditionalAccessTemplate $TemplateId in drift standard settings for remediation" -Sev 'Warning' + } else { + $MatchedTemplate | Add-Member -MemberType NoteProperty -Name 'remediate' -Value $true -Force + $MatchedTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force + $Settings = $MatchedTemplate + } } else { $StandardTemplate = $StandardTemplate.standardSettings.$Setting # If the addedComponent values are stored nested under standards. instead of @@ -90,52 +137,62 @@ function Invoke-ExecUpdateDriftDeviation { $StandardTemplate | Add-Member -MemberType NoteProperty -Name 'report' -Value $true -Force $Settings = $StandardTemplate } - $TaskBody = @{ - TenantFilter = $TenantFilter - Name = "One Off Drift Remediation: $Setting - $TenantFilter - $DriftTemplateId" - Tag = "DriftRemediation_$DriftTemplateId" - 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 -Headers $Request.Headers -API $APINAME -message "Scheduled drift remediation task for $Setting" -Sev 'Info' - - if ($PersistentDeny) { - $PersistentTaskBody = @{ + if ($Settings) { + $TaskBody = @{ TenantFilter = $TenantFilter - Name = "Persistent Drift Remediation: $Setting - $TenantFilter - $DriftTemplateId" + Name = "One Off Drift Remediation: $Setting - $TenantFilter - $DriftTemplateId" Tag = "DriftRemediation_$DriftTemplateId" Command = @{ value = "Invoke-CIPPStandard$Setting" label = "Invoke-CIPPStandard$Setting" } + Parameters = [pscustomobject]@{ Tenant = $TenantFilter Settings = $Settings } ScheduledTime = '0' - Recurrence = '12h' PostExecution = @{ Webhook = $false Email = $false PSA = $false } } - Add-CIPPScheduledTask -Task $PersistentTaskBody -hidden $false - Write-LogMessage -tenant $TenantFilter -Headers $Request.Headers -API $APINAME -message "Scheduled persistent drift remediation task (12h recurrence) for $Setting" -Sev 'Info' + Add-CIPPScheduledTask -Task $TaskBody -hidden $false + Write-LogMessage -tenant $TenantFilter -Headers $Request.Headers -API $APINAME -message "Scheduled drift remediation task for $Setting" -Sev 'Info' + + if ($PersistentDeny) { + $PersistentTaskBody = @{ + TenantFilter = $TenantFilter + Name = "Persistent Drift Remediation: $Setting - $TenantFilter - $DriftTemplateId" + Tag = "DriftRemediation_$DriftTemplateId" + Command = @{ + value = "Invoke-CIPPStandard$Setting" + label = "Invoke-CIPPStandard$Setting" + } + Parameters = [pscustomobject]@{ + Tenant = $TenantFilter + Settings = $Settings + } + ScheduledTime = '0' + Recurrence = '12h' + PostExecution = @{ + Webhook = $false + Email = $false + PSA = $false + } + } + Add-CIPPScheduledTask -Task $PersistentTaskBody -hidden $false + Write-LogMessage -tenant $TenantFilter -Headers $Request.Headers -API $APINAME -message "Scheduled persistent drift remediation task (12h recurrence) for $Setting" -Sev 'Info' + } + } else { + # Surface the failure to the caller - previously this silently scheduled a + # remediation task with empty settings that could never do anything + [PSCustomObject]@{ + standardName = $Deviation.standardName + success = $false + error = "The deviation status was updated, but no remediation task was scheduled: the template could not be resolved from the drift template settings. Verify the template still exists in the template library, or re-save the drift template." + } } } if ($Deviation.status -eq 'deniedDelete') { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListCopilotSettings.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListCopilotSettings.ps1 index 3300495bf9ba4..f9dd2608a845f 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListCopilotSettings.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListCopilotSettings.ps1 @@ -40,6 +40,14 @@ function Invoke-ListCopilotSettings { $BulkResults = @() } + # Web search is a three-state setting (values match the config.office.com policy options); + # the other settings are plain 1/0 toggles. + $WebSearchStates = @{ + '2' = 'Enabled in Copilot and Copilot Chat' + '1' = 'Disabled in Copilot and Copilot Chat' + '0' = 'Disabled in Copilot Work mode, Enabled in Copilot Chat' + } + $Results = foreach ($Setting in $PolicySettings) { $Response = $BulkResults | Where-Object { $_.id -eq $Setting.id } $Value = $null @@ -47,6 +55,8 @@ function Invoke-ListCopilotSettings { $Value = $Response.body.value $StateText = if ([string]::IsNullOrEmpty($Value)) { 'Not configured' + } elseif ($Setting.id -eq 'microsoft.copilot.allowwebsearch' -and $WebSearchStates[[string]$Value]) { + $WebSearchStates[[string]$Value] } elseif ($Value -eq '1') { 'Enabled' } elseif ($Value -eq '0') { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListShadowAI.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListShadowAI.ps1 index c5ea0190d57d6..ff806f1c5aaa2 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListShadowAI.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListShadowAI.ps1 @@ -37,6 +37,18 @@ function Invoke-ListShadowAI { return $null } + $SanctionedTools = @{} + try { + $SanctionTable = Get-CIPPTable -TableName 'ShadowAIConfig' + $EscapedTenant = $TenantFilter -replace "'", "''" + foreach ($Row in @(Get-CIPPAzDataTableEntity @SanctionTable -Filter "PartitionKey eq '$EscapedTenant'")) { + $ToolName = if ($Row.Tool) { $Row.Tool } else { $Row.RowKey } + if ($ToolName) { $SanctionedTools[$ToolName.ToLower()] = $true } + } + } catch { + Write-LogMessage -API 'ShadowAI' -tenant $TenantFilter -message "Could not load sanctioned AI tools: $($_.Exception.Message)" -Sev 'Warning' + } + # --- Cached datasets from the CIPP reporting database (no live Graph enumeration) --- $CacheTypes = @('DetectedApps', 'ServicePrincipals', 'OAuth2PermissionGrants') $CacheData = @{} @@ -56,23 +68,57 @@ function Invoke-ListShadowAI { $EntraSynced = $CacheData['ServicePrincipals'].Count -gt 0 $LastDataRefresh = $CacheTimestamps | Sort-Object | Select-Object -First 1 - # 1) Installed AI tools from the cached Intune detected apps - $DetectedApps = [System.Collections.Generic.List[object]]::new() + # 1) Installed AI tools from the cached Intune detected apps. The inventory reports a separate + # application entry per version (and per install flavor, e.g. 'Copilot' vs 'Microsoft.Copilot'), + # so merge everything that matches the same catalog tool into ONE row: distinct devices only, + # with the observed application names, versions and platforms combined. + $DetectedAppMap = [ordered]@{} foreach ($App in $CacheData['DetectedApps']) { $Match = Get-AiMatch -Text "$($App.displayName) $($App.publisher)" -Catalog $Catalog if (-not $Match) { continue } - $DeviceCount = [int]($App.deviceCount ?? 0) - if ($DeviceCount -eq 0 -and $App.managedDevices) { $DeviceCount = @($App.managedDevices).Count } + if (-not $DetectedAppMap.Contains($Match.name)) { + $DetectedAppMap[$Match.name] = [PSCustomObject]@{ + Match = $Match + Sanctioned = $SanctionedTools.ContainsKey($Match.name.ToLower()) + Applications = [System.Collections.Generic.List[string]]::new() + Publishers = [System.Collections.Generic.List[string]]::new() + Versions = [System.Collections.Generic.List[string]]::new() + Platforms = [System.Collections.Generic.List[string]]::new() + Devices = [ordered]@{} + } + } + $Entry = $DetectedAppMap[$Match.name] + if ($App.displayName -and $Entry.Applications -notcontains [string]$App.displayName) { $Entry.Applications.Add([string]$App.displayName) } + if ($App.publisher -and $Entry.Publishers -notcontains [string]$App.publisher) { $Entry.Publishers.Add([string]$App.publisher) } + if ($App.version -and $Entry.Versions -notcontains [string]$App.version) { $Entry.Versions.Add([string]$App.version) } + $Platform = if ([string]::IsNullOrWhiteSpace($App.platform)) { 'Unknown' } else { [string]$App.platform } + if ($Entry.Platforms -notcontains $Platform) { $Entry.Platforms.Add($Platform) } + foreach ($Device in @($App.managedDevices ?? @())) { + $DeviceKey = if ($Device.id) { [string]$Device.id } else { [string]$Device.deviceName } + if ($DeviceKey -and -not $Entry.Devices.Contains($DeviceKey)) { $Entry.Devices[$DeviceKey] = $Device } + } + } + + $DetectedApps = [System.Collections.Generic.List[object]]::new() + foreach ($Entry in $DetectedAppMap.Values) { + $Match = $Entry.Match + # Inventory rows mix clean publisher names with full certificate subjects - show the shortest + $Publisher = $Entry.Publishers | Sort-Object -Property Length | Select-Object -First 1 $DetectedApps.Add([PSCustomObject]@{ - application = $App.displayName - aiTool = $Match.name - vendor = $Match.vendor - category = $Match.category - risk = $Match.risk - publisher = $App.publisher - version = $App.version - platform = if ([string]::IsNullOrWhiteSpace($App.platform)) { 'Unknown' } else { $App.platform } - deviceCount = $DeviceCount + application = ($Entry.Applications | Sort-Object) -join ', ' + aiTool = $Match.name + vendor = $Match.vendor + category = $Match.category + risk = if ($Entry.Sanctioned) { 'Informational' } else { $Match.risk } + catalogRisk = $Match.risk + status = if ($Entry.Sanctioned) { 'Sanctioned' } else { 'Unsanctioned' } + toolDescription = $Match.description + riskReason = $Match.riskReason + publisher = $Publisher + version = ($Entry.Versions | Sort-Object) -join ', ' + platform = ($Entry.Platforms | Sort-Object) -join ', ' + deviceCount = $Entry.Devices.Count + managedDevices = @($Entry.Devices.Values) }) } @@ -101,12 +147,17 @@ function Invoke-ListShadowAI { } else { @() } + $IsSanctioned = $SanctionedTools.ContainsKey($Match.name.ToLower()) $Consent = [PSCustomObject]@{ application = $Sp.displayName aiTool = $Match.name vendor = $Match.vendor category = $Match.category - risk = $Match.risk + risk = if ($IsSanctioned) { 'Informational' } else { $Match.risk } + catalogRisk = $Match.risk + status = if ($IsSanctioned) { 'Sanctioned' } else { 'Unsanctioned' } + toolDescription = $Match.description + riskReason = $Match.riskReason applicationId = $Sp.appId approvedPermissions = @($Permissions) firstConsentedDateTime = $Sp.createdDateTime @@ -152,13 +203,13 @@ function Invoke-ListShadowAI { $ToolMap = @{} foreach ($App in $DetectedApps) { if (-not $ToolMap.ContainsKey($App.aiTool)) { - $ToolMap[$App.aiTool] = [PSCustomObject]@{ Tool = $App.aiTool; Category = $App.category; Risk = $App.risk; Devices = 0; Users = 0 } + $ToolMap[$App.aiTool] = [PSCustomObject]@{ Tool = $App.aiTool; Category = $App.category; Risk = $App.risk; Status = $App.status; Devices = 0; Users = 0 } } $ToolMap[$App.aiTool].Devices += $App.deviceCount } foreach ($App in $ConsentedApps) { if (-not $ToolMap.ContainsKey($App.aiTool)) { - $ToolMap[$App.aiTool] = [PSCustomObject]@{ Tool = $App.aiTool; Category = $App.category; Risk = $App.risk; Devices = 0; Users = 0 } + $ToolMap[$App.aiTool] = [PSCustomObject]@{ Tool = $App.aiTool; Category = $App.category; Risk = $App.risk; Status = $App.status; Devices = 0; Users = 0 } } $ToolMap[$App.aiTool].Users += [int]$App.activeUsersLast7Days } @@ -184,6 +235,7 @@ function Invoke-ListShadowAI { users = $_.Users footprint = $_.Devices + $_.Users category = $_.Category + status = $_.Status } } @@ -193,6 +245,7 @@ function Invoke-ListShadowAI { deviceInstalls = [int](($DetectedApps | Measure-Object -Property deviceCount -Sum).Sum) consentedAiApps = $ConsentedApps.Count highRiskTools = @($ToolMap.Values | Where-Object { $_.Risk -eq 'High' }).Count + sanctionedTools = @($ToolMap.Values | Where-Object { $_.Status -eq 'Sanctioned' }).Count intuneSynced = $IntuneSynced entraSynced = $EntraSynced lastDataRefresh = $LastDataRefresh diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 index aae480c97d51e..5e717af28807e 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-ListTenantAlignment.ps1 @@ -20,7 +20,7 @@ function Invoke-ListTenantAlignment { $TemplateLookup = @{} if ($Granular) { $TemplateTable = Get-CippTable -tablename 'templates' - $TemplatePartitions = @('IntuneTemplate', 'ConditionalAccessTemplate', 'QuarantineTemplate') + $TemplatePartitions = @('IntuneTemplate', 'ConditionalAccessTemplate', 'QuarantineTemplate', 'IntuneReusableSettingTemplate') foreach ($Partition in $TemplatePartitions) { Get-CIPPAzDataTableEntity @TemplateTable -Filter "PartitionKey eq '$Partition'" | ForEach-Object { $TemplateRow = $_ @@ -64,6 +64,7 @@ function Invoke-ListTenantAlignment { 'IntuneTemplate' { 'Intune Template' } 'ConditionalAccessTemplate' { 'Conditional Access Template' } 'QuarantineTemplate' { 'Quarantine Template' } + 'ReusableSettingsTemplate' { 'Reusable Settings Template' } default { $MatchType } } "$FriendlyType - $PolicyName" diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 index 94444123db7f2..8302317f89a53 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-RemoveStandardTemplate.ps1 @@ -35,11 +35,26 @@ function Invoke-RemoveStandardTemplate { Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $DriftTask Write-LogMessage -Headers $Headers -API $APIName -message "Removed drift remediation scheduled task: $($DriftTask.Name)" -Sev Info } + $StandardsReportsTable = Get-CIPPTable -TableName 'CippStandardsReports' + $RemovedTemplateIds = @(@($Entities.RowKey) + $ID | Where-Object { $_ } | Select-Object -Unique) + $OrphanedReports = [System.Collections.Generic.List[object]]::new() + foreach ($RemovedTemplateId in $RemovedTemplateIds) { + $SafeTemplateId = ConvertTo-CIPPODataFilterValue -Value $RemovedTemplateId -Type Guid + $Rows = Get-CIPPAzDataTableEntity @StandardsReportsTable -Filter "TemplateId eq '$SafeTemplateId'" + foreach ($Row in $Rows) { $OrphanedReports.Add($Row) } + } + if ($OrphanedReports.Count -gt 0) { + Remove-AzDataTableEntity -Force @StandardsReportsTable -Entity @($OrphanedReports) + Write-LogMessage -Headers $Headers -API $APIName -message "Removed $($OrphanedReports.Count) orphaned standards comparison row(s) for template id: $($ID)" -Sev Info + } $Result = "Removed Standards Template named: '$($TemplateName)' with id: $($ID)" if ($DriftTasks) { $Result += ". Also removed $(@($DriftTasks).Count) associated drift remediation scheduled task(s)." } + if ($OrphanedReports.Count -gt 0) { + $Result += " Cleaned up $($OrphanedReports.Count) orphaned standards comparison row(s)." + } Write-LogMessage -Headers $Headers -API $APIName -message $Result -Sev Info $StatusCode = [HttpStatusCode]::OK } catch { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 index 8f844ddb9de77..eb71fa0dcbfb2 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tenant/Standards/Invoke-listStandardTemplates.ps1 @@ -35,7 +35,8 @@ function Invoke-listStandardTemplates { } -Force Write-LogMessage -headers $Request.Headers -API 'Standards' -message "Standards template '$($RowKey)' contained corrupt data (case-duplicate keys) and was automatically repaired and re-saved." -Sev 'Warning' } catch { - Write-LogMessage -headers $Request.Headers -API 'Standards' -message "Standards template '$($RowKey)' was repaired for this response but could not be re-saved: $($_.Exception.Message)" -Sev 'Warning' + Write-LogMessage -headers $Request.Headers -API 'Standards' -message "Standards template '$($RowKey)' was repaired but could not be re-saved, so it was omitted from the response: $($_.Exception.Message)" -Sev 'Error' + return } } if ($Data) { diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/Custom-Scripts/Invoke-ListCustomScripts.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/Custom-Scripts/Invoke-ListCustomScripts.ps1 index ef3873cf17e02..feb77b8077d41 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/Custom-Scripts/Invoke-ListCustomScripts.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/Custom-Scripts/Invoke-ListCustomScripts.ps1 @@ -35,12 +35,13 @@ function Invoke-ListCustomScripts { $Filter = "PartitionKey eq 'CustomScript'" $AllScripts = Get-CIPPAzDataTableEntity @Table -Filter $Filter - # Group by ScriptGuid and get latest version of each + # Group by ScriptGuid and get latest version of each, sorted by name for pickers $Scripts = $AllScripts | Group-Object -Property ScriptGuid | ForEach-Object { $_.Group | Sort-Object -Property Version -Descending | Select-Object -First 1 - } + } | + Sort-Object -Property ScriptName } $Body = $Scripts diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 index 816498651f490..3ff65c2cab27d 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ExecCommunityRepo.ps1 @@ -107,10 +107,10 @@ function Invoke-ExecCommunityRepo { 'UploadTemplate' { $GUID = $Request.Body.GUID $TemplateTable = Get-CIPPTable -TableName templates - $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "RowKey eq '$($GUID)'" | Select-Object -ExcludeProperty ETag, Timestamp + $TemplateEntity = Get-CIPPAzDataTableEntity @TemplateTable -Filter "RowKey eq '$($GUID)' or OriginalEntityId eq '$($GUID)'" | Select-Object -ExcludeProperty ETag, Timestamp $Branch = $RepoEntity.UploadBranch ?? $RepoEntity.DefaultBranch if ($TemplateEntity) { - $Template = $TemplateEntity.JSON | ConvertFrom-Json + $Template = $TemplateEntity.JSON | ConvertFrom-Json -Depth 100 -ErrorAction Stop $DisplayName = $Template.Displayname ?? $Template.templateName ?? $Template.name if ($Template.tenantFilter) { $Template.tenantFilter = @(@{ label = 'Template Tenant'; value = 'Template Tenant' }) diff --git a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 index ad9a21118d497..179a8bd3dc54c 100644 --- a/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 +++ b/Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Tools/GitHub/Invoke-ListGitHubReleaseNotes.ps1 @@ -13,7 +13,7 @@ [CmdletBinding()] param($Request, $TriggerMetadata) - $Owner = 'KelvinTegelaar' + $Owner = 'CyberDrain' $Repository = 'CIPP' if (-not $Owner) { diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 index 7ed2feadb7563..8c3ef3c619c99 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAddDMARCToMOERA.ps1 @@ -46,7 +46,7 @@ function Invoke-CIPPStandardAddDMARCToMOERA { try { $DomainsResponse = New-GraphGetRequest -TenantID $Tenant -Uri 'https://graph.microsoft.com/beta/domains' Write-Warning ($DomainsResponse | ConvertTo-Json -Depth 5) - $Domains = @($DomainsResponse | Where-Object { $_.id -like '*.onmicrosoft.com' } | ForEach-Object { $_.id }) + $Domains = @($DomainsResponse | Where-Object { $_.id -like '*.onmicrosoft.com' -and $_.id -notlike '*.mail.onmicrosoft.com' } | ForEach-Object { $_.id }) Write-Information "Detected $($Domains.Count) MOERA domains: $($Domains -join ', ')" $CurrentInfo = foreach ($Domain in $Domains) { diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 index 855f555caf193..c202a60b3ff68 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardAntiPhishPolicy.ps1 @@ -312,8 +312,7 @@ function Invoke-CIPPStandardAntiPhishPolicy { } if ($Settings.report -eq $true) { - $FieldValue = $StateIsCorrect ? $true : $CurrentState - Set-CIPPStandardsCompareField -FieldName 'standards.AntiPhishPolicy' -FieldValue $FieldValue -TenantFilter $Tenant + Set-CIPPStandardsCompareField -FieldName 'standards.AntiPhishPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'AntiPhishPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardBranding.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardBranding.ps1 index 050f5d6043f6d..38986f49dd7d6 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardBranding.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardBranding.ps1 @@ -54,6 +54,22 @@ function Invoke-CIPPStandardBranding { $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 + + $SetSignInPageText = -not [string]::IsNullOrEmpty($Settings.signInPageText) + $SetUsernameHintText = -not [string]::IsNullOrEmpty($Settings.usernameHintText) + + $BrandingBody = [ordered]@{ + loginPageTextVisibilitySettings = [pscustomobject]@{ + hideAccountResetCredentials = $Settings.hideAccountResetCredentials + } + loginPageLayoutConfiguration = [pscustomobject]@{ + layoutTemplateType = $layoutTemplateType + isHeaderShown = $Settings.isHeaderShown + isFooterShown = $Settings.isFooterShown + } + } + if ($SetSignInPageText) { $BrandingBody['signInPageText'] = $Settings.signInPageText } + if ($SetUsernameHintText) { $BrandingBody['usernameHintText'] = $Settings.usernameHintText } # 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 { @@ -71,18 +87,7 @@ function Invoke-CIPPStandardBranding { 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 + Body = [pscustomobject]$BrandingBody | ConvertTo-Json -Compress } $CurrentState = New-GraphPostRequest @GraphRequest } catch { @@ -92,22 +97,18 @@ function Invoke-CIPPStandardBranding { } } - $StateIsCorrect = ($CurrentState.signInPageText -eq $Settings.signInPageText) -and - ($CurrentState.usernameHintText -eq $Settings.usernameHintText) -and - ($CurrentState.loginPageTextVisibilitySettings.hideAccountResetCredentials -eq $Settings.hideAccountResetCredentials) -and + $StateIsCorrect = ($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.loginPageLayoutConfiguration.isFooterShown -eq $Settings.isFooterShown) -and + (-not $SetSignInPageText -or ($CurrentState.signInPageText -eq $Settings.signInPageText)) -and + (-not $SetUsernameHintText -or ($CurrentState.usernameHintText -eq $Settings.usernameHintText)) - $CurrentValue = [PSCustomObject]@{ - signInPageText = $CurrentState.signInPageText - usernameHintText = $CurrentState.usernameHintText + $CurrentValue = [ordered]@{ loginPageTextVisibilitySettings = $CurrentState.loginPageTextVisibilitySettings | Select-Object -Property hideAccountResetCredentials loginPageLayoutConfiguration = $CurrentState.loginPageLayoutConfiguration | Select-Object -Property layoutTemplateType, isHeaderShown, isFooterShown } - $ExpectedValue = [PSCustomObject]@{ - signInPageText = $Settings.signInPageText - usernameHintText = $Settings.usernameHintText + $ExpectedValue = [ordered]@{ loginPageTextVisibilitySettings = [pscustomobject]@{ hideAccountResetCredentials = $Settings.hideAccountResetCredentials } @@ -117,6 +118,16 @@ function Invoke-CIPPStandardBranding { isFooterShown = $Settings.isFooterShown } } + if ($SetSignInPageText) { + $CurrentValue['signInPageText'] = $CurrentState.signInPageText + $ExpectedValue['signInPageText'] = $Settings.signInPageText + } + if ($SetUsernameHintText) { + $CurrentValue['usernameHintText'] = $CurrentState.usernameHintText + $ExpectedValue['usernameHintText'] = $Settings.usernameHintText + } + $CurrentValue = [pscustomobject]$CurrentValue + $ExpectedValue = [pscustomobject]$ExpectedValue if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -129,18 +140,7 @@ function Invoke-CIPPStandardBranding { AsApp = $true Type = 'PATCH' 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 + Body = [pscustomobject]$BrandingBody | ConvertTo-Json -Compress } $null = New-GraphPostRequest @GraphRequest Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Successfully updated branding.' -Sev Info diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 index bb7c1d6d1d2ca..1194f9c13c7fb 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardConditionalAccessTemplate.ps1 @@ -50,7 +50,7 @@ function Invoke-CIPPStandardConditionalAccessTemplate { $TestResult = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_general' -TenantFilter $Tenant -Preset Entra if ($TestResult -eq $false) { - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue 'This tenant does not have the required license for this standard.' -LicenseAvailable $false -Tenant $Tenant return $true } #we're done. @@ -67,6 +67,7 @@ function Invoke-CIPPStandardConditionalAccessTemplate { return } + $DeployError = $null if ($Settings.remediate -eq $true) { try { $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$($Settings.TemplateList.value)'" @@ -76,7 +77,7 @@ function Invoke-CIPPStandardConditionalAccessTemplate { $TestP2 = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_p2' -TenantFilter $Tenant -Preset EntraP2 -SkipLog if (!$TestP2) { Write-Information "Skipping policy $($Policy.displayName) as it requires AAD Premium P2 license." - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Policy $($Policy.displayName) requires AAD Premium P2 license." -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -CurrentValue @{ Differences = 'Policy requires an AAD Premium P2 license, which this tenant does not have.' } -ExpectedValue @{ Differences = @() } -LicenseAvailable $false -Tenant $Tenant return $true } } @@ -97,17 +98,20 @@ function Invoke-CIPPStandardConditionalAccessTemplate { $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' + # Capture the Graph deploy error (e.g. invalid CA policy 1011/1085) so the report + # section below surfaces the reason in the compare fields instead of just "missing". + $DeployError = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create or update conditional access rule $($JSONObj.displayName). Error: $DeployError" -sev 'Error' } } if ($Settings.report -eq $true -or $Settings.remediate -eq $true) { + $FieldName = "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" $Filter = "PartitionKey eq 'CATemplate' and RowKey eq '$($Settings.TemplateList.value)'" $Policy = (Get-CippAzDataTableEntity @Table -Filter $Filter).JSON | ConvertFrom-Json -Depth 10 if ($null -eq $Policy) { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Conditional Access template '$($Settings.TemplateList.label)' ($($Settings.TemplateList.value)) could not be loaded from the template store - skipping." -Sev 'Error' - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Template '$($Settings.TemplateList.label)' could not be loaded from the template store." -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Template '$($Settings.TemplateList.label)' could not be loaded from the template store." } -ExpectedValue @{ Differences = @() } -Tenant $Tenant return } @@ -118,43 +122,75 @@ function Invoke-CIPPStandardConditionalAccessTemplate { $Policy | Add-Member -NotePropertyName 'state' -NotePropertyValue $Settings.state -Force } + if ($Policy.sessionControls) { + if ($Policy.sessionControls.disableResilienceDefaults -ne $true) { + $Policy.sessionControls.PSObject.Properties.Remove('disableResilienceDefaults') + } + if (@($Policy.sessionControls.PSObject.Properties).Count -eq 0) { + $Policy.PSObject.Properties.Remove('sessionControls') + } + } + + # Resolve the template's location GUIDs to display names so they compare like-for-like + # with the deployed policy. The template's own LocationInfo carries the id->name map + # (the GUID is the source tenant's id); fall back to this tenant's named-location cache. + if ($Policy.conditions.locations) { + $LocNameById = @{} + foreach ($li in @($Policy.LocationInfo)) { if ($li.id -and $li.displayName) { $LocNameById[$li.id] = $li.displayName } } + foreach ($pl in @($PreloadedLocations)) { if ($pl.id -and $pl.displayName -and -not $LocNameById.ContainsKey($pl.id)) { $LocNameById[$pl.id] = $pl.displayName } } + foreach ($LocDir in 'includeLocations', 'excludeLocations') { + if ($Policy.conditions.locations.PSObject.Properties.Name -contains $LocDir -and $Policy.conditions.locations.$LocDir) { + $Policy.conditions.locations.$LocDir = @($Policy.conditions.locations.$LocDir | ForEach-Object { + if ($LocNameById.ContainsKey($_)) { $LocNameById[$_] } else { $_ } + }) + } + } + } + $CheckExististing = $AllCAPolicies | Where-Object -Property displayName -EQ $Settings.TemplateList.label + # Duplicate display names would pass an array to New-CIPPCATemplate (breaking its single-object + # conversion and dumping the whole template). Compare against the first match instead. + if ($CheckExististing -is [array] -and $CheckExististing.Count -gt 1) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Found $($CheckExististing.Count) Conditional Access policies named '$($Settings.TemplateList.label)' in $Tenant. Comparing against the first; duplicate policies should be cleaned up." -Sev 'Warning' + $CheckExististing = $CheckExististing[0] + } if (!$CheckExististing) { - if ($Policy.conditions.userRiskLevels.Count -gt 0 -or $Policy.conditions.signInRiskLevels.Count -gt 0) { + if ($DeployError) { + # Attempted but the Graph deployment errored (e.g. invalid CA policy) - surface the reason + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Failed to deploy: $DeployError" } -ExpectedValue @{ Differences = @() } -Tenant $Tenant + } elseif ($Policy.conditions.userRiskLevels.Count -gt 0 -or $Policy.conditions.signInRiskLevels.Count -gt 0) { $TestP2 = Test-CIPPStandardLicense -StandardName 'ConditionalAccessTemplate_p2' -TenantFilter $Tenant -Preset EntraP2 -SkipLog if (!$TestP2) { - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Policy $($Settings.TemplateList.label) requires AAD Premium P2 license." -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Policy requires an AAD Premium P2 license, which this tenant does not have.' } -ExpectedValue @{ Differences = @() } -LicenseAvailable $false -Tenant $Tenant } else { - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Policy $($Settings.TemplateList.label) is missing from this tenant." -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Policy is missing from this tenant.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant } } else { - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Policy $($Settings.TemplateList.label) is missing from this tenant." -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Policy is missing from this tenant.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant } } else { - $templateResult = New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing -preloadedLocations $preloadedLocations + $templateResult = New-CIPPCATemplate -TenantFilter $tenant -JSON $CheckExististing -preloadedLocations $PreloadedLocations $CompareObj = ConvertFrom-Json -ErrorAction SilentlyContinue -InputObject $templateResult - if ($null -eq $Policy -or $null -eq $CompareObj) { - $nullSide = if ($null -eq $Policy) { 'template policy' } else { 'tenant policy conversion' } - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Cannot compare CA policy: $nullSide returned null for $($Settings.TemplateList.label)" -sev Error - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Error comparing policy: $nullSide returned null" -Tenant $Tenant + if ($null -eq $CompareObj) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Cannot compare CA policy: tenant policy conversion returned null for $($Settings.TemplateList.label)" -sev Error + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = 'Tenant policy conversion returned null.' } -ExpectedValue @{ Differences = @() } -Tenant $Tenant return } try { $Compare = Compare-CIPPIntuneObject -ReferenceObject $Policy -DifferenceObject $CompareObj -CompareType 'ca' } catch { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error comparing CA policy: $($_.Exception.Message)" -sev Error - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue "Error comparing policy: $($_.Exception.Message)" -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue @{ Differences = "Error comparing policy: $($_.Exception.Message)" } -ExpectedValue @{ Differences = @() } -Tenant $Tenant return } if (!$Compare) { $ExpectedValue = @{ 'Differences' = 'No Differences found' } $CurrentValue = @{ 'Differences' = 'No Differences found' } - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -FieldValue $true -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -FieldValue $true -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } else { - #this can still be prettified but is for later. $ExpectedValue = @{ 'Differences' = @() } $CurrentValue = @{ 'Differences' = $Compare } - Set-CIPPStandardsCompareField -FieldName "standards.ConditionalAccessTemplate.$($Settings.TemplateList.value)" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Set-CIPPStandardsCompareField -FieldName $FieldName -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardCopilotSettings.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardCopilotSettings.ps1 index f47f0fa02bc94..477a006931505 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardCopilotSettings.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardCopilotSettings.ps1 @@ -19,7 +19,7 @@ function Invoke-CIPPStandardCopilotSettings { {"type":"autoComplete","multiple":false,"creatable":false,"label":"Pin Microsoft 365 Copilot Chat","name":"standards.CopilotSettings.copilotChatPinning","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Enabled","value":"1"},{"label":"Disabled","value":"0"}]} {"type":"autoComplete","multiple":false,"creatable":false,"label":"Copilot Access to Open Content","name":"standards.CopilotSettings.blockAccessToOpenFiles","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Block open content","value":"1"},{"label":"Allow open content","value":"0"}]} {"type":"autoComplete","multiple":false,"creatable":false,"label":"Designer Image Generation","name":"standards.CopilotSettings.imageGeneration","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Enabled","value":"1"},{"label":"Disabled","value":"0"}]} - {"type":"autoComplete","multiple":false,"creatable":false,"label":"Web Search in Copilot","name":"standards.CopilotSettings.allowWebSearch","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Enabled","value":"1"},{"label":"Disabled","value":"0"}]} + {"type":"autoComplete","multiple":false,"creatable":false,"label":"Web Search in Copilot","name":"standards.CopilotSettings.allowWebSearch","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Enabled in Microsoft 365 Copilot and Microsoft 365 Copilot Chat","value":"2"},{"label":"Disabled in Microsoft 365 Copilot and Microsoft 365 Copilot Chat","value":"1"},{"label":"Disabled in Microsoft 365 Copilot Work mode, Enabled in Microsoft 365 Copilot Chat","value":"0"}]} {"type":"autoComplete","multiple":false,"creatable":false,"label":"Admin Copilot in Microsoft 365 Admin Center","name":"standards.CopilotSettings.allowInAdminCenters","options":[{"label":"Do not configure","value":"donotconfigure"},{"label":"Enabled","value":"1"},{"label":"Disabled","value":"0"}]} IMPACT Medium Impact diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 index a6ddad102a4dd..f861da92045e9 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDeployMailContact.ps1 @@ -120,15 +120,18 @@ function Invoke-CIPPStandardDeployMailContact { # Report if ($Settings.report -eq $true) { + # Email addresses are compared lowercased on both sides: Exchange re-cases the domain part + # when it creates the contact (support@mydomain.com becomes support@Mydomain.com), which + # would otherwise fail the case-sensitive comparison forever. $ContactData = @{ DisplayName = $Settings.DisplayName - ExternalEmailAddress = $Settings.ExternalEmailAddress + ExternalEmailAddress = ([string]$Settings.ExternalEmailAddress).ToLower() FirstName = $Settings.FirstName ?? '' LastName = $Settings.LastName ?? '' } $currentValue = @{ DisplayName = $ExistingContactLookup.displayName - ExternalEmailAddress = ($ExistingContact.ExternalEmailAddress -replace 'SMTP:', '') + ExternalEmailAddress = ([string]($ExistingContact.ExternalEmailAddress -replace 'SMTP:', '')).ToLower() FirstName = $ExistingContactLookup.givenName ?? '' LastName = $ExistingContactLookup.surname ?? '' } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 index 7e8c3bb17833b..30241c7d681ae 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableEmail.ps1 @@ -49,6 +49,8 @@ function Invoke-CIPPStandardDisableEmail { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Email' -Enabled $false } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Email authentication method. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableInactiveUsers.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableInactiveUsers.ps1 new file mode 100644 index 0000000000000..84cc7b5ad7570 --- /dev/null +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableInactiveUsers.ps1 @@ -0,0 +1,188 @@ +function Invoke-CIPPStandardDisableInactiveUsers { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) DisableInactiveUsers + .SYNOPSIS + (Label) Disable Member accounts that have not logged on for a number of days + .DESCRIPTION + (Helptext) Blocks login for cloud-only member users that have not signed in for a configurable number of days (minimum 30). Includes accounts that have never signed in when the account is older than the threshold. Hybrid (on-premises synced) users are skipped. Users without sign-in activity data are not disabled. + (DocsDescription) Disables enabled Member user accounts after a defined period of inactivity (minimum 30 days), supporting CMMC IA.L2-3.5.6 / NIST SP 800-171 3.5.6. Inactivity is based on signInActivity.lastSuccessfulSignInDateTime. Accounts that have never signed in (signInActivity present but no successful sign-in) are included when createdDateTime is older than the threshold. Users missing signInActivity entirely are skipped so incomplete Graph data cannot cause accidental disables. Hybrid-synced (onPremisesSyncEnabled) users are skipped because Entra disable often will not stick. Recently re-enabled accounts (last 7 days) are also skipped. Values below 30 days are rejected at runtime. + .NOTES + CAT + Entra (AAD) Standards + TAG + "CMMC (IA.L2-3.5.6)" + "NIST SP 800-171 (3.5.6)" + EXECUTIVETEXT + Automatically disables unused employee accounts that have not signed in for a configured number of days, reducing risk from dormant accounts and supporting CMMC / NIST inactive-identifier requirements. Hybrid directory-synced accounts are left alone so on-premises identity remains the source of truth for those users. + ADDEDCOMPONENT + {"type":"number","name":"standards.DisableInactiveUsers.days","required":true,"defaultValue":180,"label":"Days of inactivity (minimum 30)","validators":{"min":{"value":30,"message":"Minimum value is 30"}}} + IMPACT + High Impact + ADDEDDATE + 2026-07-22 + POWERSHELLEQUIVALENT + Get-MgUser -Property SignInActivity & Update-MgUser -AccountEnabled $false + RECOMMENDEDBY + "CIPP" + "CMMC" + REQUIREDCAPABILITIES + "AAD_PREMIUM" + "AAD_PREMIUM_P2" + UPDATECOMMENTBLOCK + Run the Tools\Update-StandardsComments.ps1 script to update this comment block + .LINK + https://docs.cipp.app/user-documentation/tenant/standards/alignment/templates/available-standards + #> + + param($Tenant, $Settings) + $TestResult = Test-CIPPStandardLicense -StandardName 'DisableInactiveUsers' -TenantFilter $Tenant -Preset Entra + + if ($TestResult -eq $false) { + foreach ($Template in $Settings.TemplateList) { + Set-CIPPStandardsCompareField -FieldName 'standards.DisableInactiveUsers' -FieldValue 'This tenant does not have the required license for this standard.' -Tenant $Tenant + } + return $true + } + + $checkDays = if ($Settings.days) { [int]$Settings.days } else { 180 } + if ($checkDays -lt 30) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "DisableInactiveUsers: days ($checkDays) is below the minimum of 30 days. Skipping run to prevent mass user changes." -Sev Error + return + } + $Days = (Get-Date).AddDays(-$checkDays).ToUniversalTime() + $Lookup = $Days.ToString('o') + $AuditLookup = (Get-Date).AddDays(-7).ToUniversalTime().ToString('o') + + try { + $GraphRequest = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/users?`$filter=createdDateTime le $Lookup and userType eq 'Member' and accountEnabled eq true&`$select=id,userPrincipalName,displayName,signInActivity,mail,userType,accountEnabled,createdDateTime,onPremisesSyncEnabled" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant + + $InactiveUsers = foreach ($user in $GraphRequest) { + if ($user.onPremisesSyncEnabled -eq $true) { continue } + + # Missing signInActivity means incomplete Graph data — do not treat as never signed in + if (-not $user.signInActivity) { continue } + + if ($user.signInActivity.lastSuccessfulSignInDateTime) { + $lastSignIn = [datetime]$user.signInActivity.lastSuccessfulSignInDateTime + if ($lastSignIn.ToUniversalTime() -le $Days) { + $user | Add-Member -NotePropertyName 'EnrichedLastSignInDateTime' -NotePropertyValue $user.signInActivity.lastSuccessfulSignInDateTime -Force + $user | Add-Member -NotePropertyName 'NeverSignedIn' -NotePropertyValue $false -Force + $user + } + } else { + # signInActivity present but no successful sign-in; createdDateTime already <= $Days via server-side filter + $user | Add-Member -NotePropertyName 'EnrichedLastSignInDateTime' -NotePropertyValue $null -Force + $user | Add-Member -NotePropertyName 'NeverSignedIn' -NotePropertyValue $true -Force + $user + } + } + $GraphRequest = @($InactiveUsers) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the DisableInactiveUsers state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + $AuditResults = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/auditLogs/directoryAudits?`$filter=activityDisplayName eq 'Enable account' and activityDateTime ge $AuditLookup" -scope 'https://graph.microsoft.com/.default' -tenantid $Tenant + $RecentlyReactivatedUsers = @(foreach ($AuditEntry in $AuditResults) { $AuditEntry.targetResources[0].id }) | Select-Object -Unique + + $GraphRequest = @($GraphRequest | Where-Object { -not ($RecentlyReactivatedUsers -contains $_.id) }) + + if ($Settings.remediate -eq $true) { + if ($GraphRequest.Count -gt 0) { + $UpdateDB = $false + $int = 0 + $BulkRequests = foreach ($user in $GraphRequest) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($user.id)" + body = @{ accountEnabled = $false } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + try { + $BulkResults = New-GraphBulkRequest -tenantid $Tenant -Requests @($BulkRequests) + + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $result = $BulkResults[$i] + $user = $GraphRequest[$i] + + if ($result.status -eq 200 -or $result.status -eq 204) { + $user.accountEnabled = $false + $UpdateDB = $true + $reason = if ($user.NeverSignedIn) { + "never signed in; account created $($user.createdDateTime)" + } else { + "last sign-in: $($user.EnrichedLastSignInDateTime)" + } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Disabled inactive user $($user.userPrincipalName) ($($user.id)). Reason: $reason" -sev Info + } else { + $errorMsg = if ($result.body.error.message) { $result.body.error.message } else { "Unknown error (Status: $($result.status))" } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to disable inactive user $($user.userPrincipalName) ($($user.id)): $errorMsg" -sev Error + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to process bulk disable inactive users request: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + if ($UpdateDB) { + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning + } + } + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "No member accounts inactive longer than $checkDays days - all cloud-only member accounts are already compliant." -sev Info + } + } + + if ($Settings.alert -eq $true) { + $AlertUsers = @($GraphRequest | Where-Object { $_.accountEnabled }) + if ($AlertUsers.Count -gt 0) { + $Filtered = $AlertUsers | Select-Object -Property userPrincipalName, id, displayName, signInActivity, EnrichedLastSignInDateTime, NeverSignedIn, mail, userType, accountEnabled, createdDateTime, onPremisesSyncEnabled + $NeverSignedInCount = @($Filtered | Where-Object { $_.NeverSignedIn }).Count + $StaleCount = $Filtered.Count - $NeverSignedInCount + $AlertMessage = "Inactive member accounts found: $($AlertUsers.Count) total ($StaleCount inactive >$checkDays days, $NeverSignedInCount never signed in and older than $checkDays days)" + Write-StandardsAlert -message $AlertMessage -object $Filtered -tenant $Tenant -standardName 'DisableInactiveUsers' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "No inactive member accounts found (threshold: $checkDays days)." -sev Info + } + } + + if ($Settings.report -eq $true) { + $Filtered = $GraphRequest | Where-Object { $_.accountEnabled } | Select-Object -Property userPrincipalName, id, displayName, signInActivity, EnrichedLastSignInDateTime, NeverSignedIn, mail, userType, accountEnabled, createdDateTime, onPremisesSyncEnabled + $NeverSignedInUsers = @($Filtered | Where-Object { $_.NeverSignedIn }) + $StaleSignIns = @($Filtered | Where-Object { -not $_.NeverSignedIn }) + + $CurrentValue = [PSCustomObject]@{ + UsersDisabledAfterDays = $checkDays + UsersDisabledAccountCount = $Filtered.Count + UsersStaleSignInCount = $StaleSignIns.Count + UsersNeverSignedInCount = $NeverSignedInUsers.Count + UsersDisabledAccountDetails = @($Filtered) + UsersNeverSignedInDetails = $NeverSignedInUsers + } + + $ExpectedValue = [PSCustomObject]@{ + UsersDisabledAfterDays = $checkDays + UsersDisabledAccountCount = 0 + UsersStaleSignInCount = 0 + UsersNeverSignedInCount = 0 + UsersDisabledAccountDetails = @() + UsersNeverSignedInDetails = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.DisableInactiveUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant + Add-CIPPBPAField -FieldName 'DisableInactiveUsers' -FieldValue $Filtered -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 index 43f21d705d6b0..f7c66ee3574d7 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableM365GroupUsers.ps1 @@ -7,8 +7,8 @@ function Invoke-CIPPStandardDisableM365GroupUsers { .SYNOPSIS (Label) Disable M365 Group creation by users .DESCRIPTION - (Helptext) Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc - (DocsDescription) Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc + (Helptext) Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc. Optionally allows members of a specific security group to keep creating groups (GroupCreationAllowedGroupId). + (DocsDescription) Users by default are allowed to create M365 groups. This restricts M365 group creation to certain admin roles. This disables the ability to create Teams, SharePoint sites, Planner, etc. Optionally, a security group can be named whose members remain allowed to create groups; the group is resolved by display name in each tenant and can be created automatically when it does not exist. When no group is named, the existing GroupCreationAllowedGroupId value in the tenant is left untouched. .NOTES CAT Entra (AAD) Standards @@ -16,8 +16,10 @@ function Invoke-CIPPStandardDisableM365GroupUsers { "CISA (MS.AAD.21.1v1)" "ZTNA21868" 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. + 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. An approved group of designated users can optionally retain the ability to create groups. ADDEDCOMPONENT + {"type":"textField","name":"standards.DisableM365GroupUsers.AllowedGroupName","label":"Optional: name of the group whose members may still create M365 groups","required":false} + {"type":"switch","name":"standards.DisableM365GroupUsers.CreateGroup","label":"Create the allowed group if it does not exist","required":false} IMPACT Low Impact ADDEDDATE @@ -55,11 +57,57 @@ function Invoke-CIPPStandardDisableM365GroupUsers { return } + # Optional: a group whose members remain allowed to create M365 groups + # (GroupCreationAllowedGroupId). Resolved by display name per tenant, since group ids + # differ between tenants. When no name is configured the setting is left untouched, + # which keeps existing deployments unchanged. + $AllowedGroupName = [string]$Settings.AllowedGroupName + $DesiredGroupId = $null + if (-not [string]::IsNullOrWhiteSpace($AllowedGroupName)) { + try { + $GroupFilter = [System.Uri]::EscapeDataString("displayName eq '$($AllowedGroupName -replace "'", "''")'") + $AllowedGroup = @(New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/groups?`$filter=$GroupFilter&`$select=id,displayName" -tenantid $Tenant) + if ($AllowedGroup.Count -gt 1) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Multiple groups named '$AllowedGroupName' found, using the first match ($($AllowedGroup[0].id))." -sev Warning + } + $DesiredGroupId = $AllowedGroup | Select-Object -First 1 -ExpandProperty id + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Could not resolve the allowed group '$AllowedGroupName': $ErrorMessage" -sev Error + } + } + + $CurrentEnableGroupCreation = ($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value + $CurrentAllowedGroupId = ($CurrentState.values | Where-Object { $_.name -eq 'GroupCreationAllowedGroupId' }).value + $CreationDisabled = $CurrentEnableGroupCreation -eq 'false' + # Only enforce the allowed group when one is configured; a configured name that cannot be + # resolved (and is not set for creation) counts as non-compliant so it surfaces in alerts + $AllowedGroupCorrect = [string]::IsNullOrWhiteSpace($AllowedGroupName) -or ($DesiredGroupId -and $CurrentAllowedGroupId -eq $DesiredGroupId) + $StateIsCorrect = $CreationDisabled -and $AllowedGroupCorrect + if ($Settings.remediate -eq $true) { - if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { + if ($StateIsCorrect) { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are already disabled from creating M365 Groups.' -sev Info } else { try { + # Create the allowed group when requested and it does not exist yet + if (-not [string]::IsNullOrWhiteSpace($AllowedGroupName) -and -not $DesiredGroupId -and $Settings.CreateGroup -eq $true) { + $GroupUsername = ($AllowedGroupName -replace '[^a-zA-Z0-9]', '') + if ($GroupUsername.Length -gt 64) { $GroupUsername = $GroupUsername.Substring(0, 64) } + $GroupObject = @{ + groupType = 'generic' + displayName = $AllowedGroupName + username = $GroupUsername + securityEnabled = $true + } + $NewGroup = New-CIPPGroup -GroupObject $GroupObject -TenantFilter $Tenant -APIName 'Standards' + $DesiredGroupId = $NewGroup.GroupId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Created group '$AllowedGroupName' ($DesiredGroupId) for allowed M365 group creation." -sev Info + } + if (-not [string]::IsNullOrWhiteSpace($AllowedGroupName) -and -not $DesiredGroupId) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "The allowed group '$AllowedGroupName' does not exist in the tenant and 'Create the allowed group' is not enabled. Group creation will be disabled without an allowed group." -sev Warning + } + if (!$CurrentState) { # If no current configuration is found, we set it to the default template supplied by MS. $CurrentState = '{"id":"","displayName":"Group.Unified","templateId":"62375ab9-6b52-47ed-826b-58e47e0e304b","values":[{"name":"NewUnifiedGroupWritebackDefault","value":"true"},{"name":"EnableMIPLabels","value":"false"},{"name":"CustomBlockedWordsList","value":""},{"name":"EnableMSStandardBlockedWords","value":"false"},{"name":"ClassificationDescriptions","value":""},{"name":"DefaultClassification","value":""},{"name":"PrefixSuffixNamingRequirement","value":""},{"name":"AllowGuestsToBeGroupOwner","value":"false"},{"name":"AllowGuestsToAccessGroups","value":"true"},{"name":"GuestUsageGuidelinesUrl","value":""},{"name":"GroupCreationAllowedGroupId","value":""},{"name":"AllowToAddGuests","value":"true"},{"name":"UsageGuidelinesUrl","value":""},{"name":"ClassificationList","value":""},{"name":"EnableGroupCreation","value":"true"}]}' @@ -67,9 +115,16 @@ function Invoke-CIPPStandardDisableM365GroupUsers { $CurrentState = (New-GraphGetRequest -Uri 'https://graph.microsoft.com/beta/settings' -tenantid $tenant) | Where-Object -Property displayname -EQ 'Group.unified' } ($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value = 'false' + if ($DesiredGroupId) { + ($CurrentState.values | Where-Object { $_.name -eq 'GroupCreationAllowedGroupId' }).value = "$DesiredGroupId" + } $body = "{values : $($CurrentState.values | ConvertTo-Json -Compress)}" $null = New-GraphPostRequest -tenantid $tenant -asApp $true -Uri "https://graph.microsoft.com/beta/settings/$($CurrentState.id)" -Type patch -Body $body -ContentType 'application/json' - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled users from creating M365 Groups.' -sev Info + if ($DesiredGroupId) { + Write-LogMessage -API 'Standards' -tenant $tenant -message "Disabled users from creating M365 Groups. Members of '$AllowedGroupName' remain allowed to create groups." -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Disabled users from creating M365 Groups.' -sev Info + } } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable users from creating M365 Groups: $ErrorMessage" -sev 'Error' @@ -78,38 +133,32 @@ function Invoke-CIPPStandardDisableM365GroupUsers { } if ($Settings.alert -eq $true) { - if ($CurrentState) { - if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are disabled from creating M365 Groups.' -sev Info - } else { - Write-StandardsAlert -message 'Users are not disabled from creating M365 Groups.' -object $CurrentState -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not disabled from creating M365 Groups.' -sev Info - } + if ($StateIsCorrect) { + Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are disabled from creating M365 Groups.' -sev Info + } elseif ($CreationDisabled -and -not $AllowedGroupCorrect) { + Write-StandardsAlert -message "Users are disabled from creating M365 Groups, but the allowed group '$AllowedGroupName' is not configured as GroupCreationAllowedGroupId." -object ($CurrentState ?? @{CurrentState = $null }) -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $tenant -message "Users are disabled from creating M365 Groups, but the allowed group '$AllowedGroupName' is not configured." -sev Info } else { - Write-StandardsAlert -message 'Users are not disabled from creating M365 Groups.' -object @{CurrentState = $null } -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId + Write-StandardsAlert -message 'Users are not disabled from creating M365 Groups.' -object ($CurrentState ?? @{CurrentState = $null }) -tenant $tenant -standardName 'DisableM365GroupUsers' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $tenant -message 'Users are not disabled from creating M365 Groups.' -sev Info } } if ($Settings.report -eq $true) { - if ($CurrentState) { - if (($CurrentState.values | Where-Object { $_.name -eq 'EnableGroupCreation' }).value -eq 'false') { - $CurrentState = $true - } else { - $CurrentState = $false - } - } else { - $CurrentState = $false - } - $CurrentValue = [PSCustomObject]@{ - M365GroupUserCreationDisabled = $CurrentState + M365GroupUserCreationDisabled = $CreationDisabled } $ExpectedValue = [PSCustomObject]@{ M365GroupUserCreationDisabled = $true } + # Only include the allowed-group comparison when a group is configured, so existing + # deployments without one keep their original compare shape (backward compatible) + if (-not [string]::IsNullOrWhiteSpace($AllowedGroupName)) { + $CurrentValue | Add-Member -NotePropertyName AllowedCreationGroupCorrect -NotePropertyValue ([bool]$AllowedGroupCorrect) + $ExpectedValue | Add-Member -NotePropertyName AllowedCreationGroupCorrect -NotePropertyValue $true + } Set-CIPPStandardsCompareField -FieldName 'standards.DisableM365GroupUsers' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'DisableM365GroupUsers' -FieldValue $CurrentState -StoreAs bool -Tenant $tenant + Add-CIPPBPAField -FieldName 'DisableM365GroupUsers' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 index fbf7eeabbdc44..21291622be033 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableQRCodePin.ps1 @@ -48,6 +48,8 @@ function Invoke-CIPPStandardDisableQRCodePin { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'QRCodePin' -Enabled $false } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable QR Code Pin authentication method. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 index 4011cb056966e..0b3b7edd89ca9 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableSMS.ps1 @@ -52,6 +52,8 @@ function Invoke-CIPPStandardDisableSMS { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'SMS' -Enabled $false } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable SMS authentication method. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 index 45dd6554db462..25ac0a40ff8e3 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisableVoice.ps1 @@ -52,6 +52,8 @@ function Invoke-CIPPStandardDisableVoice { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Voice' -Enabled $false } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable Voice authentication method. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 index a399074732822..66a2c5e1db846 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardDisablex509Certificate.ps1 @@ -47,6 +47,8 @@ function Invoke-CIPPStandardDisablex509Certificate { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'x509Certificate' -Enabled $false } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to disable x509Certificate authentication method. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 index 233be0342b786..09448f16232ef 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableFIDO2.ps1 @@ -61,6 +61,8 @@ function Invoke-CIPPStandardEnableFIDO2 { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'Fido2' -Enabled $true } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable FIDO2 Support. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 index b4526f25a0462..a2df0cefad8cf 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardEnableHardwareOAuth.ps1 @@ -47,6 +47,8 @@ function Invoke-CIPPStandardEnableHardwareOAuth { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'HardwareOath' -Enabled $true } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable HardwareOAuth Support. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneAppTemplateDeploy.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneAppTemplateDeploy.ps1 index cc1b5013d9e57..a416b4879cfe9 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneAppTemplateDeploy.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneAppTemplateDeploy.ps1 @@ -52,6 +52,9 @@ function Invoke-CIPPStandardIntuneAppTemplateDeploy { $Table = Get-CIPPTable -TableName 'templates' $MissingApps = [System.Collections.Generic.List[PSCustomObject]]::new() $CurrentAppNames = @($CurrentApps.displayName) + # Office is a singleton per tenant that Graph always names 'Microsoft 365 Apps for Windows 10 + # and later', which never matches the name the template stores, so track it by type instead. + $OfficeDeployed = @($CurrentApps | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.officeSuiteApp' }).Count -gt 0 foreach ($TemplateId in $TemplateIds) { $Entity = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'AppTemplate' and RowKey eq '$TemplateId'" @@ -69,14 +72,17 @@ function Invoke-CIPPStandardIntuneAppTemplateDeploy { for ($i = 0; $i -lt $AppTypes.Count; $i++) { $RawConfig = $AppConfigs[$i] $Config = if ($RawConfig -is [string]) { $RawConfig | ConvertFrom-Json -Depth 100 } else { $RawConfig } + $AppType = [string]$AppTypes[$i] $DisplayName = [string]($Config.ApplicationName ?? $Config.displayName ?? $AppNames[$i]) - if ($DisplayName -notin $CurrentAppNames) { + $IsDeployed = if ($AppType -eq 'officeApp') { $OfficeDeployed } else { $DisplayName -in $CurrentAppNames } + + if (-not $IsDeployed) { $MissingApps.Add([PSCustomObject]@{ TemplateId = [string]$TemplateId TemplateName = [string]$TemplateName AppName = [string]$DisplayName - AppType = [string]$AppTypes[$i] + AppType = $AppType Config = $Config }) } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 index d21bee26084e0..fa01079680b95 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardIntuneTemplate.ps1 @@ -78,18 +78,7 @@ function Invoke-CIPPStandardIntuneTemplate { # Fallback: infer type from RAWJson content when stored template has no Type if (-not $TemplateType) { - try { - $parsedRaw = $rawJsonFromTemplate | ConvertFrom-Json -ErrorAction SilentlyContinue - $odataType = $parsedRaw.'@odata.type' - $TemplateType = if ($null -ne $parsedRaw.settings -and $null -ne $parsedRaw.technologies) { 'Catalog' } - elseif ($null -ne $parsedRaw.scheduledActionsForRule -or $odataType -match 'CompliancePolicy') { 'deviceCompliancePolicies' } - elseif ($odataType -match 'windowsDriverUpdateProfile') { 'windowsDriverUpdateProfiles' } - elseif ($odataType -match 'ManagedApp|managedAppProtection') { 'AppProtection' } - elseif ($odataType -match 'deviceConfiguration|#microsoft\.graph\.\w+Configuration$') { 'Device' } - else { $null } - } catch { - $TemplateType = $null - } + $TemplateType = Get-CIPPIntuneTemplateType -Type $TemplateType -RawJson $rawJsonFromTemplate if ($TemplateType) { Write-Information "[IntuneTemplate][$Tenant] Inferred template type '$TemplateType' from content for '$displayname'" } else { @@ -116,11 +105,16 @@ function Invoke-CIPPStandardIntuneTemplate { if ($ExistingPolicy) { try { - $RawJSON = Get-CIPPTextReplacement -Text $RawJSON -TenantFilter $Tenant + $RawJSON = Get-CIPPTextReplacement -Text $RawJSON -TenantFilter $Tenant -EscapeForJson $JSONExistingPolicy = $ExistingPolicy.cippconfiguration | ConvertFrom-Json $JSONTemplate = $RawJSON | ConvertFrom-Json $Compare = Compare-CIPPIntuneObject -ReferenceObject $JSONTemplate -DifferenceObject $JSONExistingPolicy -compareType $TemplateType -ErrorAction SilentlyContinue } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to compare Intune Template $displayname against the existing policy: $($_.Exception.Message)" -sev 'Error' + $Compare = [pscustomobject]@{ + MatchFailed = $true + Difference = "Comparison failed: $($_.Exception.Message)" + } } Write-Information "[IntuneTemplate][$Tenant] Compare '$displayname': $([int]($sw.Elapsed - $lap).TotalMilliseconds)ms" $lap = $sw.Elapsed diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 index 17921a7878a31..afac49b65a297 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardNudgeMFA.ps1 @@ -7,8 +7,8 @@ function Invoke-CIPPStandardNudgeMFA { .SYNOPSIS (Label) Sets the state for the request to setup Authenticator .DESCRIPTION - (Helptext) Sets the state of the registration campaign for the tenant - (DocsDescription) Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in. + (Helptext) Sets the state of the registration campaign for the tenant, including the targeted authentication method, snooze settings and include/exclude groups. Leave include/exclude blank to keep the groups currently configured in the tenant, or use 'AllUsers' to target all users. + (DocsDescription) Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the targeted authentication method (Microsoft Authenticator or a Passkey) during sign-in. Supports limiting the number of snoozes, and including or excluding specific groups (by display name). .NOTES CAT Entra (AAD) Standards @@ -17,8 +17,12 @@ function Invoke-CIPPStandardNudgeMFA { 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":"autoComplete","multiple":false,"creatable":false,"label":"Registration campaign state","name":"standards.NudgeMFA.state","options":[{"label":"Enabled","value":"enabled"},{"label":"Disabled","value":"disabled"}]} + {"type":"autoComplete","multiple":false,"creatable":false,"required":false,"label":"Authentication method to nudge users to register (default is Microsoft Authenticator)","name":"standards.NudgeMFA.targetedAuthenticationMethod","options":[{"label":"Microsoft Authenticator","value":"microsoftAuthenticator"},{"label":"Passkey (FIDO2)","value":"fido2"}],"condition":{"field":"standards.NudgeMFA.state","compareType":"valueEq","compareValue":"enabled"}} {"type":"number","name":"standards.NudgeMFA.snoozeDurationInDays","label":"Number of days to allow users to skip registering Authenticator (0-14, default is 1)","defaultValue":1,"validators":{"min":{"value":0,"message":"Minimum value is 0"},"max":{"value":14,"message":"Maximum value is 14"}}} + {"type":"switch","name":"standards.NudgeMFA.enforceRegistrationAfterAllowedSnoozes","label":"Limited number of snoozes (require registration after 3 snoozes)","defaultValue":true,"condition":{"field":"standards.NudgeMFA.state","compareType":"valueEq","compareValue":"enabled"}} + {"type":"textField","name":"standards.NudgeMFA.includeTargets","label":"Include groups (comma separated group names, 'AllUsers' for everyone, blank = keep current targets)","required":false,"condition":{"field":"standards.NudgeMFA.state","compareType":"valueEq","compareValue":"enabled"}} + {"type":"textField","name":"standards.NudgeMFA.excludeTargets","label":"Exclude groups (comma separated group names, blank = keep current exclusions)","required":false,"condition":{"field":"standards.NudgeMFA.state","compareType":"valueEq","compareValue":"enabled"}} IMPACT Low Impact ADDEDDATE @@ -34,45 +38,138 @@ function Invoke-CIPPStandardNudgeMFA { param($Tenant, $Settings) + # NOTE: The ADDEDCOMPONENT conditions above use compareType 'valueEq' rather than the usual 'is'. + # The state field is an autoComplete which stores a {label, value} object, so 'is' (deep equality + # against the raw string) never matches; 'valueEq' compares against the object's .value property + # and is supported by CippFormCondition. Changing state to a 'select' field would allow 'is', but + # would break existing saved NudgeMFA templates that already store the object shape. + + # Resolves comma separated group name entries to registration campaign targets + function Resolve-NudgeMFATarget { + param($Entries, $TenantFilter) + $Resolved = [System.Collections.Generic.List[hashtable]]::new() + $Failed = $false + foreach ($Entry in $Entries) { + try { + if ($Entry -match '^(all_users|allusers|all users)$') { + $Resolved.Add(@{ id = 'all_users'; targetType = 'group' }) + } else { + $EscapedName = $Entry -replace "'", "''" + $GroupFilter = [System.Uri]::EscapeDataString("startsWith(displayName,'$EscapedName')") + $MatchedGroups = @(New-GraphGetRequest -uri "https://graph.microsoft.com/beta/groups?`$select=id,displayName&`$filter=$GroupFilter" -tenantid $TenantFilter) + if ($MatchedGroups.Count -gt 0) { + foreach ($Group in $MatchedGroups) { $Resolved.Add(@{ id = $Group.id; targetType = 'group' }) } + if ($MatchedGroups.Count -gt 1) { + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "NudgeMFA: Multiple groups matched '$Entry': $($MatchedGroups.displayName -join ', ')" -sev Info + } + } else { + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "NudgeMFA: No group found matching '$Entry'" -sev Warning + $Failed = $true + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $TenantFilter -message "NudgeMFA: Failed to resolve target '$Entry'. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + $Failed = $true + } + } + return [PSCustomObject]@{ Targets = $Resolved; Failed = $Failed } + } + # Get state value using null-coalescing operator $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) + $CurrentCampaign = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign } 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 $_) return } + $SnoozeDuration = [int]($Settings.snoozeDurationInDays ?? 1) + $EnforceAfterSnoozes = if ($null -eq $Settings.enforceRegistrationAfterAllowedSnoozes) { $true } else { [bool]$Settings.enforceRegistrationAfterAllowedSnoozes } + # Fall back to the method already targeted in the tenant so existing templates keep their current campaign type + $TargetedMethod = $Settings.targetedAuthenticationMethod.value ?? $Settings.targetedAuthenticationMethod ?? (@($CurrentCampaign.includeTargets).targetedAuthenticationMethod | Select-Object -First 1) ?? 'microsoftAuthenticator' + + # NOTE: Unlike the AuthenticationMethods standard (where a blank group field means "All Users"), + # blank include/exclude here means "keep the targets currently configured in the tenant". This is + # deliberate: NudgeMFA predates these fields and existing deployments would otherwise have their + # portal-configured targeting overwritten to all_users on the next run. Use the literal 'AllUsers' + # entry to target everyone explicitly. + $IncludeEntries = @(([string]($Settings.includeTargets ?? '')) -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ }) + $ExcludeEntries = @(([string]($Settings.excludeTargets ?? '')) -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ }) + + # $Remediation*Targets are passed to Set-CIPPRegistrationCampaign ($null = keep current targets); + # $Desired*Targets are the fully resolved lists used for the compliance comparison below. + if ($IncludeEntries.Count -gt 0) { + $IncludeResolution = Resolve-NudgeMFATarget -Entries $IncludeEntries -TenantFilter $Tenant + if ($IncludeResolution.Failed -or $IncludeResolution.Targets.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'NudgeMFA: Could not resolve all include groups, skipping to avoid removing intended targets.' -sev Error + return + } + $RemediationIncludeTargets = @($IncludeResolution.Targets) + $DesiredIncludeTargets = @($RemediationIncludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType; targetedAuthenticationMethod = $TargetedMethod } }) + } else { + $RemediationIncludeTargets = $null + $DesiredIncludeTargets = @($CurrentCampaign.includeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType; targetedAuthenticationMethod = $TargetedMethod } }) + if ($DesiredIncludeTargets.Count -eq 0) { + $DesiredIncludeTargets = @(@{ id = 'all_users'; targetType = 'group'; targetedAuthenticationMethod = $TargetedMethod }) + } + } + + $ManageExcludeTargets = $ExcludeEntries.Count -gt 0 + if ($ManageExcludeTargets) { + $ExcludeResolution = Resolve-NudgeMFATarget -Entries $ExcludeEntries -TenantFilter $Tenant + if ($ExcludeResolution.Failed) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'NudgeMFA: Could not resolve all exclude groups, skipping to avoid excluding the wrong groups.' -sev Error + return + } + $RemediationExcludeTargets = @($ExcludeResolution.Targets) + $DesiredExcludeTargets = @($RemediationExcludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) + } else { + $RemediationExcludeTargets = $null + $DesiredExcludeTargets = @($CurrentCampaign.excludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) + } + + $CurrentIncludeIds = @($CurrentCampaign.includeTargets.id) + $DesiredIncludeIds = @($DesiredIncludeTargets.id) + $IncludeIsCorrect = ($CurrentIncludeIds.Count -eq $DesiredIncludeIds.Count) -and + (-not (Compare-Object -ReferenceObject @($DesiredIncludeIds | Sort-Object) -DifferenceObject @($CurrentIncludeIds | Sort-Object) -ErrorAction SilentlyContinue)) + $MethodIsCorrect = @($CurrentCampaign.includeTargets | Where-Object { $_.targetedAuthenticationMethod -ne $TargetedMethod }).Count -eq 0 + + if ($ManageExcludeTargets) { + $CurrentExcludeIds = @($CurrentCampaign.excludeTargets.id) + $DesiredExcludeIds = @($DesiredExcludeTargets.id) + $ExcludeIsCorrect = ($CurrentExcludeIds.Count -eq $DesiredExcludeIds.Count) -and + (-not (Compare-Object -ReferenceObject @($DesiredExcludeIds | Sort-Object) -DifferenceObject @($CurrentExcludeIds | Sort-Object) -ErrorAction SilentlyContinue)) + } else { + $ExcludeIsCorrect = $true + } + + $StateIsCorrect = ($CurrentCampaign.state -eq $State) -and + ([int]$CurrentCampaign.snoozeDurationInDays -eq $SnoozeDuration) -and + ([bool]$CurrentCampaign.enforceRegistrationAfterAllowedSnoozes -eq $EnforceAfterSnoozes) -and + $IncludeIsCorrect -and $MethodIsCorrect -and $ExcludeIsCorrect + if ($Settings.remediate -eq $true) { $StateName = $State.Substring(0, 1).ToUpper() + $State.Substring(1) if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is already set to $State with a snooze duration of $($Settings.snoozeDurationInDays)." -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is already set to $State targeting $TargetedMethod with a snooze duration of $SnoozeDuration." -sev Info } else { try { - $GraphRequest = @{ - tenantid = $Tenant - uri = 'https://graph.microsoft.com/beta/policies/authenticationMethodsPolicy' - AsApp = $false - Type = 'PATCH' - ContentType = 'application/json' - Body = @{ - registrationEnforcement = @{ - authenticationMethodsRegistrationCampaign = @{ - state = $State - snoozeDurationInDays = $Settings.snoozeDurationInDays - enforceRegistrationAfterAllowedSnoozes = $true - includeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.includeTargets - excludeTargets = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.excludeTargets - } - } - } | ConvertTo-Json -Depth 10 -Compress + $CampaignParams = @{ + Tenant = $Tenant + State = $State + TargetedAuthenticationMethod = $TargetedMethod + SnoozeDurationInDays = $SnoozeDuration + EnforceRegistrationAfterAllowedSnoozes = $EnforceAfterSnoozes + IncludeTargets = $RemediationIncludeTargets + ExcludeTargets = $RemediationExcludeTargets + APIName = 'Standards' } - New-GraphPostRequest @GraphRequest - Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge with a snooze duration of $($Settings.snoozeDurationInDays)" -sev Info + $null = Set-CIPPRegistrationCampaign @CampaignParams + Write-LogMessage -API 'Standards' -tenant $Tenant -message "$StateName Authenticator App Nudge targeting $TargetedMethod with a snooze duration of $SnoozeDuration" -sev Info } catch { $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 @@ -82,21 +179,29 @@ function Invoke-CIPPStandardNudgeMFA { if ($Settings.alert -eq $true) { if ($StateIsCorrect -eq $true) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is configured correctly: $($CurrentCampaign.state) targeting $TargetedMethod with a snooze duration of $($CurrentCampaign.snoozeDurationInDays)" -sev Info } else { - Write-StandardsAlert -message "Authenticator App Nudge is not enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -object ($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign | Select-Object snoozeDurationInDays, state) -tenant $Tenant -standardName 'NudgeMFA' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is not enabled with a snooze duration of $($CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays)" -sev Info + Write-StandardsAlert -message "Authenticator App Nudge is not configured as expected: state $($CurrentCampaign.state), snooze duration $($CurrentCampaign.snoozeDurationInDays)" -object ($CurrentCampaign | Select-Object state, snoozeDurationInDays, enforceRegistrationAfterAllowedSnoozes, includeTargets, excludeTargets) -tenant $Tenant -standardName 'NudgeMFA' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Authenticator App Nudge is not configured as expected: state $($CurrentCampaign.state), snooze duration $($CurrentCampaign.snoozeDurationInDays)" -sev Info } } if ($Settings.report -eq $true) { $CurrentValue = @{ - snoozeDurationInDays = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.snoozeDurationInDays - state = $CurrentState.registrationEnforcement.authenticationMethodsRegistrationCampaign.state + state = $CurrentCampaign.state + snoozeDurationInDays = $CurrentCampaign.snoozeDurationInDays + enforceRegistrationAfterAllowedSnoozes = [bool]$CurrentCampaign.enforceRegistrationAfterAllowedSnoozes + targetedAuthenticationMethod = (@($CurrentCampaign.includeTargets).targetedAuthenticationMethod | Select-Object -First 1) + includeTargets = @($CurrentCampaign.includeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) + excludeTargets = @($CurrentCampaign.excludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) } $ExpectedValue = @{ - snoozeDurationInDays = $Settings.snoozeDurationInDays - state = $State + state = $State + snoozeDurationInDays = $SnoozeDuration + enforceRegistrationAfterAllowedSnoozes = $EnforceAfterSnoozes + targetedAuthenticationMethod = $TargetedMethod + includeTargets = @($DesiredIncludeTargets | ForEach-Object { @{ id = $_.id; targetType = $_.targetType } }) + excludeTargets = $DesiredExcludeTargets } Set-CIPPStandardsCompareField -FieldName 'standards.NudgeMFA' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant Add-CIPPBPAField -FieldName 'NudgeMFA' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 index f986c4446e3c2..c9bc356ccec04 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsent.ps1 @@ -7,8 +7,8 @@ function Invoke-CIPPStandardOauthConsent { .SYNOPSIS (Label) Require admin consent for applications (Prevent OAuth phishing) .DESCRIPTION - (Helptext) Disables users from being able to consent to applications, except for those specified in the field below - (DocsDescription) Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications. + (Helptext) Disables users from being able to consent to applications, except for those specified in the field below. This standard conflicts with the "Allow users to consent to applications with low security risk" standard; only one of the two should be assigned per tenant. + (DocsDescription) Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications. This standard conflicts with the "Allow users to consent to applications with low security risk" (OauthConsentLowSec) standard. Enabling both on the same tenant causes a remediation conflict, so only assign one. .NOTES CAT Entra (AAD) Standards @@ -66,7 +66,13 @@ function Invoke-CIPPStandardOauthConsent { } $StateIsCorrect = if ($State.permissionGrantPolicyIdsAssignedToDefaultUserRole -eq 'ManagePermissionGrantsForSelf.cipp-consent-policy') { $true } else { $false } - if ($Settings.remediate -eq $true) { + $Standards = Get-CIPPStandards -Tenant $tenant + $ConflictingStandard = $Standards | Where-Object -Property Standard -EQ 'OauthConsentLowSec' + + if ($Settings.remediate -eq $true -and $ConflictingStandard -and $State.permissionGrantPolicyIdsAssignedToDefaultUserRole -contains 'ManagePermissionGrantsForSelf.microsoft-user-default-low') { + # A conflicting low security OAuth consent standard is enabled and currently applied. Skip remediation so we don't fight the other standard, but still fall through to alert/report. + Write-LogMessage -API 'Standards' -tenant $tenant -message 'There is a conflicting OAuth Consent policy standard enabled for this tenant. Remove the Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure) standard from this tenant to apply the require admin consent standard.' -sev Error + } elseif ($Settings.remediate -eq $true) { $DidRemediationChange = $false try { if (-not $CompareIncludesFetched) { @@ -222,6 +228,14 @@ function Invoke-CIPPStandardOauthConsent { permissionGrantPolicyIdsAssignedToDefaultUserRole = $State.permissionGrantPolicyIdsAssignedToDefaultUserRole includes = $CurrentIncludesForCompare } + # Add conflicting standard info if applicable + if ($ConflictingStandard) { + $CurrentValue.conflictingStandard = @{ + name = $ConflictingStandard.Standard + templateid = $ConflictingStandard.TemplateId + } + } + $ExpectedValue = @{ permissionGrantPolicyIdsAssignedToDefaultUserRole = @('ManagePermissionGrantsForSelf.cipp-consent-policy') includes = $ExpectedIncludesForCompare diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 index bd359c2bba5f4..186f02face965 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardOauthConsentLowSec.ps1 @@ -7,8 +7,8 @@ function Invoke-CIPPStandardOauthConsentLowSec { .SYNOPSIS (Label) Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure) .DESCRIPTION - (Helptext) Sets the default oauth consent level so users can consent to applications that have low risks. - (DocsDescription) Allows users to consent to applications with low assigned risk. + (Helptext) Sets the default oauth consent level so users can consent to applications that have low risks. This standard conflicts with the "Require admin consent for applications" standard; only one of the two should be assigned per tenant. + (DocsDescription) Allows users to consent to applications with low assigned risk. This standard conflicts with the "Require admin consent for applications (Prevent OAuth phishing)" (OauthConsent) standard. Enabling both on the same tenant causes a remediation conflict, so only assign one. .NOTES CAT Entra (AAD) Standards diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 index 6f40f3945f2ff..037e6a7334d35 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPWdisplayAppInformationRequiredState.ps1 @@ -55,8 +55,8 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { return } + # numberMatchingRequiredState is not graded: it is permanently enabled by Microsoft and can no longer be toggled $StateIsCorrect = ($CurrentState.state -eq 'enabled') -and - ($CurrentState.featureSettings.numberMatchingRequiredState.state -eq 'enabled') -and ($CurrentState.featureSettings.displayAppInformationRequiredState.state -eq 'enabled') if ($Settings.remediate -eq $true) { @@ -64,8 +64,10 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { Write-LogMessage -API 'Standards' -tenant $tenant -message 'Passwordless with Information and Number Matching is already enabled.' -sev Info } else { try { - Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'MicrosoftAuthenticator' -Enabled $true + Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'MicrosoftAuthenticator' -Enabled $true -MicrosoftAuthenticatorDisplayAppInfo 'enabled' } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable Passwordless with Information and Number Matching. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } @@ -83,12 +85,10 @@ function Invoke-CIPPStandardPWdisplayAppInformationRequiredState { Add-CIPPBPAField -FieldName 'PWdisplayAppInformationRequiredState' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $tenant $CurrentValue = @{ state = $CurrentState.state - numberMatchingRequiredState = $CurrentState.featureSettings.numberMatchingRequiredState.state displayAppInformationRequiredState = $CurrentState.featureSettings.displayAppInformationRequiredState.state } $ExpectedValue = @{ state = 'enabled' - numberMatchingRequiredState = 'enabled' displayAppInformationRequiredState = 'enabled' } Set-CIPPStandardsCompareField -FieldName 'standards.PWdisplayAppInformationRequiredState' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $tenant diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 index 0c6d45b2c5333..7e0fae4f45e78 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardPhishProtection.ps1 @@ -80,7 +80,8 @@ function Invoke-CIPPStandardPhishProtection { try { New-GraphPostRequest -tenantid $tenant -Uri "https://graph.microsoft.com/beta/organization/$($TenantId.customerId)/branding/localizations/" -ContentType 'application/json' -asApp $true -Type POST -Body $defaultBrandingBody -AddedHeaders $AddedHeaders } catch { - + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to create default branding localization. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } if ($currentBody -like "*$CSS*") { diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 index 6bf45cd7ee53b..d1d016111129e 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardQuarantineRequestAlert.ps1 @@ -95,7 +95,7 @@ function Invoke-CIPPStandardQuarantineRequestAlert { Write-LogMessage -API 'Standards' -Tenant $Tenant -Message 'Quarantine Request Alert is enabled' -sev Info } else { $Message = 'Quarantine Request Alert is not enabled.' - Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'QuarantineRequestAlerts' -standardId $Settings.standardId + Write-StandardsAlert -message $Message -object $CurrentState -tenant $Tenant -standardName 'QuarantineRequestAlert' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -Tenant $Tenant -Message $Message -sev Info } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 index aa9ede0c285b8..d38c25f56144a 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardRetentionPolicyTag.ps1 @@ -59,7 +59,7 @@ function Invoke-CIPPStandardRetentionPolicyTag { } $CurrentAgeLimitForRetention = if ($CurrentState.AgeLimitForRetention) { - ([timespan]$CurrentState.AgeLimitForRetention).TotalDays + [int]([timespan]$CurrentState.AgeLimitForRetention).TotalDays } $StateIsCorrect = ($CurrentState.Name -eq $PolicyName) -and diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardReusableSettingsTemplate.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardReusableSettingsTemplate.ps1 index c03242b0d0c79..99f4b13fa6705 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardReusableSettingsTemplate.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardReusableSettingsTemplate.ps1 @@ -65,15 +65,16 @@ function Invoke-CIPPStandardReusableSettingsTemplate { $TestResult = Test-CIPPStandardLicense -StandardName 'ReusableSettingsTemplate_general' -TenantFilter $Tenant -Preset Intune if ($TestResult -eq $false) { $settings.TemplateList | ForEach-Object { - $MissingLicenseMessage = "This tenant is missing one or more required licenses for this standard: $($RequiredCapabilities -join ', ')." - Set-CIPPStandardsCompareField -FieldName "standards.ReusableSettingsTemplate.$($_.value)" -FieldValue $MissingLicenseMessage -Tenant $Tenant + $MissingLicenseMessage = 'License Missing: This tenant is missing the required Intune license for this standard.' + Set-CIPPStandardsCompareField -FieldName "standards.ReusableSettingsTemplate.$($_.value)" -FieldValue $MissingLicenseMessage -LicenseAvailable $false -TenantFilter $Tenant } - Write-LogMessage -API 'Standards' -tenant $Tenant -message "Exiting as the correct license is not present for this standard. Missing: $($RequiredCapabilities -join ', ')" -sev 'Warning' + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Exiting as the correct license is not present for this standard.' -sev 'Warning' return $true } $Table = Get-CippTable -tablename 'templates' - $ExistingReusableSettings = New-GraphGETRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/reusablePolicySettings?$top=999' -tenantid $Tenant + # The list endpoint omits settingInstance unless explicitly selected, which would make every compare fail + $ExistingReusableSettings = New-GraphGETRequest -Uri 'https://graph.microsoft.com/beta/deviceManagement/reusablePolicySettings?$top=999&$select=id,displayName,description,settingDefinitionId,settingInstance,version' -tenantid $Tenant # Align with other template standards by resolving all selected templates upfront $SelectedTemplateIds = @($Settings.TemplateList.value) @@ -169,8 +170,15 @@ function Invoke-CIPPStandardReusableSettingsTemplate { if ($true -in $Settings.report) { foreach ($Template in $CompareList | Where-Object { $_.report -eq $true -or $_.remediate -eq $true }) { $id = $Template.templateId - $state = $Template.compare ? $Template.compare : $true - Set-CIPPStandardsCompareField -FieldName "standards.ReusableSettingsTemplate.$id" -FieldValue $state -TenantFilter $Tenant + $CurrentValue = @{ + displayName = $Template.displayname + isCompliant = if ($Template.compare) { $false } else { $true } + } + $ExpectedValue = @{ + displayName = $Template.displayname + isCompliant = $true + } + Set-CIPPStandardsCompareField -FieldName "standards.ReusableSettingsTemplate.$id" -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSensitiveInfoTypeTemplate.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSensitiveInfoTypeTemplate.ps1 index d61620b079365..b7bd969e0e982 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSensitiveInfoTypeTemplate.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSensitiveInfoTypeTemplate.ps1 @@ -50,36 +50,52 @@ function Invoke-CIPPStandardSensitiveInfoTypeTemplate { return } - if ($Settings.remediate -eq $true) { - foreach ($Template in @($Templates)) { - $null = Set-CIPPSensitiveInfoType -TenantFilter $Tenant -Template $Template -APIName 'Standards' + # Compare each template against the live SIT's rule pack and remediate only what drifts (or is + # missing). After a successful remediation, re-compare so the report/alert reflect the fixed state. + $Comparisons = foreach ($Template in @($Templates)) { + $Comparison = Compare-CIPPSensitiveInfoType -TenantFilter $Tenant -Template $Template + + if ($Settings.remediate -eq $true -and $Comparison.State -in @('Missing', 'Drift')) { + $DeployResult = Set-CIPPSensitiveInfoType -TenantFilter $Tenant -Template $Template -APIName 'Standards' + if ($DeployResult -match '^(Created|Updated)') { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Remediated SIT '$($Comparison.Name)' ($($Comparison.State)): $DeployResult" -sev Info + $Comparison = Compare-CIPPSensitiveInfoType -TenantFilter $Tenant -Template $Template + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message $DeployResult -sev Error + $Comparison | Add-Member -NotePropertyName DeployError -NotePropertyValue "$DeployResult" -Force + } } + $Comparison } - $ExistingSitNames = try { - @(New-ExoRequest -tenantid $Tenant -cmdlet 'Get-DlpSensitiveInformationType' -Compliance | Select-Object -ExpandProperty Name) - } catch { @() } - - $MissingSits = @(foreach ($Template in @($Templates)) { - $TemplateName = $Template.Name ?? $Template.name - if ($ExistingSitNames -notcontains $TemplateName) { $TemplateName } - }) + # Non-compliant when the SIT is missing, drifted, or the template is invalid. Built-in and in-sync + # SITs are compliant. + $NonCompliant = @($Comparisons | Where-Object { $_.State -in @('Missing', 'Drift', 'Invalid') }) if ($Settings.alert -eq $true) { - if ($MissingSits.Count -eq 0) { - Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All selected Sensitive Information Type templates are deployed.' -sev Info + if ($NonCompliant.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'All selected Sensitive Information Type templates are deployed and in sync.' -sev Info } else { - $AlertMessage = "Sensitive Information Types not deployed in tenant: $($MissingSits -join ', ')" - Write-StandardsAlert -message $AlertMessage -object @{ MissingSensitiveInfoTypes = $MissingSits } -tenant $Tenant -standardName 'SensitiveInfoTypeTemplate' -standardId $Settings.standardId + $Summary = $NonCompliant | ForEach-Object { + if ($_.State -eq 'Drift') { + $Fields = @($_.Differences | ForEach-Object { "$($_.Scope)/$($_.Field)" }) -join ', ' + "$($_.Name): drift in $Fields" + } else { + "$($_.Name): $($_.State)" + } + } + $AlertMessage = "Sensitive Information Type templates not in sync: $($Summary -join '; ')" + Write-StandardsAlert -message $AlertMessage -object @{ NonCompliantSensitiveInfoTypes = $NonCompliant } -tenant $Tenant -standardName 'SensitiveInfoTypeTemplate' -standardId $Settings.standardId Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info } } if ($Settings.report -eq $true) { - $CurrentValue = @{ MissingSensitiveInfoTypes = $MissingSits } - $ExpectedValue = @{ MissingSensitiveInfoTypes = @() } + # Expose the actual drift (per SIT: state + the differing fields with expected vs current values). + $CurrentValue = @{ NonCompliantSensitiveInfoTypes = $NonCompliant } + $ExpectedValue = @{ NonCompliantSensitiveInfoTypes = @() } Set-CIPPStandardsCompareField -FieldName 'standards.SensitiveInfoTypeTemplate' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -TenantFilter $Tenant - Add-CIPPBPAField -FieldName 'SensitiveInfoTypeTemplate' -FieldValue ($MissingSits.Count -eq 0) -StoreAs bool -Tenant $Tenant + Add-CIPPBPAField -FieldName 'SensitiveInfoTypeTemplate' -FieldValue ($NonCompliant.Count -eq 0) -StoreAs bool -Tenant $Tenant } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSmartLockout.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSmartLockout.ps1 index 8c6237bcc290c..ba687cf031ea5 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSmartLockout.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardSmartLockout.ps1 @@ -8,7 +8,7 @@ function Invoke-CIPPStandardSmartLockout { (Label) Configure Entra ID Smart Lockout .DESCRIPTION (Helptext) **Requires Entra ID P1.** Configures the Entra ID Smart Lockout settings including lockout duration, lockout threshold, and on-premises integration mode. - (DocsDescription) Configures the Entra ID Smart Lockout policy which protects against brute-force password attacks. Smart Lockout locks out bad actors who try to guess user passwords or use brute-force methods. It recognizes sign-ins from valid users and treats them differently from attackers. Settings include lockout duration (seconds), lockout threshold (failed attempts before lockout), and on-premises password protection mode (Audit or Enforced). + (DocsDescription) Configures the Entra ID Smart Lockout policy which protects against brute-force password attacks. Smart Lockout locks out bad actors who try to guess user passwords or use brute-force methods. It recognizes sign-ins from valid users and treats them differently from attackers. Settings include lockout duration (seconds), lockout threshold (failed attempts before lockout), and on-premises password protection mode (Audit or Enforce). .NOTES CAT Entra (AAD) Standards @@ -19,7 +19,7 @@ function Invoke-CIPPStandardSmartLockout { {"type":"number","name":"standards.SmartLockout.LockoutDurationInSeconds","label":"Lockout Duration (seconds)","default":60,"required":true} {"type":"number","name":"standards.SmartLockout.LockoutThreshold","label":"Lockout Threshold (failed attempts)","default":10,"required":true} {"type":"switch","name":"standards.SmartLockout.EnableBannedPasswordCheckOnPremises","label":"Enable On-Premises Password Protection"} - {"type":"radio","name":"standards.SmartLockout.BannedPasswordCheckOnPremisesMode","label":"On-Premises Mode","options":[{"label":"Audit","value":"Audit"},{"label":"Enforced","value":"Enforced"}]} + {"type":"radio","name":"standards.SmartLockout.BannedPasswordCheckOnPremisesMode","label":"On-Premises Mode","options":[{"label":"Audit","value":"Audit"},{"label":"Enforce","value":"Enforce"}]} IMPACT Medium Impact ADDEDDATE @@ -51,7 +51,13 @@ function Invoke-CIPPStandardSmartLockout { $DesiredLockoutDuration = [string]($Settings.LockoutDurationInSeconds.value ?? $Settings.LockoutDurationInSeconds ?? '60') $DesiredLockoutThreshold = [string]($Settings.LockoutThreshold.value ?? $Settings.LockoutThreshold ?? '10') $DesiredEnableOnPrem = [string]($Settings.EnableBannedPasswordCheckOnPremises.value ?? $Settings.EnableBannedPasswordCheckOnPremises ?? 'False') - $DesiredOnPremMode = $Settings.BannedPasswordCheckOnPremisesMode.value ?? $Settings.BannedPasswordCheckOnPremisesMode ?? 'Audit' + $DesiredOnPremMode = [string]($Settings.BannedPasswordCheckOnPremisesMode.value ?? $Settings.BannedPasswordCheckOnPremisesMode ?? 'Audit') + + # Graph only accepts 'Audit' or 'Enforce'. Templates saved before the option value was + # corrected hold 'Enforced', which never matches the tenant and reports as non-compliant. + if ($DesiredOnPremMode -eq 'Enforced') { + $DesiredOnPremMode = 'Enforce' + } # Normalize boolean switch to string if ($DesiredEnableOnPrem -eq $true -or $DesiredEnableOnPrem -eq 'true' -or $DesiredEnableOnPrem -eq 'True') { diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 index 3ad06b586deae..726cb64bf0d49 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardStaleEntraDevices.ps1 @@ -7,8 +7,8 @@ function Invoke-CIPPStandardStaleEntraDevices { .SYNOPSIS (Label) Cleanup stale Entra devices .DESCRIPTION - (Helptext) **Remediate is currently not available**. Cleans up Entra devices that have not connected/signed in for the specified number of days. - (DocsDescription) Remediate is currently not available. Cleans up Entra devices that have not connected/signed in for the specified number of days. First disables and later deletes the devices. More info can be found in the [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices) + (Helptext) Cleans up Entra devices that have not connected/signed in for the specified number of days. Remediation first disables stale enabled devices and, on a later run, deletes stale devices that are already disabled. Hybrid-joined, Intune-managed and Autopilot devices are skipped. Deleting a device permanently removes any BitLocker recovery keys stored on it. + (DocsDescription) Cleans up Entra devices that have not connected/signed in for the specified number of days. Remediation first disables stale enabled devices once they pass the disable threshold, and later deletes devices that are already disabled once they have been inactive for the disable threshold plus the configured grace delta (deletion age = disable threshold + grace days). The disable-before-delete grace period is further guaranteed by never deleting a device in the same pass it was disabled. Hybrid-joined (on-premises synced), Intune-managed/compliant, and system-managed Autopilot devices are excluded, in line with the [Microsoft guidance](https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices). **Warning:** deleting a device permanently removes any BitLocker recovery keys stored on that device object. .NOTES CAT Entra (AAD) Standards @@ -19,9 +19,10 @@ function Invoke-CIPPStandardStaleEntraDevices { 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)","validators":{"min":{"value":30,"message":"Minimum value is 30"}}} + {"type":"number","name":"standards.StaleEntraDevices.deviceAgeThreshold","label":"Days before stale (disables the device after this many days of inactivity, minimum 30)","required":true,"defaultValue":90,"validators":{"min":{"value":30,"message":"Minimum value is 30"}}} + {"type":"number","name":"standards.StaleEntraDevices.deviceDeleteThreshold","label":"Grace days after disable before deletion (0 = never delete). Devices are deleted once inactive for the disable threshold plus this many additional days.","defaultValue":0,"validators":{"min":{"value":0,"message":"Minimum value is 0"}}} DISABLEDFEATURES - {"report":false,"warn":false,"remediate":true} + {"report":false,"warn":false,"remediate":false} IMPACT High Impact ADDEDDATE @@ -30,11 +31,6 @@ function Invoke-CIPPStandardStaleEntraDevices { Remove-MgDevice, Update-MgDevice or Graph API RECOMMENDEDBY REQUIREDCAPABILITIES - "INTUNE_A" - "MDM_Services" - "EMS" - "SCCM" - "MICROSOFTINTUNEPLAN1" UPDATECOMMENTBLOCK Run the Tools\Update-StandardsComments.ps1 script to update this comment block .LINK @@ -42,72 +38,203 @@ function Invoke-CIPPStandardStaleEntraDevices { #> param($Tenant, $Settings) - $TestResult = Test-CIPPStandardLicense -StandardName 'StaleEntraDevices' -TenantFilter $Tenant -Preset Intune - # Get all Entra devices + # Safety guard: never run below the supported minimum. A blank or low threshold would otherwise treat + # every device with any sign-in as stale and disable the entire fleet. + $DisableThreshold = if ([string]::IsNullOrWhiteSpace([string]$Settings.deviceAgeThreshold)) { 0 } else { [int]$Settings.deviceAgeThreshold } + if ($DisableThreshold -lt 30) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "StaleEntraDevices: deviceAgeThreshold ($DisableThreshold) is below the minimum of 30 days. Skipping run to prevent mass device changes." -Sev Error + return + } - if ($TestResult -eq $false) { - return $true - } #we're done. + # deviceDeleteThreshold is a delta (grace days) added on top of the disable threshold, so the effective + # delete age is always greater than the disable age - deletion can never overtake disable by construction. + $DeleteDelta = if ([string]::IsNullOrWhiteSpace([string]$Settings.deviceDeleteThreshold)) { 0 } else { [int]$Settings.deviceDeleteThreshold } + if ($DeleteDelta -lt 0) { $DeleteDelta = 0 } + $DeleteEnabled = $DeleteDelta -gt 0 + $DeleteAge = $DisableThreshold + $DeleteDelta try { - $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$select=id,displayName,approximateLastSignInDateTime,accountEnabled,enrollmentProfileName,operatingSystem,managementType,profileType' -tenantid $Tenant | Where-Object { $null -ne $_.approximateLastSignInDateTime } + $AllDevices = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/devices?$select=id,displayName,approximateLastSignInDateTime,accountEnabled,enrollmentProfileName,operatingSystem,managementType,profileType,onPremisesSyncEnabled,isManaged,isCompliant,physicalIds' -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 } + $DisableDate = (Get-Date).AddDays(-$DisableThreshold) + $DeleteDate = (Get-Date).AddDays(-$DeleteAge) + + # Devices are excluded from remediation when they are hybrid-joined (managed on-premises via Entra Connect), + # Intune managed/compliant (should be retired in Intune first), or system-managed Autopilot devices + # (identified by a ZTDID in physicalIds - deleting these breaks re-provisioning and cannot be undone). + $SafetyFilter = { + $_.onPremisesSyncEnabled -ne $true -and + $_.isManaged -ne $true -and + $_.isCompliant -ne $true -and + (@($_.physicalIds) -join ' ') -notmatch '\[ZTDID\]' + } + + # Compute the working sets from the current device state. Re-run after remediation so alert/report reflect + # the post-remediation state. Delete only targets devices that are ALREADY disabled and stale beyond the + # delete threshold; devices disabled in this same run are not deleted until a later run (grace period). + # Dot-sourced so assignments land in this function's scope (no module-level state persists between runs). + $ComputeSets = { + $StaleDevices = @($AllDevices | Where-Object { $_.approximateLastSignInDateTime -lt $DisableDate }) + $RemediationEligibleStaleDevices = @($StaleDevices | Where-Object $SafetyFilter) + $DevicesToDisable = @($RemediationEligibleStaleDevices | Where-Object { $_.accountEnabled -eq $true }) + if ($DeleteEnabled) { + # Every safety-eligible device inactive beyond the delete age meets the delete threshold (surfaced in reports). + $DevicesMeetingDeleteThreshold = @($AllDevices | Where-Object { $_.approximateLastSignInDateTime -lt $DeleteDate } | Where-Object $SafetyFilter) + # Only those already disabled are actually deleted this run; enabled ones are disabled first and deleted later. + $DevicesToDelete = @($DevicesMeetingDeleteThreshold | Where-Object { $_.accountEnabled -ne $true }) + } else { + $DevicesMeetingDeleteThreshold = @() + $DevicesToDelete = @() + } + } + . $ComputeSets if ($Settings.remediate -eq $true) { - # TODO: Implement remediation. For others in the future that want to try this: - # Good MS guide on what to watch out for https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices#clean-up-stale-devices - # https://learn.microsoft.com/en-us/graph/api/device-list?view=graph-rest-beta&tabs=http - # Properties to look at: - # approximateLastSignInDateTime: For knowing when the device last signed in - # enrollmentProfileName and operatingSystem: For knowing if it's an AutoPilot device - # managementType or isManaged: For knowing if it's an Intune managed device. If it is, should be removed from Intune also. Stale intune standard could possibly be used for this. - # profileType: For knowing if it's only registered or also managed - # accountEnabled: For knowing if the device is disabled or not + $DeletedDeviceIds = [System.Collections.Generic.List[string]]::new() + $DisabledCount = 0 + $DeletedCount = 0 + $FailedCount = 0 + + if ($DevicesToDisable.Count -gt 0) { + $DisableRequests = [System.Collections.Generic.List[hashtable]]::new() + $DisableMap = @{} + $RequestId = 0 + + foreach ($Device in $DevicesToDisable) { + $CurrentId = $RequestId++ + $DisableMap[$CurrentId] = $Device + $DisableRequests.Add(@{ + id = $CurrentId + method = 'PATCH' + url = "devices/$($Device.id)" + body = @{ accountEnabled = $false } + headers = @{ + 'Content-Type' = 'application/json' + } + }) + } + + try { + $DisableResults = New-GraphBulkRequest -tenantid $Tenant -Version 'v1.0' -Requests @($DisableRequests) + foreach ($Result in $DisableResults) { + $Device = $DisableMap[[int]$Result.id] + if ($null -eq $Device) { + continue + } + + if ($Result.status -eq 200 -or $Result.status -eq 204) { + $DisabledCount++ + $Device.accountEnabled = $false + } else { + $FailedCount++ + $ErrorMessage = if ($Result.body.error.message) { $Result.body.error.message } else { "Unknown error (Status: $($Result.status))" } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not disable stale device $($Device.displayName) ($($Device.id)). Error: $ErrorMessage" -Sev Error + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $FailedCount += $DevicesToDisable.Count + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to process bulk disable stale devices request. Error: $ErrorMessage" -Sev Error + } + } + + if ($DevicesToDelete.Count -gt 0) { + $DeleteRequests = [System.Collections.Generic.List[hashtable]]::new() + $DeleteMap = @{} + $RequestId = 0 + + foreach ($Device in $DevicesToDelete) { + $CurrentId = $RequestId++ + $DeleteMap[$CurrentId] = $Device + $DeleteRequests.Add(@{ + id = $CurrentId + method = 'DELETE' + url = "devices/$($Device.id)" + }) + } + + try { + $DeleteResults = New-GraphBulkRequest -tenantid $Tenant -Version 'v1.0' -Requests @($DeleteRequests) + foreach ($Result in $DeleteResults) { + $Device = $DeleteMap[[int]$Result.id] + if ($null -eq $Device) { + continue + } + + if ($Result.status -eq 200 -or $Result.status -eq 204) { + $DeletedCount++ + $null = $DeletedDeviceIds.Add([string]$Device.id) + } else { + $FailedCount++ + $ErrorMessage = if ($Result.body.error.message) { $Result.body.error.message } else { "Unknown error (Status: $($Result.status))" } + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not delete stale eligible device $($Device.displayName) ($($Device.id)). Error: $ErrorMessage" -Sev Error + } + } + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + $FailedCount += $DevicesToDelete.Count + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Failed to process bulk delete stale devices request. Error: $ErrorMessage" -Sev Error + } + } + + # Drop deleted devices, then recompute the working sets so alert/report reflect the post-remediation state. + if ($DeletedDeviceIds.Count -gt 0) { + $AllDevices = @($AllDevices | Where-Object { $_.id -notin $DeletedDeviceIds }) + } + . $ComputeSets + + # Only log when the standard actually acted; skipped devices alone never generate output. + if ($DisabledCount -gt 0 -or $DeletedCount -gt 0 -or $FailedCount -gt 0) { + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "StaleEntraDevices remediation completed. Disabled: $DisabledCount. Deleted: $DeletedCount. Failed: $FailedCount." -Sev Info + } } if ($Settings.alert -eq $true) { - if ($StaleDevices.Count -gt 0) { - Write-StandardsAlert -message "$($StaleDevices.Count) Stale devices found" -object $StaleDevices -tenant $Tenant -standardName 'StaleEntraDevices' -standardId $Settings.standardId - Write-LogMessage -API 'Standards' -tenant $Tenant -message "$($StaleDevices.Count) Stale devices found" -sev Info + # Alert only on actionable devices. Skipped devices (hybrid-joined/Intune-managed/Autopilot) are + # intentionally excluded so the alert never fires on stale devices this standard would never touch. + if ($RemediationEligibleStaleDevices.Count -gt 0) { + $AlertMessage = "$($RemediationEligibleStaleDevices.Count) stale devices requiring action found (to disable: $($DevicesToDisable.Count), meeting delete threshold: $($DevicesMeetingDeleteThreshold.Count))." + Write-StandardsAlert -message $AlertMessage -object $RemediationEligibleStaleDevices -tenant $Tenant -standardName 'StaleEntraDevices' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message $AlertMessage -sev Info } else { - Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No stale devices found' -sev Info + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No stale devices requiring action found' -sev Info } } if ($Settings.report -eq $true) { - if ($StaleDevices.Count -gt 0) { - $StaleReport = ConvertTo-Json -InputObject ($StaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType) -Depth 10 -Compress + # Report only on actionable devices; skipped devices (hybrid-joined/Intune-managed/Autopilot) are excluded. + if ($RemediationEligibleStaleDevices.Count -gt 0) { + $StaleReport = ConvertTo-Json -InputObject ($RemediationEligibleStaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType) -Depth 10 -Compress Add-CIPPBPAField -FieldName 'StaleEntraDevices' -FieldValue $StaleReport -StoreAs json -Tenant $Tenant } else { Add-CIPPBPAField -FieldName 'StaleEntraDevices' -FieldValue $true -StoreAs bool -Tenant $Tenant } - if ($StaleDevices.Count -gt 0) { - $FieldValue = $StaleDevices | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType + if ($DevicesToDisable.Count -gt 0) { + $EligibleToDisableFieldValue = $DevicesToDisable | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType + } + if ($DeleteEnabled -and $DevicesMeetingDeleteThreshold.Count -gt 0) { + $MeetingDeleteThresholdFieldValue = $DevicesMeetingDeleteThreshold | Select-Object -Property displayName, id, approximateLastSignInDateTime, accountEnabled, enrollmentProfileName, operatingSystem, managementType, profileType } $CurrentValue = @{ - StaleDevicesCount = $StaleDevices.Count - StaleDevices = ($FieldValue ? @($FieldValue) :@()) - DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + EligibleDevicesToDisable = ($EligibleToDisableFieldValue ? @($EligibleToDisableFieldValue) :@()) + DevicesMeetingDeleteThreshold = if ($DeleteEnabled) { ($MeetingDeleteThresholdFieldValue ? @($MeetingDeleteThresholdFieldValue) :@()) } else { 'Deletion disabled' } } $ExpectedValue = @{ - StaleDevicesCount = 0 - StaleDevices = @() - DeviceAgeThreshold = [int]$Settings.deviceAgeThreshold + EligibleDevicesToDisable = @() + DevicesMeetingDeleteThreshold = if ($DeleteEnabled) { @() } else { 'Deletion disabled' } } Set-CIPPStandardsCompareField -FieldName 'standards.StaleEntraDevices' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTAP.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTAP.ps1 index 6cb5c32fbb7c7..21d632dac5b14 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTAP.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTAP.ps1 @@ -59,6 +59,8 @@ function Invoke-CIPPStandardTAP { try { Set-CIPPAuthenticationPolicy -Tenant $Tenant -APIName 'Standards' -AuthenticationMethodId 'TemporaryAccessPass' -Enabled $true -TAPisUsableOnce $config } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to enable Temporary Access Passwords. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 index 93eccf035e10e..aaa33a4ae2d38 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsChatProtection.ps1 @@ -46,7 +46,7 @@ function Invoke-CIPPStandardTeamsChatProtection { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingConfiguration' | Select-Object -Property Identity, FileTypeCheck, UrlReputationCheck + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingConfiguration' -Action Get -Identity 'Global' | 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 @@ -75,7 +75,7 @@ function Invoke-CIPPStandardTeamsChatProtection { } try { - $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingConfiguration' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingConfiguration' -Action Set -Parameters $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 $_ diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsDisableResourceAccounts.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsDisableResourceAccounts.ps1 new file mode 100644 index 0000000000000..522283712d966 --- /dev/null +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsDisableResourceAccounts.ps1 @@ -0,0 +1,162 @@ +function Invoke-CIPPStandardTeamsDisableResourceAccounts { + <# + .FUNCTIONALITY + Internal + .COMPONENT + (APIName) TeamsDisableResourceAccounts + .SYNOPSIS + (Label) Block sign-in for Teams resource accounts + .DESCRIPTION + (Helptext) Blocks sign-in for all Teams resource accounts used by Auto Attendants and Call Queues. Microsoft's guidance is to block sign-in for resource accounts as they do not require an interactive login to function. + (DocsDescription) Teams resource accounts (the accounts backing Auto Attendants and Call Queues) do not require interactive sign-in to function. If sign-in is enabled and the password is reset, the account can be logged into directly, which presents a security risk. Microsoft's guidance is to block sign-in for these accounts. Accounts that are synced from on-premises AD are excluded, as account state is managed in the on-premises AD. + .NOTES + CAT + Teams Standards + TAG + "NIST CSF 2.0 (PR.AA-01)" + EXECUTIVETEXT + Prevents direct login to the service accounts that power phone system features like Auto Attendants and Call Queues. These accounts work without anyone signing into them, so blocking sign-in removes an unnecessary attack surface while keeping the phone system fully functional. + ADDEDCOMPONENT + IMPACT + Medium Impact + ADDEDDATE + 2026-07-17 + POWERSHELLEQUIVALENT + Get-CsOnlineApplicationInstance & Update-MgUser + 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/alignment/templates/available-standards + #> + + param($Tenant, $Settings) + + $TestResult = Test-CIPPStandardLicense -StandardName 'TeamsDisableResourceAccounts' -TenantFilter $Tenant -Preset Teams + if ($TestResult -eq $false) { + return $true + } + + try { + # Teams.PlatformService returns the Auto Attendant / Call Queue resource accounts along + # with the applicationId that distinguishes the two. Graph's admin/teams/userConfigurations + # does not surface resource accounts at all, so this surface is the only source. + $ResourceAccounts = [System.Collections.Generic.List[object]]::new() + $SkipToken = $null + do { + $QueryParameters = @{ pageSize = 100 } + if ($SkipToken) { $QueryParameters['skipToken'] = $SkipToken } + $Page = New-TeamsRequestV2 -TenantFilter $Tenant -Path 'Teams.PlatformService/v2/ApplicationInstances' -QueryParameters $QueryParameters + foreach ($Instance in @($Page.applicationInstances)) { $ResourceAccounts.Add($Instance) } + $SkipToken = $Page.skipToken + } while ($SkipToken) + + # Cross-reference the cached user objects for sign-in state; cloud-only accounts only, + # as the account state of synced accounts is managed in the on-premises AD. + $AllUsers = New-CIPPDbRequest -TenantFilter $Tenant -Type 'Users' + $EnabledUserIds = ($AllUsers | Where-Object { + $_.accountEnabled -eq $true -and + $_.onPremisesSyncEnabled -ne $true + }).id + + $ApplicationTypes = @{ + 'ce933385-9390-45d1-9512-c8d228074e07' = 'Auto Attendant' + '11cd3e2e-fccb-42ad-ad00-878b93575e07' = 'Call Queue' + } + + $EnabledResourceAccounts = foreach ($Account in $ResourceAccounts) { + if ($Account.objectId -and $EnabledUserIds -contains $Account.objectId) { + [PSCustomObject]@{ + DisplayName = $Account.displayName + UserPrincipalName = $Account.userPrincipalName + ObjectId = $Account.objectId + ApplicationType = $ApplicationTypes[[string]$Account.applicationId] ?? 'Custom' + } + } + } + $EnabledResourceAccounts = @($EnabledResourceAccounts) + } catch { + $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message + Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsDisableResourceAccounts state for $Tenant. Error: $ErrorMessage" -Sev Error + return + } + + if ($Settings.remediate -eq $true) { + if ($EnabledResourceAccounts.Count -gt 0) { + $UpdateDB = $false + $int = 0 + $BulkRequests = foreach ($Account in $EnabledResourceAccounts) { + @{ + id = $int++ + method = 'PATCH' + url = "users/$($Account.ObjectId)" + body = @{ accountEnabled = $false } + 'headers' = @{ + 'Content-Type' = 'application/json' + } + } + } + + try { + $BulkResults = New-GraphBulkRequest -tenantid $Tenant -Requests @($BulkRequests) + + for ($i = 0; $i -lt $BulkResults.Count; $i++) { + $Result = $BulkResults[$i] + $Account = $EnabledResourceAccounts[$i] + + if ($Result.status -eq 200 -or $Result.status -eq 204) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Blocked sign-in for Teams resource account $($Account.DisplayName) ($($Account.UserPrincipalName))." -sev Info + $UpdateDB = $true + } else { + $ErrorMsg = if ($Result.body.error.message) { $Result.body.error.message } else { "Unknown error (Status: $($Result.status))" } + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to block sign-in for Teams resource account $($Account.DisplayName) ($($Account.UserPrincipalName)): $ErrorMsg" -sev Error + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to process bulk sign-in block for Teams resource accounts: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage + } + + # Refresh user cache after remediation only if changes were made + if ($UpdateDB) { + try { + Set-CIPPDBCacheUsers -TenantFilter $Tenant + } catch { + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Failed to refresh user cache after remediation: $($_.Exception.Message)" -sev Warning + } + } + } elseif ($ResourceAccounts.Count -eq 0) { + # Distinct from "all blocked": Teams classifies an account as a resource account based + # on licensing, so an account carrying user licences (or none) drops out of this list + # entirely. Saying "already blocked" there would be a false pass. + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No Teams resource accounts were returned for this tenant, so there was nothing to evaluate. If Auto Attendants or Call Queues exist, check that their resource accounts hold the Microsoft Teams Phone Resource Account license.' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Sign-in is already blocked for all Teams resource accounts.' -sev Info + } + } + + if ($Settings.alert -eq $true) { + if ($EnabledResourceAccounts.Count -gt 0) { + Write-StandardsAlert -message "Teams resource accounts with sign-in enabled: $($EnabledResourceAccounts.Count)" -object $EnabledResourceAccounts -tenant $Tenant -standardName 'TeamsDisableResourceAccounts' -standardId $Settings.standardId + Write-LogMessage -API 'Standards' -tenant $Tenant -message "Teams resource accounts with sign-in enabled: $($EnabledResourceAccounts.Count)" -sev Info + } elseif ($ResourceAccounts.Count -eq 0) { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'No Teams resource accounts were returned for this tenant, so there was nothing to evaluate.' -sev Info + } else { + Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Sign-in is blocked for all Teams resource accounts.' -sev Info + } + } + + if ($Settings.report -eq $true) { + $CurrentValue = [PSCustomObject]@{ + TeamsDisableResourceAccounts = @($EnabledResourceAccounts) + } + $ExpectedValue = [PSCustomObject]@{ + TeamsDisableResourceAccounts = @() + } + + Set-CIPPStandardsCompareField -FieldName 'standards.TeamsDisableResourceAccounts' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant + Add-CIPPBPAField -FieldName 'TeamsDisableResourceAccounts' -FieldValue $EnabledResourceAccounts -StoreAs json -Tenant $Tenant + } +} diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 index fe913f850dacb..aa4735fa00c90 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEmailIntegration.ps1 @@ -46,7 +46,7 @@ function Invoke-CIPPStandardTeamsEmailIntegration { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Get -Identity 'Global' | Select-Object AllowEmailIntoChannel } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -68,7 +68,7 @@ function Invoke-CIPPStandardTeamsEmailIntegration { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Email Integration settings' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 index 3748d8d67a03d..805afb25e8680 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsEnrollUser.ps1 @@ -47,7 +47,7 @@ function Invoke-CIPPStandardTeamsEnrollUser { $enrollUserOverride = $Settings.EnrollUserOverride.value ?? $Settings.EnrollUserOverride try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -cmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Get -Identity 'Global' | Select-Object EnrollUserOverride } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -67,7 +67,7 @@ function Invoke-CIPPStandardTeamsEnrollUser { } try { - $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -cmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message "Updated Teams Enroll User Override setting to $enrollUserOverride." -sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 index a6014c5fec2a8..8eb632ba19456 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalAccessPolicy.ps1 @@ -45,7 +45,7 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsExternalAccessPolicy' -CmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'ExternalAccessPolicy' -Action Get -Identity 'Global' | Select-Object * } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -70,7 +70,7 @@ function Invoke-CIPPStandardTeamsExternalAccessPolicy { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsExternalAccessPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'ExternalAccessPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated External Access Policy' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 index f4772514fb929..14ac9225c9cc0 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalChatWithAnyone.ps1 @@ -45,7 +45,7 @@ function Invoke-CIPPStandardTeamsExternalChatWithAnyone { } try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{ Identity = 'Global' } | Select-Object -Property Identity, UseB2BInvitesToAddExternalUsers + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingPolicy' -Action Get -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 @@ -67,7 +67,7 @@ function Invoke-CIPPStandardTeamsExternalChatWithAnyone { } try { - $null = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingPolicy' -Action Set -Parameters $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 $_ diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 index 1d29eb41f6fab..abcc9c88488a9 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsExternalFileSharing.ps1 @@ -50,7 +50,7 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Get -Identity 'Global' | Select-Object AllowGoogleDrive, AllowShareFile, AllowBox, AllowDropBox, AllowEgnyte } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -58,11 +58,18 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { return } - $StateIsCorrect = ($CurrentState.AllowGoogleDrive -eq $Settings.AllowGoogleDrive ?? $false ) -and - ($CurrentState.AllowShareFile -eq $Settings.AllowShareFile ?? $false ) -and - ($CurrentState.AllowBox -eq $Settings.AllowBox ?? $false ) -and - ($CurrentState.AllowDropBox -eq $Settings.AllowDropBox ?? $false ) -and - ($CurrentState.AllowEgnyte -eq $Settings.AllowEgnyte ?? $false ) + # Untoggled switches are absent from the settings; default them to $false so we never send null to the ConfigApi + $AllowGoogleDrive = $Settings.AllowGoogleDrive ?? $false + $AllowShareFile = $Settings.AllowShareFile ?? $false + $AllowBox = $Settings.AllowBox ?? $false + $AllowDropBox = $Settings.AllowDropBox ?? $false + $AllowEgnyte = $Settings.AllowEgnyte ?? $false + + $StateIsCorrect = ($CurrentState.AllowGoogleDrive -eq $AllowGoogleDrive) -and + ($CurrentState.AllowShareFile -eq $AllowShareFile) -and + ($CurrentState.AllowBox -eq $AllowBox) -and + ($CurrentState.AllowDropBox -eq $AllowDropBox) -and + ($CurrentState.AllowEgnyte -eq $AllowEgnyte) if ($Settings.remediate -eq $true) { if ($StateIsCorrect -eq $true) { @@ -70,15 +77,15 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { } else { $cmdParams = @{ Identity = 'Global' - AllowGoogleDrive = $Settings.AllowGoogleDrive - AllowShareFile = $Settings.AllowShareFile - AllowBox = $Settings.AllowBox - AllowDropBox = $Settings.AllowDropBox - AllowEgnyte = $Settings.AllowEgnyte + AllowGoogleDrive = $AllowGoogleDrive + AllowShareFile = $AllowShareFile + AllowBox = $AllowBox + AllowDropBox = $AllowDropBox + AllowEgnyte = $AllowEgnyte } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams External File Sharing' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -107,11 +114,11 @@ function Invoke-CIPPStandardTeamsExternalFileSharing { AllowEgnyte = $CurrentState.AllowEgnyte } $ExpectedValue = @{ - AllowGoogleDrive = $Settings.AllowGoogleDrive - AllowShareFile = $Settings.AllowShareFile - AllowBox = $Settings.AllowBox - AllowDropBox = $Settings.AllowDropBox - AllowEgnyte = $Settings.AllowEgnyte + AllowGoogleDrive = $AllowGoogleDrive + AllowShareFile = $AllowShareFile + AllowBox = $AllowBox + AllowDropBox = $AllowDropBox + AllowEgnyte = $AllowEgnyte } Set-CIPPStandardsCompareField -FieldName 'standards.TeamsExternalFileSharing' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 index 4bebc295e2ee0..10639e02d829f 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsFederationConfiguration.ps1 @@ -46,49 +46,48 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTenantFederationConfiguration' -CmdParams @{Identity = 'Global' } | - Select-Object * + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TenantFederationConfiguration' -Action Get -Identity 'Global' } 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 + # ConfigAPI (TenantFederationSettings) domain payload shapes: + # Allow all external -> AllowedDomains = @() (empty array) + # Allow specific external -> AllowedDomains = @{ AllowList = @(list) } + # Block specific external -> AllowedDomains = @{ AllowList = @() } + BlockedDomains = @(list) $DomainControl = $Settings.DomainControl.value ?? $Settings.DomainControl + # An untoggled switch is absent from the settings; default it to $false so we never send null to the ConfigApi + $AllowTeamsConsumer = $Settings.AllowTeamsConsumer ?? $false $AllowedDomainsAsAList = @() + $BlockedDomains = @() switch ($DomainControl) { 'AllowAllExternal' { $AllowFederatedUsers = $true - $AllowedDomains = $AllowAllKnownDomains - $AllowedDomainsAsAList = @() - $BlockedDomains = @() + $AllowedDomainsPayload = @() + $ExpectedAllowAllKnown = $true } 'BlockAllExternal' { $AllowFederatedUsers = $false - $AllowedDomains = $AllowAllKnownDomains - $AllowedDomainsAsAList = @() - $BlockedDomains = @() + $AllowedDomainsPayload = @() + $ExpectedAllowAllKnown = $true } 'AllowSpecificExternal' { $AllowFederatedUsers = $true - $AllowedDomains = $null - $BlockedDomains = @() if ($null -ne $Settings.DomainList) { $AllowedDomainsAsAList = @($Settings.DomainList).Split(',').Trim() | Sort-Object - } else { - $AllowedDomainsAsAList = @() } + $AllowedDomainsPayload = @{ AllowList = @($AllowedDomainsAsAList) } + $ExpectedAllowAllKnown = $false } 'BlockSpecificExternal' { $AllowFederatedUsers = $true - $AllowedDomains = $AllowAllKnownDomains - $AllowedDomainsAsAList = @() if ($null -ne $Settings.DomainList) { $BlockedDomains = @($Settings.DomainList).Split(',').Trim() | Sort-Object - } else { - $BlockedDomains = @() } + $AllowedDomainsPayload = @{ AllowList = @() } + $ExpectedAllowAllKnown = $true } default { Write-LogMessage -API 'Standards' -tenant $Tenant -message "Federation Configuration: Invalid $DomainControl parameter" -sev Error @@ -96,62 +95,23 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { } } - # Parse current state based on DomainControl mode - $CurrentAllowedDomains = $CurrentState.AllowedDomains - $CurrentBlockedDomains = $CurrentState.BlockedDomains - $IsCurrentAllowAllKnownDomains = $false - $AllowedDomainsMatches = $false - $BlockedDomainsMatches = $false - - # Check if current allowed domains is AllowAllKnownDomains, and parse specific domains if not - if ($CurrentAllowedDomains) { - if ($CurrentAllowedDomains.GetType().Name -eq 'PSObject') { - $properties = Get-Member -InputObject $CurrentAllowedDomains -MemberType Properties, NoteProperty - if (($null -ne $CurrentAllowedDomains.AllowAllKnownDomains) -or - (Get-Member -InputObject $CurrentAllowedDomains -Name 'AllowAllKnownDomains') -or - (!$properties -or $properties.Count -eq 0)) { - $IsCurrentAllowAllKnownDomains = $true - Write-Information "Current AllowedDomains is AllowAllKnownDomains" - } else { - # Parse specific allowed domains list - if ($null -ne $CurrentAllowedDomains.AllowedDomain -or (Get-Member -InputObject $CurrentAllowedDomains -Name 'AllowedDomain')) { - $CurrentAllowedDomains = @($CurrentAllowedDomains.AllowedDomain | ForEach-Object { $_.Domain }) | Sort-Object - Write-Information "Current AllowedDomains (extracted): $($CurrentAllowedDomains -join ', ')" - } elseif ($null -ne $CurrentAllowedDomains.Domain -or (Get-Member -InputObject $CurrentAllowedDomains -Name 'Domain')) { - $CurrentAllowedDomains = @($CurrentAllowedDomains.Domain) | Sort-Object - Write-Information "Current AllowedDomains (via Domain property): $($CurrentAllowedDomains -join ', ')" - } else { - $CurrentAllowedDomains = @() - } - } - } elseif ($CurrentAllowedDomains.GetType().Name -eq 'Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains') { - $IsCurrentAllowAllKnownDomains = $true - Write-Information "Current AllowedDomains is AllowAllKnownDomains (Deserialized type)" - } - } else { - $CurrentAllowedDomains = @() + # Parse current state (ConfigAPI TenantFederationSettings GET shape). NOTE the GET/PUT + # asymmetry: the GET nests the allow-list under AllowedDomains.AllowedDomain (allow-all = + # {} with no AllowedDomain), whereas the PUT expects AllowedDomains.AllowList / []. Items + # may be plain strings or objects with a .Domain property, so handle both. + $CurrentAllowedDomains = @() + $ad = $CurrentState.AllowedDomains + if ($ad -and ($ad.PSObject.Properties.Name -contains 'AllowedDomain') -and $ad.AllowedDomain) { + $CurrentAllowedDomains = @($ad.AllowedDomain | ForEach-Object { if ($_ -is [string]) { $_ } elseif ($_.Domain) { $_.Domain } else { "$_" } }) | Sort-Object } - - # Parse blocked domains upfront (always extract Domain property if present) - if ($CurrentBlockedDomains -is [System.Collections.IEnumerable] -and $CurrentBlockedDomains -isnot [string]) { - $blockedDomainsArray = @($CurrentBlockedDomains) - if ($blockedDomainsArray.Count -gt 0) { - $firstElement = $blockedDomainsArray[0] - $hasDomainProperty = ($null -ne $firstElement.Domain) -or (Get-Member -InputObject $firstElement -Name 'Domain' -MemberType Properties, NoteProperty) - - if ($hasDomainProperty) { - $CurrentBlockedDomains = @($blockedDomainsArray | ForEach-Object { $_.Domain }) | Sort-Object - Write-Information "Current BlockedDomains (extracted): $($CurrentBlockedDomains -join ', ')" - } else { - $CurrentBlockedDomains = @($blockedDomainsArray) | Sort-Object - Write-Information "Current BlockedDomains (plain strings): $($CurrentBlockedDomains -join ', ')" - } - } else { - $CurrentBlockedDomains = @() - } - } else { - $CurrentBlockedDomains = @() + # Allow-all-known = no explicit allow-list present (ConfigAPI returns {} for allow-all). + $IsCurrentAllowAllKnownDomains = ($CurrentAllowedDomains.Count -eq 0) + $CurrentBlockedDomains = @() + if ($CurrentState.BlockedDomains) { + $CurrentBlockedDomains = @($CurrentState.BlockedDomains | ForEach-Object { if ($_ -is [string]) { $_ } elseif ($_.Domain) { $_.Domain } else { "$_" } }) | Sort-Object } + $AllowedDomainsMatches = $false + $BlockedDomainsMatches = $false # Mode-specific validation switch ($DomainControl) { @@ -165,19 +125,21 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { $BlockedDomainsMatches = $true } 'AllowSpecificExternal' { - $AllowedDomainsMatches = -not (Compare-Object -ReferenceObject $AllowedDomainsAsAList -DifferenceObject $CurrentAllowedDomains) + # Both lists are already Sort-Object'd; compare as joined strings. Avoids Compare-Object, + # whose parameter binder coerces an empty array @() to $null and then throws. + $AllowedDomainsMatches = (@($AllowedDomainsAsAList) -join ',') -eq (@($CurrentAllowedDomains) -join ',') $BlockedDomainsMatches = (!$CurrentBlockedDomains -or @($CurrentBlockedDomains).Count -eq 0) } 'BlockSpecificExternal' { # Allowed should be AllowAllKnownDomains, blocked domains already parsed above $AllowedDomainsMatches = $IsCurrentAllowAllKnownDomains - $BlockedDomainsMatches = -not (Compare-Object -ReferenceObject $BlockedDomains -DifferenceObject $CurrentBlockedDomains) + $BlockedDomainsMatches = (@($BlockedDomains) -join ',') -eq (@($CurrentBlockedDomains) -join ',') } } $ExpectedBlockedDomains = $BlockedDomains ?? @() - $StateIsCorrect = ($CurrentState.AllowTeamsConsumer -eq $Settings.AllowTeamsConsumer) -and + $StateIsCorrect = ($CurrentState.AllowTeamsConsumer -eq $AllowTeamsConsumer) -and ($CurrentState.AllowFederatedUsers -eq $AllowFederatedUsers) -and $AllowedDomainsMatches -and $BlockedDomainsMatches @@ -188,19 +150,15 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { } else { $cmdParams = @{ Identity = 'Global' - AllowTeamsConsumer = $Settings.AllowTeamsConsumer + AllowTeamsConsumer = $AllowTeamsConsumer AllowFederatedUsers = $AllowFederatedUsers - BlockedDomains = $BlockedDomains - } - - if ($AllowedDomainsAsAList -and $AllowedDomainsAsAList.Count -gt 0) { - $cmdParams.AllowedDomainsAsAList = $AllowedDomainsAsAList - } else { - $cmdParams.AllowedDomains = $AllowedDomains + AllowedDomains = $AllowedDomainsPayload + BlockedDomains = @($BlockedDomains) } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTenantFederationConfiguration' -CmdParams $cmdParams + # -NoRead: send bare props exactly like ACMS (no Key envelope) for the federation write + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TenantFederationConfiguration' -Action Set -Parameters $cmdParams -NoRead Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Federation Configuration Policy' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -232,7 +190,7 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { # Normalize expected allowed domains for reporting $ExpectedAllowedDomainsForReport = if ($AllowedDomainsAsAList -and $AllowedDomainsAsAList.Count -gt 0) { $AllowedDomainsAsAList - } elseif ($AllowedDomains) { + } elseif ($ExpectedAllowAllKnown) { 'AllowAllKnownDomains' } else { @() @@ -258,7 +216,7 @@ function Invoke-CIPPStandardTeamsFederationConfiguration { BlockedDomains = $CurrentBlockedDomainsForReport } $ExpectedValue = @{ - AllowTeamsConsumer = $Settings.AllowTeamsConsumer + AllowTeamsConsumer = $AllowTeamsConsumer AllowFederatedUsers = $AllowFederatedUsers AllowedDomains = $ExpectedAllowedDomainsForReport BlockedDomains = $ExpectedBlockedDomainsForReport diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 index 64f368e07dbca..280f1111aa596 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1 @@ -57,7 +57,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Get -Identity 'Global' | Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl, AllowParticipantGiveRequestControl } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -69,14 +69,21 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { $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 $Settings.AllowAnonymousUsersToStartMeeting) -and + # Untoggled switches are absent from the settings; default them to $false (the CIS recommended value) so we never send null to the ConfigApi + $AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting ?? $false + $AllowAnonymousUsersToStartMeeting = $Settings.AllowAnonymousUsersToStartMeeting ?? $false + $AllowPSTNUsersToBypassLobby = $Settings.AllowPSTNUsersToBypassLobby ?? $false + $AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl ?? $false + $AllowParticipantGiveRequestControl = $Settings.AllowParticipantGiveRequestControl ?? $false + + $StateIsCorrect = ($CurrentState.AllowAnonymousUsersToJoinMeeting -eq $AllowAnonymousUsersToJoinMeeting) -and + ($CurrentState.AllowAnonymousUsersToStartMeeting -eq $AllowAnonymousUsersToStartMeeting) -and ($CurrentState.AutoAdmittedUsers -eq $AutoAdmittedUsers) -and - ($CurrentState.AllowPSTNUsersToBypassLobby -eq $Settings.AllowPSTNUsersToBypassLobby) -and + ($CurrentState.AllowPSTNUsersToBypassLobby -eq $AllowPSTNUsersToBypassLobby) -and ($CurrentState.MeetingChatEnabledType -eq $MeetingChatEnabledType) -and ($CurrentState.DesignatedPresenterRoleMode -eq $DesignatedPresenterRoleMode) -and - ($CurrentState.AllowExternalParticipantGiveRequestControl -eq $Settings.AllowExternalParticipantGiveRequestControl) -and - ($CurrentState.AllowParticipantGiveRequestControl -eq $Settings.AllowParticipantGiveRequestControl) + ($CurrentState.AllowExternalParticipantGiveRequestControl -eq $AllowExternalParticipantGiveRequestControl) -and + ($CurrentState.AllowParticipantGiveRequestControl -eq $AllowParticipantGiveRequestControl) if ($Settings.remediate -eq $true) { @@ -85,18 +92,18 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { } else { $cmdParams = @{ Identity = 'Global' - AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting - AllowAnonymousUsersToStartMeeting = $Settings.AllowAnonymousUsersToStartMeeting + AllowAnonymousUsersToJoinMeeting = $AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $AllowAnonymousUsersToStartMeeting AutoAdmittedUsers = $AutoAdmittedUsers - AllowPSTNUsersToBypassLobby = $Settings.AllowPSTNUsersToBypassLobby + AllowPSTNUsersToBypassLobby = $AllowPSTNUsersToBypassLobby MeetingChatEnabledType = $MeetingChatEnabledType DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode - AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl - AllowParticipantGiveRequestControl = $Settings.AllowParticipantGiveRequestControl + AllowExternalParticipantGiveRequestControl = $AllowExternalParticipantGiveRequestControl + AllowParticipantGiveRequestControl = $AllowParticipantGiveRequestControl } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Global Policy' -sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ @@ -127,14 +134,14 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy { AllowParticipantGiveRequestControl = $CurrentState.AllowParticipantGiveRequestControl } $ExpectedValue = @{ - AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting - AllowAnonymousUsersToStartMeeting = $Settings.AllowAnonymousUsersToStartMeeting + AllowAnonymousUsersToJoinMeeting = $AllowAnonymousUsersToJoinMeeting + AllowAnonymousUsersToStartMeeting = $AllowAnonymousUsersToStartMeeting AutoAdmittedUsers = $AutoAdmittedUsers - AllowPSTNUsersToBypassLobby = $Settings.AllowPSTNUsersToBypassLobby + AllowPSTNUsersToBypassLobby = $AllowPSTNUsersToBypassLobby MeetingChatEnabledType = $MeetingChatEnabledType DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode - AllowExternalParticipantGiveRequestControl = $Settings.AllowExternalParticipantGiveRequestControl - AllowParticipantGiveRequestControl = $Settings.AllowParticipantGiveRequestControl + AllowExternalParticipantGiveRequestControl = $AllowExternalParticipantGiveRequestControl + AllowParticipantGiveRequestControl = $AllowParticipantGiveRequestControl } Set-CIPPStandardsCompareField -FieldName 'standards.TeamsGlobalMeetingPolicy' -CurrentValue $CurrentValue -ExpectedValue $ExpectedValue -Tenant $Tenant Add-CIPPBPAField -FieldName 'TeamsGlobalMeetingPolicy' -FieldValue $StateIsCorrect -StoreAs bool -Tenant $Tenant diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 index 082638fd09fd0..043e4a988a87a 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsGuestAccess.ps1 @@ -44,7 +44,7 @@ function Invoke-CIPPStandardTeamsGuestAccess { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsClientConfiguration' -CmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Get -Identity 'Global' | Select-Object AllowGuestUser } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -66,7 +66,7 @@ function Invoke-CIPPStandardTeamsGuestAccess { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsClientConfiguration' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsClientConfiguration' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Guest Access settings' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 index d1ae1626cafb5..2e45f2ca7a5fb 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingRecordingExpiration.ps1 @@ -51,7 +51,7 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { } try { - $CurrentExpirationDays = (New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' }).NewMeetingRecordingExpirationDays + $CurrentExpirationDays = (New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Get -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 @@ -70,7 +70,7 @@ function Invoke-CIPPStandardTeamsMeetingRecordingExpiration { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message "Successfully updated Teams Meeting Recording Expiration Policy to $ExpirationDays days." -sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 index e13384d13c8db..b4848b022703b 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMeetingVerification.ps1 @@ -45,7 +45,7 @@ function Invoke-CIPPStandardTeamsMeetingVerification { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } | + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Get -Identity 'Global' | Select-Object CaptchaVerificationForMeetingJoin } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message @@ -66,7 +66,7 @@ function Invoke-CIPPStandardTeamsMeetingVerification { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMeetingPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMeetingPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated Teams Meeting Verification Policy' -sev Info } catch { $ErrorMessage = Get-CippException -Exception $_ diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 index 31a6384293c49..94fbf91a0705c 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardTeamsMessagingPolicy.ps1 @@ -52,7 +52,7 @@ function Invoke-CIPPStandardTeamsMessagingPolicy { } #we're done. try { - $CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMessagingPolicy' -CmdParams @{Identity = 'Global' } + $CurrentState = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingPolicy' -Action Get -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 @@ -98,7 +98,7 @@ function Invoke-CIPPStandardTeamsMessagingPolicy { } try { - New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Set-CsTeamsMessagingPolicy' -CmdParams $cmdParams + $null = New-TeamsRequestV2 -TenantFilter $Tenant -Type 'TeamsMessagingPolicy' -Action Set -Parameters $cmdParams Write-LogMessage -API 'Standards' -tenant $Tenant -message 'Updated global Teams messaging policy' -sev Info } catch { $ErrorMessage = Get-NormalizedError -Message $_.Exception.Message diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 index 30ecfc5040e11..5dd97940219b0 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOAuthTokens.ps1 @@ -52,6 +52,8 @@ function Invoke-CIPPStandardallowOAuthTokens { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'softwareOath' -Enabled $true } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable Software OTP/oAuth tokens. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 index 1315bd4471c0c..39d996f64ea5e 100644 --- a/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 +++ b/Modules/CIPPStandards/Public/Standards/Invoke-CIPPStandardallowOTPTokens.ps1 @@ -52,6 +52,8 @@ function Invoke-CIPPStandardallowOTPTokens { try { Set-CIPPAuthenticationPolicy -Tenant $tenant -APIName 'Standards' -AuthenticationMethodId 'MicrosoftAuthenticator' -Enabled $true -MicrosoftAuthenticatorSoftwareOathEnabled $true } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'Standards' -tenant $tenant -message "Failed to enable MS authenticator OTP/oAuth tokens. Error: $($ErrorMessage.NormalizedError)" -sev Error -LogData $ErrorMessage } } } diff --git a/Modules/CIPPTests/Public/Helpers/Test-E8AsrRule.ps1 b/Modules/CIPPTests/Public/Helpers/Test-E8AsrRule.ps1 new file mode 100644 index 0000000000000..da1f1d06ec693 --- /dev/null +++ b/Modules/CIPPTests/Public/Helpers/Test-E8AsrRule.ps1 @@ -0,0 +1,66 @@ +function Test-E8AsrRule { + <# + .SYNOPSIS + Internal helper used by E8 Macro/AppHard tests to verify a single Defender ASR rule child setting is enabled and assigned. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)] [string] $Tenant, + [Parameter(Mandatory)] [string] $TestId, + [Parameter(Mandatory)] [string] $Name, + [Parameter(Mandatory)] [string] $RuleSettingId, + [Parameter(Mandatory)] [string] $FriendlyRule, + [string] $Risk = 'High', + [string] $Category, + [string] $UserImpact = 'Medium', + [string] $ImplementationEffort = 'Medium' + ) + + try { + $ConfigPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No Intune Configuration Policies cached for this tenant.' -Risk $Risk -Name $Name -UserImpact $UserImpact -ImplementationEffort $ImplementationEffort -Category $Category + return + } + + $AsrPolicies = $ConfigPolicies | Where-Object { + $_.platforms -like '*windows10*' -and + $_.technologies -like '*mdm*' -and + ($_.settings.settingInstance.settingDefinitionId -contains 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules') + } + + if (-not $AsrPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Defender Attack Surface Reduction policy is configured for Windows 10/11.' -Risk $Risk -Name $Name -UserImpact $UserImpact -ImplementationEffort $ImplementationEffort -Category $Category + return + } + + $Matching = foreach ($P in $AsrPolicies) { + $children = $P.settings.settingInstance.groupSettingCollectionValue.children + $found = $children | Where-Object { $_.settingDefinitionId -eq $RuleSettingId } + $value = $found.choiceSettingValue.value + if ($value -like '*_block' -or $value -like '*_warn') { + [pscustomobject]@{ Policy = $P; Value = $value } + } + } + + if (-not $Matching) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "No ASR policy enables ``$FriendlyRule`` (in Block or Warn mode)." -Risk $Risk -Name $Name -UserImpact $UserImpact -ImplementationEffort $ImplementationEffort -Category $Category + return + } + + $Assigned = $Matching | Where-Object { $_.Policy.assignments -and $_.Policy.assignments.Count -gt 0 } + + if ($Assigned) { + $Status = 'Passed' + $Result = "ASR rule ``$FriendlyRule`` is enabled and assigned in $($Assigned.Count) policy/policies." + } else { + $Status = 'Failed' + $Result = "ASR rule ``$FriendlyRule`` is configured but not assigned to any group/device." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk $Risk -Name $Name -UserImpact $UserImpact -ImplementationEffort $ImplementationEffort -Category $Category + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk $Risk -Name $Name -UserImpact $UserImpact -ImplementationEffort $ImplementationEffort -Category $Category + } +} diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_2.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_2.ps1 index 4684f72618f06..6ba82dcf1b788 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_2.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_2.ps1 @@ -33,8 +33,11 @@ function Invoke-CippTestCIS_1_1_2 { } } + # roleDefinitionId carries the role's TEMPLATE id, not the directoryRole instance id, so + # comparing it to $GA.id never matched and no PIM-assigned admin was ever counted here — + # only the direct members above. foreach ($Assignment in @($RoleAssignmentScheduleInstances)) { - if ($Assignment.roleDefinitionId -eq $GA.id -and $Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime -and $Assignment.principalId) { + if ($Assignment.roleDefinitionId -eq $GA.roleTemplateId -and $Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime -and $Assignment.principalId) { [void]$GAUserIds.Add([string]$Assignment.principalId) } } diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_3.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_3.ps1 index fe93d5b980b06..441f577a97d25 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_3.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_3.ps1 @@ -28,8 +28,11 @@ function Invoke-CippTestCIS_1_1_3 { } } + # roleDefinitionId carries the role's TEMPLATE id, not the directoryRole instance id, so + # comparing it to $GA.id never matched and no PIM-assigned admin was ever counted here — + # only the direct members above. foreach ($Assignment in @($RoleAssignmentScheduleInstances)) { - if ($Assignment.roleDefinitionId -eq $GA.id -and $Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime -and $Assignment.principalId) { + if ($Assignment.roleDefinitionId -eq $GA.roleTemplateId -and $Assignment.assignmentType -eq 'Assigned' -and $null -eq $Assignment.endDateTime -and $Assignment.principalId) { [void]$GAMembers.Add([string]$Assignment.principalId) } } diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_4.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_4.ps1 index 9c69b5aea1c4e..9b0eaedac7c9e 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_4.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_1_1_4.ps1 @@ -6,7 +6,7 @@ function Invoke-CippTestCIS_1_1_4 { param($Tenant) try { - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' @@ -18,9 +18,10 @@ function Invoke-CippTestCIS_1_1_4 { $PrivilegedRoleIds = [System.Collections.Generic.HashSet[string]]::new() $PrivilegedUserIds = [System.Collections.Generic.HashSet[string]]::new() - foreach ($Role in @($Roles.Where({ $_.isPrivileged -eq $true }))) { - if ($Role.id) { - [void]$PrivilegedRoleIds.Add([string]$Role.id) + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { + [void]$PrivilegedRoleIds.Add($RoleTemplateId) } foreach ($Member in @($Role.members)) { diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_1.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_1.ps1 index 3cd5c1eca8f6b..6778b8ceeeaca 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_1.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_1.ps1 @@ -7,14 +7,15 @@ function Invoke-CippTestCIS_5_2_2_1 { try { $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles if (-not $CA -or -not $Roles) { Add-CippTestResult -TenantFilter $Tenant -TestId 'CIS_5_2_2_1' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (ConditionalAccessPolicies or Roles) not found. Please refresh the cache for this tenant.' -Risk 'High' -Name 'MFA is enabled for all users in administrative roles' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Authentication' return } - $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new([string[]]$Roles.Where({ $_.isPrivileged -eq $true }).id) + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new([string[]]@($Roles | ForEach-Object { if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } })) $Matching = $CA.Where({ $_.state -eq 'enabled' -and diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_4.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_4.ps1 index c30b77edc38a0..a8170cb48189d 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_4.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_4.ps1 @@ -7,14 +7,15 @@ function Invoke-CippTestCIS_5_2_2_4 { try { $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles if (-not $CA -or -not $Roles) { Add-CippTestResult -TenantFilter $Tenant -TestId 'CIS_5_2_2_4' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (ConditionalAccessPolicies or Roles) not found.' -Risk 'Medium' -Name 'Sign-in frequency for administrative users is configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Session Management' return } - $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new([string[]]$Roles.Where({ $_.isPrivileged -eq $true }).id) + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new([string[]]@($Roles | ForEach-Object { if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } })) $Matching = $CA.Where({ $_.state -eq 'enabled' -and diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_5.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_5.ps1 index bfc12f0bceede..8ef0c74e6d816 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_5.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_5_2_2_5.ps1 @@ -7,7 +7,7 @@ function Invoke-CippTestCIS_5_2_2_5 { try { $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles $Strengths = Get-CIPPTestData -TenantFilter $Tenant -Type 'AuthenticationStrengths' if (-not $CA -or -not $Roles) { @@ -15,7 +15,8 @@ function Invoke-CippTestCIS_5_2_2_5 { return } - $PrivRoleIds = ($Roles | Where-Object { $_.isPrivileged -eq $true }).id + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $PrivRoleIds = @($Roles | ForEach-Object { if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } }) $PhishResistantId = '00000000-0000-0000-0000-000000000004' # Built-in 'Phishing-resistant MFA' strength $Matching = $CA | Where-Object { diff --git a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_8_2_1.ps1 b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_8_2_1.ps1 index dc196f8c0935b..87702dbc75df5 100644 --- a/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_8_2_1.ps1 +++ b/Modules/CIPPTests/Public/Tests/CIS/Identity/Invoke-CippTestCIS_8_2_1.ps1 @@ -19,7 +19,7 @@ function Invoke-CippTestCIS_8_2_1 { $PolicyDisabled = $E.EnableFederationAccess -eq $false $TenantDisabled = $F.AllowFederatedUsers -eq $false - $TenantAllowList = $F.AllowedDomains -and ($F.AllowedDomains.AllowedDomain -or ($F.AllowedDomains -is [array] -and $F.AllowedDomains.Count -gt 0)) + $TenantAllowList = $F.AllowedDomains -and ($F.AllowedDomains.AllowList -or $F.AllowedDomains.AllowedDomain -or ($F.AllowedDomains -is [array] -and $F.AllowedDomains.Count -gt 0)) if ($PolicyDisabled -or $TenantDisabled -or $TenantAllowList) { $Status = 'Passed' diff --git a/Modules/CIPPTests/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 b/Modules/CIPPTests/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 index b4968c25a793a..e8117ad8db535 100644 --- a/Modules/CIPPTests/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 +++ b/Modules/CIPPTests/Public/Tests/CISA/Identity/Invoke-CippTestCISAMSEXO141.ps1 @@ -33,7 +33,7 @@ function Invoke-CippTestCISAMSEXO141 { $null = $Result.Append("| Policy Name | Current Action | Expected |`n") $null = $Result.Append("| :---------- | :------------- | :------- |`n") foreach ($Policy in $FailedPolicies) { - $null = $Result.Append("| $($Policy.'Policy Name') | $($Policy.'Current Action') | $($Policy.Expected) |`n") + $null = $Result.Append("| $($Policy.Name) | $($Policy.HighConfidenceSpamAction) | Quarantine |`n") } $Status = 'Failed' } diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.md new file mode 100644 index 0000000000000..504d1286c14b6 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.md @@ -0,0 +1,13 @@ +Application control (allowlisting) is the most effective single mitigation against malware. Implement WDAC, Smart App Control, or AppLocker on all Windows endpoints. + +**Remediation Action** + +1. Intune > Endpoint security > Account protection / Attack surface reduction > **App and browser control** or **Microsoft Defender Application Control (WDAC)**. +2. Deploy a base policy in audit mode, then move to enforced mode. +3. Assign to all Windows devices. + +**Links** +- [WDAC overview](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.ps1 new file mode 100644 index 0000000000000..1b650e5e478d0 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_01.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestE8_AppCtrl_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Application Control, ML1) - Application control is implemented on workstations + #> + param($Tenant) + + $TestId = 'E8_AppCtrl_01' + $Name = 'Application control (WDAC / Smart App Control / AppLocker) is configured for Windows endpoints' + + try { + $ConfigPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + + if (-not $ConfigPolicies) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No Intune Configuration Policies cached for this tenant.' -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Application Control' + return + } + + $AppControlPolicies = $ConfigPolicies | Where-Object { + $ids = $_.settings.settingInstance.settingDefinitionId + ($ids -match 'applicationcontrol') -or ($ids -match 'smartappcontrol') -or ($ids -match 'applocker') + } + $Assigned = $AppControlPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($Assigned) { + $Status = 'Passed' + $Result = "$($Assigned.Count) application-control policy/policies (WDAC/Smart App Control/AppLocker) are configured and assigned." + } elseif ($AppControlPolicies) { + $Status = 'Failed' + $Result = "$($AppControlPolicies.Count) application-control policy/policies exist but none are assigned." + } else { + $Status = 'Failed' + $Result = 'No WDAC, Smart App Control, or AppLocker configuration policy is deployed via Intune.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Application Control' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Application Control' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.md new file mode 100644 index 0000000000000..e85bbf1e8c602 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.md @@ -0,0 +1,12 @@ +ISM-0843 — application control covers more than `.exe`. Scripts (PS1/JS/VBS), DLLs, MSIs, HTAs, drivers, and control panel applets must all be subject to allowlisting. + +**Remediation Action** + +1. Author / extend WDAC policy XML to set `Enabled:Audit Mode` off for the additional file rule levels (DLL, Script, MSI, etc.). +2. Deploy via Intune > Endpoint security > Application Control for Business policy XML. + +**Links** +- [WDAC policy file rules](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/design/select-types-of-rules-to-create) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.ps1 new file mode 100644 index 0000000000000..ecc0ac4cb9a2d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_02.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_AppCtrl_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Application Control, ML2) - App control allowlist covers all executable types (ISM-0843) + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppCtrl_02' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm WDAC/AppLocker rules cover executables, software libraries (DLLs/OCX), scripts (PS1, JS, VBS), installers (MSI/MSIX), compiled HTML, HTA, control panel applets, and drivers. The full rule contents are stored as XML inside Intune profiles which are not easily summarised; review the deployed policy in Intune.' -Risk 'High' -Name 'Application control covers all executable types (ISM-0843)' -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML2 - Application Control' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.md new file mode 100644 index 0000000000000..34246723caa07 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.md @@ -0,0 +1,12 @@ +Microsoft maintains a Recommended Block Rules list that bans known LOLBin abuse (e.g. `bginfo`, `cdb`, `csi`, `dnx`, `mshta` minus exceptions). Merge this list into your WDAC policy. + +**Remediation Action** + +1. Download the latest WDAC recommended block rules XML from Microsoft. +2. Merge with your base policy and re-deploy via Intune. + +**Links** +- [Microsoft recommended block rules](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/design/applications-that-can-bypass-wdac) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.ps1 new file mode 100644 index 0000000000000..e9f531eeb1f3d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_03.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_AppCtrl_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Application Control, ML2) - Microsoft recommended block list is implemented + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppCtrl_03' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm Microsoft''s **recommended block rules** (LOLBins such as bash, bginfo, cdb, msbuild, powershell_ise.exe, etc.) are deployed via WDAC. The block list is published as XML at `https://aka.ms/wdac-block-rules` and is delivered through an Intune WDAC policy XML file.' -Risk 'High' -Name 'Microsoft recommended WDAC block rules are deployed' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Application Control' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.md new file mode 100644 index 0000000000000..5a06847acb07e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.md @@ -0,0 +1,12 @@ +Microsoft's vulnerable driver blocklist prevents kernel-level BYOVD attacks. On Windows 11 22H2+ it is auto-enabled with Memory Integrity; older builds require a WDAC driver policy. + +**Remediation Action** + +1. Intune > Settings catalog > **Memory Integrity / HVCI** = Enabled. +2. Confirm `Enable Microsoft Vulnerable Driver Blocklist` is on. + +**Links** +- [Microsoft recommended driver block rules](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/microsoft-recommended-driver-block-rules) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.ps1 new file mode 100644 index 0000000000000..939f67181246d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_04.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_AppCtrl_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Application Control, ML2) - Microsoft recommended driver block list is implemented + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppCtrl_04' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm the Microsoft Vulnerable Driver Blocklist is enabled via *Memory Integrity / Core Isolation*, or via WDAC driver block XML. From Windows 11 22H2 the blocklist is on by default when Memory Integrity is enabled; verify in Settings catalog under *Defender > Allow Memory Integrity*.' -Risk 'High' -Name 'Microsoft vulnerable driver blocklist is deployed' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Application Control' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.md new file mode 100644 index 0000000000000..6e21e03d58393 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.md @@ -0,0 +1,12 @@ +App-control logs (CodeIntegrity event log, AppLocker event logs) must be centrally collected so blocked-execution events become detection signals. + +**Remediation Action** + +1. Sentinel > Data connectors > Windows Security Events via AMA — include `Microsoft-Windows-CodeIntegrity/Operational` and `Microsoft-Windows-AppLocker/EXE and DLL`. +2. Or: ingest via Defender for Endpoint Advanced Hunting (`DeviceEvents | where ActionType startswith "AppControlCodeIntegrity"`). + +**Links** +- [WDAC event logs](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-id-explanations) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.ps1 new file mode 100644 index 0000000000000..489faed92a296 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppCtrl_05.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_AppCtrl_05 { + <# + .SYNOPSIS + ACSC Essential Eight (Application Control, ML3) - Application control event logs are centrally collected + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppCtrl_05' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm WDAC / AppLocker event logs (Microsoft-Windows-CodeIntegrity, Microsoft-Windows-AppLocker) are forwarded to a SIEM (Sentinel via the Windows Security Events connector or Defender for Endpoint AdvancedHunting).' -Risk 'Medium' -Name 'Application control event logs are centrally collected' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Application Control' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.md new file mode 100644 index 0000000000000..b31776277713e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.md @@ -0,0 +1,13 @@ +Web browsers are the most-attacked client application in the enterprise. Disable Flash (now removed), Java applets, and reduce drive-by exposure with an enterprise ad-blocker. + +**Remediation Action** + +1. Intune > Configuration profiles > Settings catalog > Microsoft Edge. +2. Disable plug-ins (`PluginsBlockedForUrls = *`) and Java; deploy an enterprise ad-blocker (uBlock Origin / NoScript / Edge tracking prevention strict). +3. Repeat for Chrome / Firefox where deployed. + +**Links** +- [ACSC Essential Eight - User Application Hardening](https://learn.microsoft.com/en-us/compliance/anz/e8-uah) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.ps1 new file mode 100644 index 0000000000000..16a0a60b1529b --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_01.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_AppHard_01 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML1) - Web browsers block Flash, web ads and Java content + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppHard_01' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm Edge / Chrome / Firefox managed policies disable Flash and Java plugins, and that an enterprise ad-blocking solution is in place. Browser policies (e.g. Edge ADMX *PluginsBlockedForUrls*, *DefaultPluginsSetting*) live in the Settings Catalog; confirming end-to-end enforcement requires inspection beyond what is cached.' -Risk 'High' -Name 'Web browsers block Flash, web ads, and Java content (ISM-1486)' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.md new file mode 100644 index 0000000000000..3d9869a1fb8fc --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.md @@ -0,0 +1,12 @@ +Internet Explorer 11 is retired and unsupported. Even though Edge can render legacy sites in IE Mode, the standalone IE11 desktop must be disabled to prevent its insecure scripting engines being exposed. + +**Remediation Action** + +1. Intune > Settings catalog > Internet Explorer > **Disable Internet Explorer 11 as a standalone browser** = Enabled. +2. Curate the IE Mode site list in Edge Update for any legacy line-of-business apps. + +**Links** +- [Internet Explorer 11 desktop app retirement](https://learn.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support-microsoft-365) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.ps1 new file mode 100644 index 0000000000000..1da0a2a831aef --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_02.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_AppHard_02 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML1) - Internet Explorer 11 is disabled or removed + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppHard_02' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. IE11 has been retired by Microsoft, but the legacy MSHTML engine and IE mode still exist on Windows. Confirm IE11 desktop is disabled via the *DisableInternetExplorerApp* policy and that any IE-mode site list is curated. CIPP cannot verify per-device installation state of legacy components from Graph.' -Risk 'High' -Name 'Internet Explorer 11 is disabled or removed (ISM-1666)' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.md new file mode 100644 index 0000000000000..78832029e053d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.md @@ -0,0 +1,12 @@ +Malicious PDFs are a long-standing delivery vector. Configure the standard PDF viewer with Protected View on, JavaScript disabled, and external content blocked. + +**Remediation Action** + +1. Intune > Settings catalog > deploy ADMX for the chosen viewer (Adobe Acrobat, Foxit, Edge built-in viewer). +2. Disable JavaScript inside PDFs and enable Protected View / Sandbox. + +**Links** +- [Acrobat enterprise hardening](https://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/index.html) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.ps1 new file mode 100644 index 0000000000000..d52b8cfd98777 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_03.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_AppHard_03 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML1) - PDF viewers are configured securely + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppHard_03' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm the standard organisation PDF viewer (Edge, Adobe Acrobat Reader, Foxit, etc.) is configured with Protected View / Sandbox enabled and JavaScript disabled. PDF viewer configuration is application-specific and not exposed via Graph; verify by reviewing the deployed Intune ADMX/Settings Catalog policy.' -Risk 'High' -Name 'PDF viewers are configured securely (Protected View, no JavaScript)' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.md new file mode 100644 index 0000000000000..7ef2b88de046e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.md @@ -0,0 +1,12 @@ +.NET Framework 3.5 (which carries .NET 2.0 and 3.0 runtimes) lacks modern hardening — no AMSI, no per-app strong name verification — and is a frequent ROP gadget source. Remove it from SOEs. + +**Remediation Action** + +1. Intune > Endpoint security > Compliance policies > custom compliance script: fail when `(Get-WindowsOptionalFeature -Online -FeatureName 'NetFx3').State -eq 'Enabled'`. +2. Remediate via PSscript: `Disable-WindowsOptionalFeature -Online -FeatureName NetFx3`. + +**Links** +- [.NET Framework lifecycle](https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.ps1 new file mode 100644 index 0000000000000..991de2ffee7a4 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_04.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_AppHard_04 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML1) - Legacy .NET Framework 3.5/2.0 is removed or disabled + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppHard_04' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm .NET Framework 3.5 (which includes 2.0 and 3.0) is uninstalled or never installed on standard SOEs. CIPP can list detected applications via the Intune Discovered Apps inventory but the optional Windows feature state is not surfaced; verify with an Intune Compliance Policy or PowerShell script (Get-WindowsOptionalFeature -FeatureName NetFx3).' -Risk 'High' -Name '.NET Framework 3.5/2.0 is removed (ISM-1655)' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.md new file mode 100644 index 0000000000000..94b748e3d3a20 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.md @@ -0,0 +1,12 @@ +Windows PowerShell 2.0 lacks AMSI, ScriptBlockLogging, and the Constrained Language Mode hardening present in 5.1+. Attackers downgrade to v2 to bypass logging. Remove the optional feature. + +**Remediation Action** + +1. Intune > Compliance / Remediation script: `Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2,MicrosoftWindowsPowerShellV2Root -NoRestart`. +2. Verify with `Get-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2*`. + +**Links** +- [PowerShell v2 deprecation](https://learn.microsoft.com/en-us/powershell/scripting/whats-new/what-s-new-in-powershell-50) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.ps1 new file mode 100644 index 0000000000000..a79786597fc3e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_05.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_AppHard_05 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML1) - Windows PowerShell 2.0 is removed or disabled + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_AppHard_05' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm the Windows optional feature *MicrosoftWindowsPowerShellV2* is removed from all Windows endpoints. PowerShell 2.0 lacks AMSI and ScriptBlockLogging. Verify with an Intune compliance script (Get-WindowsOptionalFeature -FeatureName MicrosoftWindowsPowerShellV2*).' -Risk 'High' -Name 'Windows PowerShell 2.0 is removed (ISM-1622)' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.md new file mode 100644 index 0000000000000..e867d1a70201e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.md @@ -0,0 +1,13 @@ +Credential theft from `lsass.exe` (e.g. Mimikatz) is the foundation of most lateral movement attacks. The ASR rule blocks reads against LSASS memory by untrusted processes. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block credential stealing from the Windows local security authority subsystem* to **Block**. +3. Assign to all Windows endpoints; pair with Credential Guard. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.ps1 new file mode 100644 index 0000000000000..26078a0bf9864 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_06.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_06 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML2) - ASR rule "Block credential stealing from LSASS" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_06' ` + -Name 'ASR rule "Block credential stealing from the Windows local security authority subsystem (lsass.exe)"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockcredentialstealingfromwindowslocalsecurityauthoritysubsystem' ` + -FriendlyRule 'Block credential stealing from the Windows local security authority subsystem' ` + -Risk 'High' -Category 'E8 ML2 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.md new file mode 100644 index 0000000000000..cc2f7ea7a3942 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.md @@ -0,0 +1,13 @@ +Email is the #1 phishing vector. The ASR rule **Block executable content from email client and webmail** prevents Outlook (or web browsers viewing webmail) from saving and launching `.exe`/`.scr`/`.js` attachments. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block executable content from email client and webmail* to **Block**. +3. Assign to all Windows endpoints. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.ps1 new file mode 100644 index 0000000000000..932ef79741997 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_07.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_07 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML2) - ASR rule "Block executable content from email and webmail" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_07' ` + -Name 'ASR rule "Block executable content from email client and webmail"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutablecontentfromemailclientandwebmail' ` + -FriendlyRule 'Block executable content from email client and webmail' ` + -Risk 'High' -Category 'E8 ML2 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.md new file mode 100644 index 0000000000000..ecf5bbac7c7d7 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.md @@ -0,0 +1,12 @@ +Obfuscated PowerShell, JavaScript, and VBScript are hallmarks of malware delivery. The ASR rule blocks scripts that exhibit obfuscation patterns from running. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block execution of potentially obfuscated scripts* to **Block** (start with *Warn* if you suspect false positives). + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.ps1 new file mode 100644 index 0000000000000..3f5a18f499c81 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_08.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_08 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML2) - ASR rule "Block execution of potentially obfuscated scripts" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_08' ` + -Name 'ASR rule "Block execution of potentially obfuscated scripts"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts' ` + -FriendlyRule 'Block execution of potentially obfuscated scripts' ` + -Risk 'High' -Category 'E8 ML2 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.md new file mode 100644 index 0000000000000..e77c618ad94f4 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.md @@ -0,0 +1,12 @@ +Many drive-by downloads end with a JavaScript or VBScript stub that pulls down and runs a binary. This ASR rule terminates that hand-off. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block JavaScript or VBScript from launching downloaded executable content* to **Block**. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.ps1 new file mode 100644 index 0000000000000..20c1cf782dcda --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_09.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_09 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML2) - ASR rule "Block JS/VBS launching downloaded executable content" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_09' ` + -Name 'ASR rule "Block JavaScript or VBScript from launching downloaded executable content"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockjavascriptorvbscriptfromlaunchingdownloadedexecutablecontent' ` + -FriendlyRule 'Block JavaScript or VBScript from launching downloaded executable content' ` + -Risk 'High' -Category 'E8 ML2 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.md new file mode 100644 index 0000000000000..ef8f7ddfe8434 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.md @@ -0,0 +1,13 @@ +Removable media is a common malware vector. This ASR rule blocks unsigned/untrusted executables from launching when run from USB drives. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block untrusted and unsigned processes that run from USB* to **Block**. +3. Pair with a removable storage access policy if USB is not required. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.ps1 new file mode 100644 index 0000000000000..6c9cd88b38c95 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_10.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_10 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML3) - ASR rule "Block untrusted/unsigned processes from USB" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_10' ` + -Name 'ASR rule "Block untrusted and unsigned processes that run from USB"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockuntrustedunsignedprocessesthatrunfromusb' ` + -FriendlyRule 'Block untrusted and unsigned processes that run from USB' ` + -Risk 'Medium' -Category 'E8 ML3 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.md new file mode 100644 index 0000000000000..4aaa8a80dbcc3 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.md @@ -0,0 +1,13 @@ +PsExec and WMI process creation are heavily abused for lateral movement. This ASR rule blocks processes spawned through these mechanisms unless explicitly allowed. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block process creations originating from PsExec and WMI commands* to **Block**. +3. Note: this may impact some legitimate management tooling — pilot first. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.ps1 new file mode 100644 index 0000000000000..20bcc8b1022ac --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_11.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_11 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML3) - ASR rule "Block process creations from PsExec and WMI commands" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_11' ` + -Name 'ASR rule "Block process creations originating from PsExec and WMI commands"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockprocesscreationsfrompsexecandwmicommands' ` + -FriendlyRule 'Block process creations originating from PsExec and WMI commands' ` + -Risk 'High' -Category 'E8 ML3 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.md new file mode 100644 index 0000000000000..8d7cd18f39d19 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.md @@ -0,0 +1,13 @@ +Bring-Your-Own-Vulnerable-Driver (BYOVD) is a common kernel-privilege escalation technique. This ASR rule blocks Microsoft's curated list of known-bad signed drivers from loading. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block abuse of exploited vulnerable signed drivers* to **Block**. +3. Pair with the Microsoft vulnerable driver blocklist (Smart App Control / WDAC). + +**Links** +- [Microsoft recommended driver block rules](https://learn.microsoft.com/en-us/windows/security/application-security/application-control/microsoft-recommended-driver-block-rules) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.ps1 new file mode 100644 index 0000000000000..7f8efedb98f31 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_12.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_12 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML3) - ASR rule "Block abuse of exploited vulnerable signed drivers" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_12' ` + -Name 'ASR rule "Block abuse of exploited vulnerable signed drivers"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockabuseofexploitedvulnerablesigneddrivers' ` + -FriendlyRule 'Block abuse of exploited vulnerable signed drivers' ` + -Risk 'High' -Category 'E8 ML3 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.md new file mode 100644 index 0000000000000..e07093adf7364 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.md @@ -0,0 +1,12 @@ +WMI event subscriptions are a stealthy persistence mechanism (ATT&CK T1546.003). This ASR rule blocks creation of new WMI event consumers/filters/bindings. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block persistence through WMI event subscription* to **Block**. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.ps1 new file mode 100644 index 0000000000000..5a88b0185e7c2 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_13.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_13 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML3) - ASR rule "Block persistence through WMI event subscription" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_13' ` + -Name 'ASR rule "Block persistence through WMI event subscription"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockpersistencethroughwmieventsubscription' ` + -FriendlyRule 'Block persistence through WMI event subscription' ` + -Risk 'Medium' -Category 'E8 ML3 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.md new file mode 100644 index 0000000000000..1441fa643b5b4 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.md @@ -0,0 +1,13 @@ +Defender's advanced ransomware protection rule uses cloud-delivered ML to detect and block ransomware behaviour patterns even when the binary itself is unknown. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Use advanced protection against ransomware* to **Block**. +3. Pair with Controlled Folder Access for additional anti-ransomware defence. + +**Links** +- [ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.ps1 new file mode 100644 index 0000000000000..25bf3b6c77be4 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_AppHard_14.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_AppHard_14 { + <# + .SYNOPSIS + ACSC Essential Eight (User Application Hardening, ML3) - ASR rule "Use advanced protection against ransomware" is enabled and assigned + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_AppHard_14' ` + -Name 'ASR rule "Use advanced protection against ransomware"' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_useadvancedprotectionagainstransomware' ` + -FriendlyRule 'Use advanced protection against ransomware' ` + -Risk 'High' -Category 'E8 ML3 - User Application Hardening' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.md new file mode 100644 index 0000000000000..bda0c651ef616 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.md @@ -0,0 +1,14 @@ +Office macros are a major delivery vector for malware. The Defender Attack Surface Reduction rule **Block Win32 API calls from Office macros** stops a macro from invoking the Windows API directly, which is how most macro-based loaders detonate. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction > Create policy (Windows 10+, Endpoint detection and response/Attack Surface Reduction Rules). +2. Set *Block Win32 API calls from Office macros* to **Block** (or *Warn*). +3. Assign to all Windows devices. + +**Links** +- [ACSC Essential Eight - Configure Microsoft Office macros](https://learn.microsoft.com/en-us/compliance/anz/e8-macro) +- [Defender ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.ps1 new file mode 100644 index 0000000000000..8403fac123f86 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_01.ps1 @@ -0,0 +1,14 @@ +function Invoke-CippTestE8_Macro_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML1) - Win32 API calls from Office macros are blocked via ASR + #> + param($Tenant) + + $TestId = 'E8_Macro_01' + $Name = 'ASR rule "Block Win32 API calls from Office macros" is enabled and assigned' + $RuleId = 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockwin32apicallsfromofficemacros' + $Friendly = 'Block Win32 API calls from Office macros' + + Test-E8AsrRule -Tenant $Tenant -TestId $TestId -Name $Name -RuleSettingId $RuleId -FriendlyRule $Friendly -Risk 'High' -Category 'E8 ML1 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.md new file mode 100644 index 0000000000000..3f90f556da36d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.md @@ -0,0 +1,13 @@ +Office macros frequently drop and execute payloads. The ASR rule **Block Office applications from creating executable content** prevents Word/Excel/PowerPoint from writing `.exe`/`.dll`/`.scr`/macros that drop binaries to disk. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block Office applications from creating executable content* to **Block** (or *Warn*). +3. Assign to all Windows devices. + +**Links** +- [Defender ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.ps1 new file mode 100644 index 0000000000000..0f7d019aeaa2e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_02.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_Macro_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML1) - Office apps blocked from creating executable content via ASR + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_Macro_02' ` + -Name 'ASR rule "Block Office applications from creating executable content" is enabled and assigned' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfromcreatingexecutablecontent' ` + -FriendlyRule 'Block Office applications from creating executable content' ` + -Risk 'High' -Category 'E8 ML1 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.md new file mode 100644 index 0000000000000..70785a432a746 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.md @@ -0,0 +1,13 @@ +Macro-based attacks routinely launch PowerShell, cmd, or wscript as a child of Word/Excel. The ASR rule **Block all Office applications from creating child processes** blocks this entire technique class. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block all Office applications from creating child processes* to **Block**. +3. Assign to all Windows devices. + +**Links** +- [Defender ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.ps1 new file mode 100644 index 0000000000000..8089fc95e1c9d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_03.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_Macro_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML1) - Office apps blocked from creating child processes via ASR + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_Macro_03' ` + -Name 'ASR rule "Block all Office applications from creating child processes" is enabled and assigned' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockallofficeapplicationsfromcreatingchildprocesses' ` + -FriendlyRule 'Block all Office applications from creating child processes' ` + -Risk 'High' -Category 'E8 ML1 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.md new file mode 100644 index 0000000000000..eabf6b3df9abb --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.md @@ -0,0 +1,13 @@ +Code injection is a common technique used by malicious macros to evade detection by piggy-backing on a legitimate process. The ASR rule **Block Office applications from injecting code into other processes** disrupts this. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block Office applications from injecting code into other processes* to **Block**. +3. Assign to all Windows devices. + +**Links** +- [Defender ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.ps1 new file mode 100644 index 0000000000000..f524854516dd0 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_04.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_Macro_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML2) - Office apps blocked from injecting code via ASR + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_Macro_04' ` + -Name 'ASR rule "Block Office applications from injecting code into other processes" is enabled and assigned' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficeapplicationsfrominjectingcodeintootherprocesses' ` + -FriendlyRule 'Block Office applications from injecting code into other processes' ` + -Risk 'High' -Category 'E8 ML2 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.md new file mode 100644 index 0000000000000..085a3c6f0fb51 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.md @@ -0,0 +1,13 @@ +Outlook is a frequent first-stage delivery vector. The ASR rule **Block Office communication application from creating child processes** blocks Outlook from spawning PowerShell, cmd, or scripting hosts — a key step in many phishing kill-chains. + +**Remediation Action** + +1. Intune > Endpoint security > Attack surface reduction. +2. Set *Block Office communication application from creating child processes* to **Block**. +3. Assign to all Windows devices. + +**Links** +- [Defender ASR rules reference](https://learn.microsoft.com/en-us/microsoft-365/security/defender-endpoint/attack-surface-reduction-rules-reference) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.ps1 new file mode 100644 index 0000000000000..a128ebe36cbad --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_05.ps1 @@ -0,0 +1,12 @@ +function Invoke-CippTestE8_Macro_05 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML2) - Office communication apps blocked from creating child processes via ASR + #> + param($Tenant) + Test-E8AsrRule -Tenant $Tenant -TestId 'E8_Macro_05' ` + -Name 'ASR rule "Block Office communication application from creating child processes" is enabled and assigned' ` + -RuleSettingId 'device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockofficecommunicationappfromcreatingchildprocesses' ` + -FriendlyRule 'Block Office communication application from creating child processes' ` + -Risk 'Medium' -Category 'E8 ML2 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.md new file mode 100644 index 0000000000000..1584b4db20158 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.md @@ -0,0 +1,13 @@ +Microsoft now blocks VBA macros from the internet by default in supported Office versions, but the policy must be enforced via Office Cloud Policy or Intune ADMX templates to be guaranteed in-tenant. Verify the *Block macros from running in Office files from the Internet* policy is on for Word, Excel, PowerPoint, Visio, and Outlook. + +**Remediation Action** + +1. Office Cloud Policy Service ([config.office.com](https://config.office.com)) > Customization > Policy configurations. +2. Search **Block macros from running in Office files from the Internet**. +3. Enable for each Office app and assign to all users. + +**Links** +- [Macros from the internet are blocked by default in Office](https://learn.microsoft.com/en-us/deployoffice/security/internet-macros-blocked) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.ps1 new file mode 100644 index 0000000000000..314dbba5b1b25 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_06.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Macro_06 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML2) - Macros from the internet are blocked + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Macro_06' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm the *Block macros from running in Office files from the Internet* policy is set in the Office Cloud Policy Service (or the corresponding Microsoft Endpoint Manager Settings Catalog ADMX values for Word/Excel/PowerPoint/Visio/Outlook). The setting lives under each application''s Trust Center.' -Risk 'High' -Name 'Macros from the internet are blocked' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML2 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.md new file mode 100644 index 0000000000000..05b5c8a89743a --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.md @@ -0,0 +1,12 @@ +Office VBA integrates with the Antimalware Scan Interface (AMSI) so Defender can scan macro contents at runtime. Confirm AMSI/Defender is enabled and that the *Macro Runtime Scan Scope* policy is set to *Enable for all documents*. + +**Remediation Action** + +1. Office Cloud Policy / Intune ADMX > **Macro Runtime Scan Scope** = *Enable for all documents*. +2. Confirm Defender Antivirus is the active AV (or third-party with macro AMSI integration). + +**Links** +- [Office VBA + AMSI](https://learn.microsoft.com/en-us/microsoft-365-apps/security/integration-with-amsi) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.ps1 new file mode 100644 index 0000000000000..9eaf219728b40 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_Macro_07.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Macro_07 { + <# + .SYNOPSIS + ACSC Essential Eight (Configure Office Macros, ML3) - Macros are scanned by anti-virus software + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Macro_07' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm the Office *Macro Runtime Scan Scope* policy is set to *Enable for all documents* and that Microsoft Defender Antivirus AMSI is enabled on all Windows endpoints. AMSI integration with Office macros is on by default on supported builds; this control is verified by inspecting Defender + Office configuration which is not exposed via Graph in a deterministic way.' -Risk 'High' -Name 'Macros are scanned by anti-virus software' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Configure Office Macros' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.md new file mode 100644 index 0000000000000..ac259b5b35e68 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.md @@ -0,0 +1,13 @@ +Office and other internet-facing apps must auto-update so vulnerabilities are remediated within the E8 windows (2 weeks ML1, 48 hours ML2, fully supported only ML3). + +**Remediation Action** + +1. Office Cloud Policy > **Update Channel** = *Current Channel* or *Monthly Enterprise*; **Enable Automatic Updates** = On. +2. Edge update policies (`UpdateDefault` = 1). +3. Where third-party browsers / PDF viewers are deployed, configure their auto-update. + +**Links** +- [Choose Microsoft 365 Apps update channel](https://learn.microsoft.com/en-us/deployoffice/updates/overview-update-channels) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.ps1 new file mode 100644 index 0000000000000..4c89da953fcc8 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_01.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_PatchApp_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Applications, ML1) - Office and supported applications use automatic updates + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_PatchApp_01' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm Microsoft 365 Apps is set to a current channel (Current/Monthly Enterprise) with automatic updates, and that browsers (Edge, Chrome, Firefox) and PDF viewers self-update. Office update channel can be enforced via Office Cloud Policy *UpdateChannel*; Edge auto-update via *UpdateDefault*.' -Risk 'High' -Name 'Office and supported applications use automatic updates' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Applications' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.md new file mode 100644 index 0000000000000..4271b8f6435d1 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.md @@ -0,0 +1,12 @@ +A device that has not synced with Intune for two weeks is invisible to MDM-based patching and detection. Patch state cannot be enforced or measured for these endpoints. + +**Remediation Action** + +1. Contact users of the listed devices and ensure they bring them online and sign in. +2. If a device has been offline >30 days, retire/wipe it from Intune and re-enrol when returned. + +**Links** +- [Intune device sync troubleshooting](https://learn.microsoft.com/en-us/mem/intune/remote-actions/device-sync) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.ps1 new file mode 100644 index 0000000000000..7f810f28621fe --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_02.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestE8_PatchApp_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Applications, ML1) - Managed devices have synced with Intune within the last 14 days + #> + param($Tenant) + + $TestId = 'E8_PatchApp_02' + $Name = 'Managed devices have synced with Intune within the last 14 days' + + try { + $Devices = Get-CIPPTestData -TenantFilter $Tenant -Type 'ManagedDevices' + if (-not $Devices) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No ManagedDevices cached for this tenant.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Applications' + return + } + + $Threshold = (Get-Date).AddDays(-14) + $Stale = foreach ($D in $Devices) { + $LastSync = $D.lastSyncDateTime + if (-not $LastSync) { [pscustomobject]@{ Device = $D.deviceName; LastSync = 'never' }; continue } + $LastSyncDt = [datetime]::Parse($LastSync) + if ($LastSyncDt -lt $Threshold) { [pscustomobject]@{ Device = $D.deviceName; LastSync = $LastSyncDt.ToString('yyyy-MM-dd') } } + } + + if (-not $Stale) { + $Status = 'Passed' + $Result = "All $($Devices.Count) managed device(s) have synced with Intune within the last 14 days." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Stale.Count) of $($Devices.Count) managed device(s) have not synced for >14 days; their patch state is unknown:`n`n| Device | Last sync |`n| :----- | :-------- |`n") + foreach ($S in ($Stale | Select-Object -First 50)) { $null = $Sb.Append("| $($S.Device) | $($S.LastSync) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Applications' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Applications' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.md new file mode 100644 index 0000000000000..84d1c86b6c3da --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.md @@ -0,0 +1,12 @@ +E8 ML2 requires patching of applications with critical vulnerabilities within 48 hours of an exploit becoming public. Use Microsoft Defender Vulnerability Management to identify exposed apps and prioritise. + +**Remediation Action** + +1. Defender > Vulnerability management > Weaknesses; sort by Exposed devices and Public exploit available. +2. Patch listed apps via Intune Win32 / MSIX or vendor auto-update. + +**Links** +- [Microsoft Defender Vulnerability Management](https://learn.microsoft.com/en-us/defender-vulnerability-management/) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.ps1 new file mode 100644 index 0000000000000..b0c0bd90748d7 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_03.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_PatchApp_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Applications, ML2) - Vulnerable applications detected on managed devices are reviewed + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_PatchApp_03' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Use Microsoft Defender Vulnerability Management (or the Intune Discovered Apps inventory) to triage applications with known CVEs. Patch internet-facing apps within 48 hours of an exploit being known and within 2 weeks otherwise. Determining "critical" CVE status programmatically requires Defender Vulnerability Management licensing and is not surfaced in the local cache.' -Risk 'High' -Name 'Vulnerable applications are patched within 48 hours of an exploit becoming public' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Patch Applications' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.md new file mode 100644 index 0000000000000..483fef3401021 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.md @@ -0,0 +1,12 @@ +ISM-1467 — applications that are no longer supported by the vendor must be removed because they will not receive security fixes. Examples: Office 2016 (out of support October 2025), Java 8 unsupported builds, Adobe Reader 11. + +**Remediation Action** + +1. Inventory installed apps via Intune > Apps > Discovered apps or Defender Vulnerability Management software inventory. +2. Schedule replacement / uninstall for unsupported versions. + +**Links** +- [Microsoft product lifecycle](https://learn.microsoft.com/en-us/lifecycle/products/) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.ps1 new file mode 100644 index 0000000000000..7ba4fc795a099 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchApp_04.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_PatchApp_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Applications, ML3) - Unsupported applications are removed + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_PatchApp_04' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Identify and remove applications that are no longer supported by the vendor (e.g. Office 2016/2019 past support, Adobe Reader 11, Java 8 unpatched, Flash). Use the Intune Discovered Apps inventory or Defender Vulnerability Management software inventory to enumerate.' -Risk 'High' -Name 'Unsupported applications are removed (ISM-1467)' -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Patch Applications' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.md new file mode 100644 index 0000000000000..9fc6820e60f93 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.md @@ -0,0 +1,13 @@ +Windows Update for Business is the cloud-native way to deliver OS quality and feature updates. At least one Update Ring policy must be deployed and assigned for E8 patch-OS controls to be measurable. + +**Remediation Action** + +1. Intune > Devices > Windows > Update rings for Windows 10 and later > Create. +2. Set service channel, deferral periods, and deadlines (see ML2 quality deferral test). +3. Assign to all Windows devices. + +**Links** +- [Update rings in Intune](https://learn.microsoft.com/en-us/mem/intune/protect/windows-10-update-rings) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.ps1 new file mode 100644 index 0000000000000..58b895b81594c --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_01.ps1 @@ -0,0 +1,43 @@ +function Invoke-CippTestE8_PatchOS_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML1) - A Windows Update Ring policy is configured and assigned + #> + param($Tenant) + + $TestId = 'E8_PatchOS_01' + $Name = 'A Windows Update Ring policy is configured and assigned' + + try { + $ConfigPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneConfigurationPolicies' + $LegacyPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + + $UpdateRings = @() + if ($ConfigPolicies) { + $UpdateRings += $ConfigPolicies | Where-Object { + $ids = $_.settings.settingInstance.settingDefinitionId + ($ids -match 'windowsupdate') -or ($ids -match 'update_ring') + } + } + if ($LegacyPolicies) { + $UpdateRings += $LegacyPolicies | Where-Object { + $_.'@odata.type' -eq '#microsoft.graph.windowsUpdateForBusinessConfiguration' + } + } + + if (-not $UpdateRings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows Update for Business / Update Ring configuration policy is deployed.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + return + } + + $Assigned = $UpdateRings | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + if ($Assigned) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Passed' -ResultMarkdown "$($Assigned.Count) Windows Update Ring policy/policies are configured and assigned." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "$($UpdateRings.Count) Windows Update Ring policy/policies exist but none are assigned to any group/device." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.md new file mode 100644 index 0000000000000..961afb55c4b12 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.md @@ -0,0 +1,13 @@ +Only Windows 10 22H2 (build 19045) and Windows 11 (22H2 / 23H2 / 24H2 — builds 22621/22631/26100) currently receive monthly security updates. Older builds must be upgraded. + +**Remediation Action** + +1. Use Intune Feature Update profiles to roll devices to a supported feature release. +2. For devices that cannot upgrade, retire and replace. + +**Links** +- [Windows 10 release information](https://learn.microsoft.com/en-us/windows/release-health/release-information) +- [Windows 11 release information](https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.ps1 new file mode 100644 index 0000000000000..e3caead2bd8ef --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_02.ps1 @@ -0,0 +1,52 @@ +function Invoke-CippTestE8_PatchOS_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML1) - All managed Windows devices run a supported OS build + #> + param($Tenant) + + $TestId = 'E8_PatchOS_02' + $Name = 'All managed Windows devices run a supported Windows build (Win10 22H2 / Win11 22H2+)' + + try { + $Devices = Get-CIPPTestData -TenantFilter $Tenant -Type 'ManagedDevices' + if (-not $Devices) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No ManagedDevices cached for this tenant.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Patch Operating Systems' + return + } + + $Windows = $Devices | Where-Object { $_.operatingSystem -eq 'Windows' } + if (-not $Windows) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No Windows managed devices found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Patch Operating Systems' + return + } + + # Win10 22H2 = 19045.x ; Win11 22H2 = 22621.x ; Win11 23H2 = 22631.x ; Win11 24H2 = 26100.x + $Unsupported = foreach ($D in $Windows) { + $V = $D.osVersion + if (-not $V) { continue } + $parts = $V.Split('.') + if ($parts.Count -lt 3) { continue } + $build = [int]$parts[2] + $Reason = $null + if ($build -lt 19045) { $Reason = 'Windows 10 build < 22H2 (out of support)' } + elseif ($build -ge 20000 -and $build -lt 22621) { $Reason = 'Windows 11 build < 22H2 (out of support)' } + if ($Reason) { [pscustomobject]@{ Device = $D.deviceName; OSVersion = $V; Reason = $Reason } } + } + + if (-not $Unsupported) { + $Status = 'Passed' + $Result = "All $($Windows.Count) Windows device(s) run a supported build." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Unsupported.Count) of $($Windows.Count) Windows device(s) are on unsupported builds:`n`n| Device | OS version | Reason |`n| :----- | :--------- | :----- |`n") + foreach ($U in ($Unsupported | Select-Object -First 50)) { $null = $Sb.Append("| $($U.Device) | $($U.OSVersion) | $($U.Reason) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Patch Operating Systems' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Patch Operating Systems' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.md new file mode 100644 index 0000000000000..e62d844e3c748 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.md @@ -0,0 +1,13 @@ +A device compliance policy that sets `osMinimumVersion` causes Conditional Access to block sign-ins from devices on out-of-support builds, providing a strong forcing function for OS patching. + +**Remediation Action** + +1. Intune > Devices > Compliance policies > Windows 10 / 11 policy. +2. Set **Minimum OS version** to the latest supported build (e.g. `10.0.19045.0` for Windows 10 22H2). +3. Assign to all Windows devices and pair with a CA policy requiring compliant device. + +**Links** +- [Windows compliance settings](https://learn.microsoft.com/en-us/mem/intune/protect/compliance-policy-create-windows) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.ps1 new file mode 100644 index 0000000000000..790ccf31f1e88 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_03.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestE8_PatchOS_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML1) - A device compliance policy enforces a minimum OS version + #> + param($Tenant) + + $TestId = 'E8_PatchOS_03' + $Name = 'A device compliance policy enforces a minimum Windows OS version' + + try { + $Compliance = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + if (-not $Compliance) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No Intune compliance policies cached for this tenant.' -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + return + } + + $Win = $Compliance | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' } + $WithMinVersion = $Win | Where-Object { $_.osMinimumVersion } + $Assigned = $WithMinVersion | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($Assigned) { + $Status = 'Passed' + $Result = "$($Assigned.Count) Windows compliance policy/policies enforce a minimum OS version (e.g. $($Assigned[0].osMinimumVersion))." + } elseif ($WithMinVersion) { + $Status = 'Failed' + $Result = "$($WithMinVersion.Count) Windows compliance policy/policies set a minimum OS version but none are assigned." + } else { + $Status = 'Failed' + $Result = 'No Windows compliance policy enforces a minimum OS version (`osMinimumVersion`).' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML1 - Patch Operating Systems' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.md new file mode 100644 index 0000000000000..5a1c94be5763f --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.md @@ -0,0 +1,13 @@ +E8 ML2 requires patches for the operating system within 2 weeks of release (and 48 hours for known exploited vulnerabilities). Update Rings must therefore not defer quality updates beyond 14 days. + +**Remediation Action** + +1. Intune > Devices > Update rings > each ring > Settings. +2. **Quality update deferral period (days)** = `0` for production, up to `7` for pilot. +3. Configure a deadline of 2 days for installation/restart. + +**Links** +- [Update rings in Intune](https://learn.microsoft.com/en-us/mem/intune/protect/windows-10-update-rings) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.ps1 new file mode 100644 index 0000000000000..848d61102f5a1 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_04.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestE8_PatchOS_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML2) - Quality update deferral is 14 days or less + #> + param($Tenant) + + $TestId = 'E8_PatchOS_04' + $Name = 'Windows Update Ring quality update deferral is 14 days or less' + + try { + $Legacy = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneDeviceConfigurations' + $Rings = $Legacy | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.windowsUpdateForBusinessConfiguration' } + + if (-not $Rings) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No `windowsUpdateForBusinessConfiguration` Update Ring policies cached for this tenant; quality deferral cannot be evaluated automatically.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Patch Operating Systems' + return + } + + $Bad = foreach ($R in $Rings) { + $Defer = $R.qualityUpdatesDeferralPeriodInDays + if ($null -ne $Defer -and $Defer -gt 14) { + [pscustomobject]@{ Ring = $R.displayName; Deferral = $Defer } + } + } + + if (-not $Bad) { + $Status = 'Passed' + $Result = "All $($Rings.Count) Update Ring policy/policies defer quality updates by 14 days or less." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Bad.Count) Update Ring policy/policies defer quality updates by more than 14 days:`n`n| Ring | Deferral (days) |`n| :--- | :-------------: |`n") + foreach ($B in $Bad) { $null = $Sb.Append("| $($B.Ring) | $($B.Deferral) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Patch Operating Systems' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Patch Operating Systems' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.md new file mode 100644 index 0000000000000..a39c3d8fdf26a --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.md @@ -0,0 +1,13 @@ +Feature Update profiles target a specific feature release (e.g. Windows 11 23H2) so devices stay on a supported branch automatically. + +**Remediation Action** + +1. Intune > Devices > Windows > Feature updates for Windows 10 and later > Create profile. +2. Choose the latest supported feature update version. +3. Assign to all Windows devices. + +**Links** +- [Feature updates in Intune](https://learn.microsoft.com/en-us/mem/intune/protect/windows-10-feature-updates) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.ps1 new file mode 100644 index 0000000000000..60440e405aa86 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_05.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_PatchOS_05 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML2) - A Windows Feature Update profile is configured + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_PatchOS_05' -TestType 'Devices' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm a Windows Feature Update profile (Intune > Devices > Windows > Feature updates for Windows 10 and later) is deployed targeting the latest supported feature release. Feature update profiles are stored in a Graph endpoint that is not currently part of the cached IntuneConfigurationPolicies/DeviceConfigurations collections.' -Risk 'Medium' -Name 'A Windows Feature Update profile is configured' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML2 - Patch Operating Systems' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.md b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.md new file mode 100644 index 0000000000000..030d15321e7a5 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.md @@ -0,0 +1,13 @@ +Disk encryption protects data on lost or stolen devices. The compliance policy must require BitLocker (or `storageRequireEncryption`) so devices that aren't encrypted are blocked by Conditional Access. + +**Remediation Action** + +1. Intune > Devices > Compliance policies > Windows policy > **Require BitLocker** = Require. +2. Pair with a *BitLocker* configuration profile (Endpoint security > Disk encryption) to actually enable it. +3. Assign to all Windows devices. + +**Links** +- [BitLocker policy settings](https://learn.microsoft.com/en-us/mem/intune/protect/encrypt-devices) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.ps1 b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.ps1 new file mode 100644 index 0000000000000..1681bcd1224d7 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Devices/Invoke-CippTestE8_PatchOS_06.ps1 @@ -0,0 +1,33 @@ +function Invoke-CippTestE8_PatchOS_06 { + <# + .SYNOPSIS + ACSC Essential Eight (Patch Operating Systems, ML3) - BitLocker / disk encryption is required by compliance policy + #> + param($Tenant) + + $TestId = 'E8_PatchOS_06' + $Name = 'Compliance policy requires storage to be encrypted (BitLocker)' + + try { + $Compliance = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneDeviceCompliancePolicies' + if (-not $Compliance) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No Intune compliance policies cached for this tenant.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Patch Operating Systems' + return + } + + $Win = $Compliance | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.windows10CompliancePolicy' } + $WithEnc = $Win | Where-Object { $_.bitLockerEnabled -eq $true -or $_.storageRequireEncryption -eq $true } + $Assigned = $WithEnc | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 } + + if ($Assigned) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Passed' -ResultMarkdown "$($Assigned.Count) Windows compliance policy/policies require encryption (BitLocker) and are assigned." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Patch Operating Systems' + } elseif ($WithEnc) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Encryption is required by $($WithEnc.Count) compliance policy/policies but none are assigned." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Patch Operating Systems' + } else { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown 'No Windows compliance policy requires storage encryption / BitLocker.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Patch Operating Systems' + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Patch Operating Systems' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.md new file mode 100644 index 0000000000000..7c8e9fb156d0d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.md @@ -0,0 +1,14 @@ +ISM-0445 — privileged users are issued dedicated privileged accounts that are separate from their unprivileged identities. In a Microsoft 365 tenant the strongest implementation is **cloud-only** privileged accounts so the on-premises directory cannot compromise privileged identities. This test fails any privileged role member whose `onPremisesSyncEnabled` is true. + +**Remediation Action** + +1. Create a dedicated cloud-only account on the `.onmicrosoft.com` domain for each administrator. +2. Reassign privileged roles to the cloud-only account. +3. Remove privileged role assignments from synced accounts. + +**Links** +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) +- [ISM-0445](https://www.cyber.gov.au/ism) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.ps1 new file mode 100644 index 0000000000000..43ebe72c74335 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_01.ps1 @@ -0,0 +1,59 @@ +function Invoke-CippTestE8_Admin_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML1) - Privileged accounts are dedicated cloud-only accounts (ISM-0445) + #> + param($Tenant) + + $TestId = 'E8_Admin_01' + $Name = 'Privileged accounts are dedicated cloud-only accounts (ISM-0445)' + + try { + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + + if (-not $Roles -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles or Users) not found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new() + $PrivUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { [void]$PrivRoleIds.Add($RoleTemplateId) } + foreach ($M in @($Role.members)) { + if ($M.id) { [void]$PrivUserIds.Add([string]$M.id) } + } + } + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $PrivRoleIds.Contains([string]$A.roleDefinitionId)) { + [void]$PrivUserIds.Add([string]$A.principalId) + } + } + $PrivUsers = $Users | Where-Object { $PrivUserIds.Contains($_.id) } + + if (-not $PrivUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged users found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $NonCompliant = $PrivUsers | Where-Object { $_.onPremisesSyncEnabled -eq $true } + + if (-not $NonCompliant) { + $Status = 'Passed' + $Result = "All $($PrivUsers.Count) privileged user(s) are cloud-only." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($NonCompliant.Count) of $($PrivUsers.Count) privileged user(s) are synced from on-premises Active Directory:`n`n| UPN |`n| :-- |`n") + foreach ($U in ($NonCompliant | Select-Object -First 50)) { $null = $Sb.Append("| $($U.userPrincipalName) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.md new file mode 100644 index 0000000000000..0964cc5c24c56 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.md @@ -0,0 +1,14 @@ +ISM-1175 — privileged accounts must be prevented from accessing the internet, email and web services. In a Microsoft 365 tenant the cleanest implementation is to leave privileged accounts unlicensed (no Exchange / Teams / SharePoint mailbox or apps) so that the account cannot send or receive mail, browse SharePoint, or run Office. Entra ID P2 is provisioned via group-based licensing if needed for PIM, but no productivity SKU should be attached. + +**Remediation Action** + +1. Identify each privileged user listed in the test results. +2. Remove all `Microsoft 365 / Office 365` and `Business Premium` style licenses. +3. Where an admin needs email, use a separate unprivileged mailbox. + +**Links** +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) +- [ISM-1175](https://www.cyber.gov.au/ism) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.ps1 new file mode 100644 index 0000000000000..4be920fd7608d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_02.ps1 @@ -0,0 +1,61 @@ +function Invoke-CippTestE8_Admin_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML1) - Privileged accounts have no productivity licenses (ISM-1175) + #> + param($Tenant) + + $TestId = 'E8_Admin_02' + $Name = 'Privileged accounts have no productivity licenses (ISM-1175)' + + try { + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + + if (-not $Roles -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles or Users) not found.' -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new() + $PrivUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { [void]$PrivRoleIds.Add($RoleTemplateId) } + foreach ($M in @($Role.members)) { + if ($M.id) { [void]$PrivUserIds.Add([string]$M.id) } + } + } + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $PrivRoleIds.Contains([string]$A.roleDefinitionId)) { + [void]$PrivUserIds.Add([string]$A.principalId) + } + } + $PrivUsers = $Users | Where-Object { $PrivUserIds.Contains($_.id) } + + if (-not $PrivUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged users found.' -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $Licensed = $PrivUsers | Where-Object { $_.assignedLicenses -and $_.assignedLicenses.Count -gt 0 } + + if (-not $Licensed) { + $Status = 'Passed' + $Result = "All $($PrivUsers.Count) privileged user(s) have no licenses assigned." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Licensed.Count) of $($PrivUsers.Count) privileged user(s) have productivity licenses assigned. ACSC ISM-1175 requires admins not to use mail/Teams/internet on the privileged account.`n`n| UPN | License count |`n| :-- | :-----------: |`n") + foreach ($U in ($Licensed | Select-Object -First 50)) { + $null = $Sb.Append("| $($U.userPrincipalName) | $($U.assignedLicenses.Count) |`n") + } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML1 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.md new file mode 100644 index 0000000000000..62eee976a6839 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.md @@ -0,0 +1,16 @@ +Privileged sign-ins must come from devices the organisation manages. ISM-1380, 1688 and 1689 require admins to operate from a privileged operating environment; in a cloud-first tenant the equivalent is a Conditional Access policy that requires the device to be Intune-compliant or hybrid Azure AD joined before privileged roles are activated. + +**Remediation Action** + +1. Entra ID > Conditional Access > New policy. +2. Users > Directory roles: include all privileged roles. +3. Cloud apps: All cloud apps. +4. Grant: **Require compliant device** (and/or *Require Hybrid Azure AD joined device*). +5. Enable. + +**Links** +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) +- [Require managed devices in CA](https://learn.microsoft.com/en-us/azure/active-directory/conditional-access/require-managed-devices) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.ps1 new file mode 100644 index 0000000000000..9de335c058c5b --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_03.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestE8_Admin_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML1) - Conditional Access requires a compliant device for privileged sign-ins + #> + param($Tenant) + + $TestId = 'E8_Admin_03' + $Name = 'Conditional Access requires a compliant or hybrid-joined device for privileged role sign-ins' + + try { + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $CA -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (ConditionalAccessPolicies or Roles) not found.' -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $PrivRoleIds = @($Roles | ForEach-Object { if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } }) + + $Match = $CA | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.users.includeRoles -and + (@($_.conditions.users.includeRoles) | Where-Object { $_ -in $PrivRoleIds }).Count -gt 0 -and + ( + ($_.grantControls.builtInControls -contains 'compliantDevice') -or + ($_.grantControls.builtInControls -contains 'domainJoinedDevice') + ) + } + + if ($Match) { + $Status = 'Passed' + $Result = "$($Match.Count) Conditional Access policy/policies require a compliant/domain-joined device for privileged role sign-ins:`n`n" + + (($Match | ForEach-Object { "- $($_.displayName)" }) -join "`n") + } else { + $Status = 'Failed' + $Result = 'No enabled Conditional Access policy targets privileged roles with a *Require compliant device* or *Require hybrid Azure AD joined device* grant. Privileged accounts may sign in from unmanaged endpoints.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML1 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.md new file mode 100644 index 0000000000000..1808623cdfa8e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.md @@ -0,0 +1,14 @@ +Restricting user consent for OAuth applications stops attackers from luring users (including admins) into authorising malicious third-party apps to read mail or files. The Essential Eight ISM-1883 control limits which online services privileged accounts can authorise. + +**Remediation Action** + +1. Entra ID > Enterprise applications > Consent and permissions > User consent settings. +2. Set to **Allow user consent for apps from verified publishers, for selected permissions** (low-impact) — or **Do not allow user consent**. +3. Entra ID > User settings > **Users can register applications** = No. + +**Links** +- [Configure user consent settings](https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/configure-user-consent) +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.ps1 new file mode 100644 index 0000000000000..492cb3a3da390 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_04.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestE8_Admin_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML1) - Privileged accounts are blocked from authorising risky OAuth grants (ISM-1883) + #> + param($Tenant) + + $TestId = 'E8_Admin_04' + $Name = 'User consent for risky OAuth applications is restricted (ISM-1883)' + + try { + $AuthPolicy = Get-CIPPTestData -TenantFilter $Tenant -Type 'AuthorizationPolicy' + if (-not $AuthPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'AuthorizationPolicy cache not found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $Cfg = $AuthPolicy | Select-Object -First 1 + $Permissions = $Cfg.defaultUserRolePermissions + # The assigned consent policies live at the top level of the authorization policy, not under defaultUserRolePermissions. + $UserConsent = $Cfg.permissionGrantPolicyIdsAssignedToDefaultUserRole + + $Issues = [System.Collections.Generic.List[string]]::new() + if ($Permissions.allowedToCreateApps -eq $true) { + $Issues.Add('defaultUserRolePermissions.allowedToCreateApps is true — non-admin users can register new applications.') + } + if ($Cfg.allowUserConsentForRiskyApps -eq $true) { + $Issues.Add('allowUserConsentForRiskyApps is true — users can consent to applications Microsoft flags as risky.') + } + if ($UserConsent -contains 'ManagePermissionGrantsForSelf.microsoft-user-default-legacy') { + $Issues.Add('Legacy user consent policy in effect (`ManagePermissionGrantsForSelf.microsoft-user-default-legacy`). Switch to `microsoft-user-default-low` or admin-only.') + } + + if ($Issues.Count -eq 0) { + $Status = 'Passed' + $Result = 'User consent for OAuth apps is restricted to low-impact (or admin-only).' + } else { + $Status = 'Failed' + $Result = "Risky OAuth consent configuration:`n`n$(($Issues | ForEach-Object { "- $_" }) -join "`n")" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.md new file mode 100644 index 0000000000000..692fbc06241a5 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.md @@ -0,0 +1,14 @@ +ISM-1648 — privileged access disabled after 45 days of inactivity. Stale privileged accounts are a common foothold for attackers; if no one is signing in, the account either should not exist or should be disabled. The control window is signal-of-life via Entra ID `signInActivity.lastSignInDateTime`. + +**Remediation Action** + +1. Review each stale privileged account listed. +2. Disable, delete, or remove privileged role assignments where appropriate. +3. Where the account is genuinely needed for monthly tasks, document the exception and consider PIM eligible assignment instead of permanent. + +**Links** +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) +- [ISM-1648](https://www.cyber.gov.au/ism) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.ps1 new file mode 100644 index 0000000000000..7f7873cbbe148 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_05.ps1 @@ -0,0 +1,69 @@ +function Invoke-CippTestE8_Admin_05 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML2) - No privileged account is inactive for more than 45 days (ISM-1648) + #> + param($Tenant) + + $TestId = 'E8_Admin_05' + $Name = 'No privileged account inactive for more than 45 days (ISM-1648)' + + try { + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + + if (-not $Roles -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles or Users) not found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new() + $PrivUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { [void]$PrivRoleIds.Add($RoleTemplateId) } + foreach ($M in @($Role.members)) { + if ($M.id) { [void]$PrivUserIds.Add([string]$M.id) } + } + } + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $PrivRoleIds.Contains([string]$A.roleDefinitionId)) { + [void]$PrivUserIds.Add([string]$A.principalId) + } + } + $PrivUsers = $Users | Where-Object { $PrivUserIds.Contains($_.id) -and $_.accountEnabled -eq $true } + + if (-not $PrivUsers) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No enabled privileged users found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + + $Threshold = (Get-Date).AddDays(-45) + $Stale = foreach ($U in $PrivUsers) { + $Last = $U.signInActivity.lastSignInDateTime + if (-not $Last) { continue } + $LastDt = [datetime]::Parse($Last) + if ($LastDt -lt $Threshold) { + [pscustomobject]@{ UPN = $U.userPrincipalName; LastSignIn = $LastDt.ToString('yyyy-MM-dd') } + } + } + + if (-not $Stale) { + $Status = 'Passed' + $Result = "All $($PrivUsers.Count) enabled privileged user(s) signed in within the last 45 days (or have no recorded sign-in)." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Stale.Count) of $($PrivUsers.Count) enabled privileged user(s) have not signed in for more than 45 days:`n`n| UPN | Last sign-in |`n| :-- | :----------- |`n") + foreach ($S in ($Stale | Sort-Object LastSignIn | Select-Object -First 50)) { + $null = $Sb.Append("| $($S.UPN) | $($S.LastSignIn) |`n") + } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML2 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.md new file mode 100644 index 0000000000000..804215e13c39a --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.md @@ -0,0 +1,14 @@ +ISM-1509 — privileged access events are centrally logged. The Entra ID Sign-in log and Audit log must be forwarded to a SIEM and retained for 12 months. This is configured under *Entra ID > Diagnostic settings* and depends on a target Log Analytics workspace / event hub / storage account that lives outside the tenant CIPP can read; verify manually. + +**Remediation Action** + +1. Entra ID > Diagnostic settings > Add diagnostic setting. +2. Send `SignInLogs`, `AuditLogs`, `RiskyUsers`, `UserRiskEvents`, `ServicePrincipalSignInLogs` to a Log Analytics workspace / Sentinel / Event Hub. +3. Confirm retention ≥ 12 months on the destination. + +**Links** +- [Entra ID diagnostic settings](https://learn.microsoft.com/en-us/azure/active-directory/reports-monitoring/howto-integrate-activity-logs-with-azure-monitor-logs) +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.ps1 new file mode 100644 index 0000000000000..4402d31eb7bd3 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_06.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Admin_06 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML2) - Privileged access events are forwarded to a SIEM (ISM-1509) + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Admin_06' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm Entra ID Sign-in and Audit logs (and Microsoft 365 Unified Audit Log) are forwarded to a SIEM (Sentinel, Splunk, etc.) and retained for at least 12 months. CIPP cannot verify diagnostic settings or external SIEM connectivity from the partner tenant.' -Risk 'Medium' -Name 'Privileged access events are centrally logged (ISM-1509)' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.md new file mode 100644 index 0000000000000..50f9723f57f05 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.md @@ -0,0 +1,14 @@ +Microsoft and ACSC both recommend 2-4 dedicated cloud-only Global Administrator break-glass accounts on the `*.onmicrosoft.com` domain that are excluded from MFA-enforcing Conditional Access policies. Their purpose is recovery during a Conditional Access misconfiguration or MFA service outage. + +**Remediation Action** + +1. Maintain 2 (recommended) or up to 4 cloud-only `*.onmicrosoft.com` GA accounts. +2. Exclude them from MFA-required Conditional Access policies. +3. Protect them with FIDO2 / hardware tokens, store credentials in a sealed envelope, monitor sign-ins via Sentinel. + +**Links** +- [Manage emergency access accounts](https://learn.microsoft.com/en-us/azure/active-directory/roles/security-emergency-access) +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.ps1 new file mode 100644 index 0000000000000..5d9a8b2267b2e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_07.ps1 @@ -0,0 +1,75 @@ +function Invoke-CippTestE8_Admin_07 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML2) - Break-glass accounts exist and are excluded from MFA enforcement + #> + param($Tenant) + + $TestId = 'E8_Admin_07' + $Name = 'Break-glass accounts (2-4) exist and are excluded from at least one MFA Conditional Access policy' + + try { + $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + + if (-not $Roles -or -not $Users -or -not $CA) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles, Users or ConditionalAccessPolicies) not found.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + + $GaRole = $Roles | Where-Object { $_.displayName -eq 'Global Administrator' } | Select-Object -First 1 + if (-not $GaRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Global Administrator role not found in the Roles cache.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + + $GaTemplateId = if ($GaRole.roleTemplateId) { [string]$GaRole.roleTemplateId } elseif ($GaRole.RoletemplateId) { [string]$GaRole.RoletemplateId } else { $null } + + $GaUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($M in @($GaRole.members)) { + if ($M.id) { [void]$GaUserIds.Add([string]$M.id) } + } + # RoleAssignmentScheduleInstances.roleDefinitionId is a role template ID, not the directory role instance ID. + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $GaTemplateId -and [string]$A.roleDefinitionId -eq $GaTemplateId) { + [void]$GaUserIds.Add([string]$A.principalId) + } + } + $GaUsers = $Users | Where-Object { $GaUserIds.Contains($_.id) } + $BreakGlass = $GaUsers | Where-Object { $_.userPrincipalName -like '*onmicrosoft.com' -and $_.accountEnabled -eq $true } + + if (-not $BreakGlass -or $BreakGlass.Count -lt 2) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Only $($BreakGlass.Count) Global Administrator(s) on the *.onmicrosoft.com domain. ACSC guidance recommends 2-4 dedicated cloud-only break-glass accounts." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + if ($BreakGlass.Count -gt 4) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "$($BreakGlass.Count) cloud-only Global Administrators exist. Excessive break-glass accounts increase risk; reduce to 2-4." -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + return + } + + $BreakGlassIds = [System.Collections.Generic.HashSet[string]]::new([string[]]$BreakGlass.id) + $MfaPolicies = $CA | Where-Object { + $_.state -eq 'enabled' -and + (($_.grantControls.builtInControls -contains 'mfa') -or $_.grantControls.authenticationStrength) + } + $WithExclusion = foreach ($P in $MfaPolicies) { + $Excluded = $P.conditions.users.excludeUsers + if ($Excluded -and (@($Excluded) | Where-Object { $BreakGlassIds.Contains($_) }).Count -gt 0) { $P } + } + + if ($WithExclusion) { + $Status = 'Passed' + $Result = "$($BreakGlass.Count) break-glass account(s) found. They are excluded from $((@($WithExclusion)).Count) MFA-enforcing Conditional Access policy/policies." + } else { + $Status = 'Failed' + $Result = "$($BreakGlass.Count) break-glass account(s) exist but no MFA-enforcing Conditional Access policy excludes them. A token-service MFA outage will lock the tenant." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.md new file mode 100644 index 0000000000000..f83c1b86a154b --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.md @@ -0,0 +1,14 @@ +ISM-1508 — privileged accounts are time-bound and reauthenticated for each session. Microsoft's equivalent is Privileged Identity Management (PIM): admins are *eligible* for a role and must activate it for a limited time. This test fails when highly-privileged roles have permanent (active) assignments rather than eligible-only. + +**Remediation Action** + +1. Entra ID > Privileged Identity Management > Microsoft Entra roles. +2. For each role listed, convert all members from *Active* to *Eligible*. +3. Set max activation duration ≤ 8 hours; require justification + MFA on activation. + +**Links** +- [PIM in Microsoft Entra](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-configure) +- [ACSC Essential Eight - Restrict Administrative Privileges](https://learn.microsoft.com/en-us/compliance/anz/e8-admin) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.ps1 new file mode 100644 index 0000000000000..5c7a0fee1911f --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_08.ps1 @@ -0,0 +1,70 @@ +function Invoke-CippTestE8_Admin_08 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML3) - Just-in-Time / PIM is used for highly privileged roles (ISM-1508) + #> + param($Tenant) + + $TestId = 'E8_Admin_08' + $Name = 'Just-in-Time activation (PIM eligibility) is used for highly privileged roles' + + $HighlyPriv = @('Global Administrator','Privileged Role Administrator','Privileged Authentication Administrator','Conditional Access Administrator','Intune Administrator','Security Administrator') + + try { + $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + + if (-not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles) not found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Restrict Admin Privileges' + return + } + + # Without PIM active-assignment data we cannot distinguish permanent assignments from + # PIM-eligible activation, so treating a missing cache as "compliant" would be a false pass. + if (-not $RoleAssignmentScheduleInstances) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'RoleAssignmentScheduleInstances (PIM active assignments) cache not found — cannot verify whether highly-privileged roles use Just-in-Time activation.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Restrict Admin Privileges' + return + } + + $TargetRoles = $Roles | Where-Object { $_.displayName -in $HighlyPriv } + if (-not $TargetRoles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No highly-privileged roles found in cache.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Restrict Admin Privileges' + return + } + + # RoleAssignmentScheduleInstances.roleDefinitionId is a role template ID, not a directory role instance ID. + $TargetRoleTemplates = @{} + foreach ($R in $TargetRoles) { + $Tid = if ($R.roleTemplateId) { [string]$R.roleTemplateId } elseif ($R.RoletemplateId) { [string]$R.RoletemplateId } else { $null } + if ($Tid) { $TargetRoleTemplates[$Tid] = $R.displayName } + } + $PermanentByRole = @{} + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $TargetRoleTemplates.ContainsKey([string]$A.roleDefinitionId)) { + $key = [string]$A.roleDefinitionId + if (-not $PermanentByRole.ContainsKey($key)) { $PermanentByRole[$key] = [System.Collections.Generic.HashSet[string]]::new() } + [void]$PermanentByRole[$key].Add([string]$A.principalId) + } + } + + $RolesWithPermanent = foreach ($Tid in $TargetRoleTemplates.Keys) { + $count = if ($PermanentByRole.ContainsKey($Tid)) { $PermanentByRole[$Tid].Count } else { 0 } + if ($count -gt 0) { [pscustomobject]@{ Role = $TargetRoleTemplates[$Tid]; Permanent = $count } } + } + + if (-not $RolesWithPermanent) { + $Status = 'Passed' + $Result = "No permanent role assignments found for highly-privileged roles ($($TargetRoles.displayName -join ', ')). All access appears to be PIM-eligible." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("Permanent (non-PIM) assignments to highly-privileged roles:`n`n| Role | Permanent assignees |`n| :--- | :-----------------: |`n") + foreach ($R in $RolesWithPermanent) { $null = $Sb.Append("| $($R.Role) | $($R.Permanent) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML3 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.md new file mode 100644 index 0000000000000..f9849564a60ea --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.md @@ -0,0 +1,13 @@ +PIM activation should require MFA and a typed justification for every privileged role activation. This raises the bar against stolen tokens and provides an audit trail. + +**Remediation Action** + +1. Entra ID > PIM > Microsoft Entra roles > Roles. +2. For each role, open *Role settings* > *Edit*. +3. On Activation, tick **Azure MFA** and **Require justification on activation**. + +**Links** +- [Configure Microsoft Entra role settings in PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.ps1 new file mode 100644 index 0000000000000..ad1add866ded9 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_09.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Admin_09 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML3) - PIM activation requires MFA and justification + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Admin_09' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. In Entra ID > PIM > Microsoft Entra roles > Settings, confirm each highly-privileged role requires MFA on activation and a justification. The full PIM rule set is not exposed in cached `RoleManagementPolicies` (rules require `$expand=rules` per role).' -Risk 'High' -Name 'PIM activation requires MFA and justification' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML3 - Restrict Admin Privileges' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.md new file mode 100644 index 0000000000000..a8cc878a93236 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.md @@ -0,0 +1,13 @@ +For tier-zero roles (Global Administrator, Privileged Role Administrator) activation should require approval from a second administrator. This adds a four-eyes control on the most damaging roles. + +**Remediation Action** + +1. Entra ID > PIM > Microsoft Entra roles > Roles > *Global Administrator* > Role settings > Edit. +2. On Activation, enable **Require approval to activate** and add at least one approver. +3. Repeat for *Privileged Role Administrator*. + +**Links** +- [Approve activation requests in PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-approval-workflow) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.ps1 new file mode 100644 index 0000000000000..5ef104d433cc0 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_10.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Admin_10 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML3) - PIM activation requires approval for highly privileged roles + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Admin_10' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm Global Administrator and Privileged Role Administrator activations require approval (PIM > Role settings > Activation > Require approval to activate). The full PIM rule set is not exposed in the cached `RoleManagementPolicies` collection.' -Risk 'High' -Name 'PIM activation requires approval for Global Administrator and Privileged Role Administrator' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML3 - Restrict Admin Privileges' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.md new file mode 100644 index 0000000000000..6f06c280ce97a --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.md @@ -0,0 +1,13 @@ +ISM-1647 — privileges are reviewed at least annually. PIM eligibility assignments must therefore expire within 12 months so the next assignment is a deliberate decision. Permanent eligibility defeats the purpose of access reviews. + +**Remediation Action** + +1. Entra ID > PIM > Microsoft Entra roles > Assignments > Eligible. +2. For each assignment without expiry, set an end date ≤ 12 months from now. +3. Tighten role settings so future assignments cannot exceed 12 months. + +**Links** +- [Assign Microsoft Entra roles in PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-add-role-to-user) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.ps1 new file mode 100644 index 0000000000000..fa90401cba9ad --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_11.ps1 @@ -0,0 +1,45 @@ +function Invoke-CippTestE8_Admin_11 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML3) - PIM eligibility is reviewed at least every 12 months (ISM-1647) + #> + param($Tenant) + + $TestId = 'E8_Admin_11' + $Name = 'PIM role eligibility expires within 12 months (no permanent eligibility) (ISM-1647)' + + try { + $Schedules = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleEligibilitySchedules' + if (-not $Schedules) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'RoleEligibilitySchedules cache not found (no PIM in use, or P2 not licensed).' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Restrict Admin Privileges' + return + } + + $Now = Get-Date + $MaxFuture = $Now.AddDays(366) + $Bad = foreach ($S in $Schedules) { + $Type = $S.scheduleInfo.expiration.type + $End = $S.scheduleInfo.expiration.endDateTime + if ($Type -eq 'noExpiration' -or -not $End) { + [pscustomobject]@{ Principal = $S.principalId; RoleId = $S.roleDefinitionId; Reason = 'No expiration' } + } elseif ([datetime]::Parse($End) -gt $MaxFuture) { + [pscustomobject]@{ Principal = $S.principalId; RoleId = $S.roleDefinitionId; Reason = "Expires $End (>12 months)" } + } + } + + if (-not $Bad) { + $Status = 'Passed' + $Result = "All $($Schedules.Count) PIM eligibility schedule(s) expire within 12 months." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Bad.Count) of $($Schedules.Count) PIM eligibility schedule(s) do not expire within 12 months:`n`n| Principal | Role | Reason |`n| :-------- | :--- | :----- |`n") + foreach ($B in ($Bad | Select-Object -First 50)) { $null = $Sb.Append("| $($B.Principal) | $($B.RoleId) | $($B.Reason) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.md new file mode 100644 index 0000000000000..3bfb761392c9b --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.md @@ -0,0 +1,13 @@ +Microsoft and ACSC recommend a minimum of 2 and a maximum of 4 Global Administrators. Two is the minimum to avoid total lockout; more than four needlessly increases attack surface. + +**Remediation Action** + +1. Identify excess Global Administrators in Entra ID > Roles and administrators > Global Administrator. +2. Replace with least-privileged roles (e.g. *Exchange Administrator*, *User Administrator*). +3. If fewer than 2 — add a second cloud-only break-glass GA. + +**Links** +- [Best practices for roles in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.ps1 new file mode 100644 index 0000000000000..a01b938a4e951 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_12.ps1 @@ -0,0 +1,58 @@ +function Invoke-CippTestE8_Admin_12 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML1) - Global Administrator count is between 2 and 4 + #> + param($Tenant) + + $TestId = 'E8_Admin_12' + $Name = 'Global Administrator count is between 2 and 4' + + try { + $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + + if (-not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (Roles) not found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $GaRole = $Roles | Where-Object { $_.displayName -eq 'Global Administrator' } | Select-Object -First 1 + if (-not $GaRole) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Global Administrator role not present in cache.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + return + } + + $GaTemplateId = if ($GaRole.roleTemplateId) { [string]$GaRole.roleTemplateId } elseif ($GaRole.RoletemplateId) { [string]$GaRole.RoletemplateId } else { $null } + + # Only count user accounts as Global Administrators — service principals holding the role + # (e.g. the CIPP-SAM application) are not human admins and cannot be reduced by delegation. + $GaUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($M in @($GaRole.members)) { + if ($M.id -and $M.'@odata.type' -eq '#microsoft.graph.user') { [void]$GaUserIds.Add([string]$M.id) } + } + # RoleAssignmentScheduleInstances.roleDefinitionId is a role template ID, not the directory role instance ID. + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $GaTemplateId -and [string]$A.roleDefinitionId -eq $GaTemplateId) { + [void]$GaUserIds.Add([string]$A.principalId) + } + } + $GaCount = $GaUserIds.Count + + if ($GaCount -ge 2 -and $GaCount -le 4) { + $Status = 'Passed' + $Result = "$GaCount Global Administrator(s) — within recommended range of 2-4." + } elseif ($GaCount -lt 2) { + $Status = 'Failed' + $Result = "Only $GaCount Global Administrator(s). At least 2 are required so a single account loss does not lock the tenant." + } else { + $Status = 'Failed' + $Result = "$GaCount Global Administrators — exceeds the recommended maximum of 4. Reduce by delegating finer-grained roles." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Restrict Admin Privileges' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.md new file mode 100644 index 0000000000000..1f1dc92d11784 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.md @@ -0,0 +1,13 @@ +High-privilege OAuth grants (e.g. application permissions on Microsoft Graph such as `Directory.ReadWrite.All`, `RoleManagement.ReadWrite.Directory`, `Application.ReadWrite.All`, `Mail.ReadWrite`) effectively grant Global-Admin-equivalent access via a service principal. Review these regularly. + +**Remediation Action** + +1. Entra ID > Enterprise applications > All applications. +2. For each app with admin-consented permissions, review *Permissions* and revoke unused. +3. Use Microsoft Defender for Cloud Apps / Microsoft 365 Defender to alert on new high-privilege consents. + +**Links** +- [Investigate risky OAuth apps](https://learn.microsoft.com/en-us/defender-cloud-apps/investigate-risky-oauth) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.ps1 new file mode 100644 index 0000000000000..d0a1d832cb1a0 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Admin_13.ps1 @@ -0,0 +1,9 @@ +function Invoke-CippTestE8_Admin_13 { + <# + .SYNOPSIS + ACSC Essential Eight (Restrict Admin Privileges, ML2) - High-privilege OAuth grants are reviewed + #> + param($Tenant) + + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Admin_13' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Review enterprise applications and OAuth2 permission grants for high-privilege scopes (Directory.ReadWrite.All, RoleManagement.ReadWrite.Directory, Application.ReadWrite.All, Mail.ReadWrite, full_access_as_app). The OAuth2PermissionGrants and ServicePrincipals collections are not currently cached for analysis here; use the CIPP *Application Approvals* and *Enterprise Applications* views instead.' -Risk 'Medium' -Name 'High-privilege OAuth grants are reviewed' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML2 - Restrict Admin Privileges' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.md new file mode 100644 index 0000000000000..421c17398fdbc --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.md @@ -0,0 +1,13 @@ +Litigation hold and retention policies prevent permanent loss of mailbox content from accidental or malicious deletion. While not a true backup, they provide point-in-time recovery for E8 ML1. + +**Remediation Action** + +1. Apply a Microsoft 365 retention policy to user mailboxes covering Exchange, OneDrive, and SharePoint. +2. Or enable per-mailbox litigation hold with a duration of at least the organisation's retention requirement. + +**Links** +- [Litigation hold](https://learn.microsoft.com/en-us/purview/ediscovery-create-a-litigation-hold) +- [Microsoft 365 retention policies](https://learn.microsoft.com/en-us/purview/retention) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.ps1 new file mode 100644 index 0000000000000..081976351991d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_01.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestE8_Backup_01 { + <# + .SYNOPSIS + ACSC Essential Eight (Regular Backups, ML1) - User mailboxes have litigation hold or retention applied + #> + param($Tenant) + + $TestId = 'E8_Backup_01' + $Name = 'User mailboxes have litigation hold or a retention policy applied' + + try { + $Mailboxes = Get-CIPPTestData -TenantFilter $Tenant -Type 'Mailboxes' + if (-not $Mailboxes) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No Mailboxes cached for this tenant.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' + return + } + + # Inactive (soft-deleted) mailboxes carry WhenSoftDeleted; there is no IsInactiveMailbox field in the cache. + $UserMailboxes = $Mailboxes | Where-Object { $_.RecipientTypeDetails -eq 'UserMailbox' -and -not $_.WhenSoftDeleted } + if (-not $UserMailboxes) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No user mailboxes found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' + return + } + + # The built-in "Default MRM Policy" is present on every mailbox and only manages archive/deletion tags — + # it is not a data-protection retention control, so it does not count as protected. + $Unprotected = $UserMailboxes | Where-Object { + -not ($_.LitigationHoldEnabled -eq $true) -and + -not ($_.ComplianceTagHoldApplied -eq $true) -and + ([string]::IsNullOrWhiteSpace($_.RetentionPolicy) -or $_.RetentionPolicy -eq 'Default MRM Policy') -and + -not $_.InPlaceHolds + } + + if (-not $Unprotected) { + $Status = 'Passed' + $Result = "All $($UserMailboxes.Count) user mailbox(es) have at least one of: litigation hold, a non-default retention policy, or compliance hold applied." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($Unprotected.Count) of $($UserMailboxes.Count) user mailbox(es) have no litigation hold, retention policy, or compliance tag applied:`n`n| UPN |`n| :-- |`n") + foreach ($M in ($Unprotected | Select-Object -First 50)) { $null = $Sb.Append("| $($M.UPN) |`n") } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.md new file mode 100644 index 0000000000000..885790e1ad9e6 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.md @@ -0,0 +1,13 @@ +SharePoint version history and the recycle bin together provide point-in-time recovery for documents. Confirm versioning is on (default 500 versions for new libraries) and the recycle bin retention is 93 days. + +**Remediation Action** + +1. SharePoint admin centre > Sites > Active sites. +2. For critical sites, confirm library versioning is enabled and the version count is acceptable. +3. Recycle bin retention is fixed at 93 days for SharePoint and OneDrive. + +**Links** +- [SharePoint versioning](https://learn.microsoft.com/en-us/sharepoint/enable-disable-versioning) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.ps1 new file mode 100644 index 0000000000000..b22052da74da8 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_02.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_Backup_02 { + <# + .SYNOPSIS + ACSC Essential Eight (Regular Backups, ML1) - SharePoint Online retains versions and recycle bin items + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Backup_02' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm SharePoint Online sites have versioning enabled (default minimum 100 versions) and the second-stage recycle bin retention is at least 93 days. Site-level versioning is configured per library and is not exposed centrally; review via SharePoint admin centre or PnP PowerShell.' -Risk 'Medium' -Name 'SharePoint Online versioning and recycle bin retention is configured' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.md new file mode 100644 index 0000000000000..c1cd843c1a17d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.md @@ -0,0 +1,12 @@ +Known Folder Move redirects users' Desktop, Documents, and Pictures to OneDrive so file changes are continuously synced and version-protected. + +**Remediation Action** + +1. Intune > Settings catalog > **OneDrive** > *Silently move Windows known folders to OneDrive* = Enabled with the tenant ID. +2. Optionally enable *Use OneDrive Files On-Demand* and *Prevent users from redirecting Windows known folders to their PC*. + +**Links** +- [Redirect known folders to OneDrive](https://learn.microsoft.com/en-us/sharepoint/redirect-known-folders) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.ps1 new file mode 100644 index 0000000000000..f51b96dd5987d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_03.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_Backup_03 { + <# + .SYNOPSIS + ACSC Essential Eight (Regular Backups, ML1) - OneDrive Known Folder Move (KFM) is configured + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Backup_03' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm OneDrive Known Folder Move is configured to redirect Desktop, Documents, and Pictures to OneDrive on all Windows endpoints. Configure via Intune Settings catalog: *OneDrive > Silently move Windows known folders to OneDrive*.' -Risk 'Medium' -Name 'OneDrive Known Folder Move (KFM) is enforced' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML1 - Regular Backups' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.md new file mode 100644 index 0000000000000..97d502bf95dc0 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.md @@ -0,0 +1,14 @@ +ISM-1547 — backups must be performed regularly, retained for an organisation-determined period, stored separately from the source data, and **tested**. Microsoft retention is not a backup. Use Microsoft 365 Backup or a third-party solution (Veeam, Datto, Druva, AvePoint, etc.) and run a documented restore test at least quarterly. + +**Remediation Action** + +1. Provision a Microsoft 365 backup solution covering Exchange, OneDrive, SharePoint, and Teams. +2. Schedule a quarterly test restore and record the results in your backup runbook. +3. Verify the backup admin account is not synced from on-premises and uses an isolated identity. + +**Links** +- [Microsoft 365 Backup](https://learn.microsoft.com/en-us/microsoft-365/backup/) +- [ACSC Essential Eight - Regular Backups](https://learn.microsoft.com/en-us/compliance/anz/e8-backup) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.ps1 new file mode 100644 index 0000000000000..5052f18712213 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_Backup_04.ps1 @@ -0,0 +1,8 @@ +function Invoke-CippTestE8_Backup_04 { + <# + .SYNOPSIS + ACSC Essential Eight (Regular Backups, ML2) - A tested backup and restore process exists for Microsoft 365 data + #> + param($Tenant) + Add-CippTestResult -TenantFilter $Tenant -TestId 'E8_Backup_04' -TestType 'Identity' -Status 'Informational' -ResultMarkdown 'This is a task performed manually. Confirm a third-party (or Microsoft 365 Backup) solution is in place for mailboxes, OneDrive, SharePoint, and Teams data, and that restore tests are performed at least quarterly with documented results. Microsoft retention is **not** a backup — it does not protect against admin deletion or compliance policy changes.' -Risk 'High' -Name 'Microsoft 365 data is backed up by a tested process (ISM-1547)' -UserImpact 'Low' -ImplementationEffort 'High' -Category 'E8 ML2 - Regular Backups' +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.md new file mode 100644 index 0000000000000..977487368e95c --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.md @@ -0,0 +1,14 @@ +All staff (and any service accounts that interact with the tenant) must be registered for multifactor authentication. The Essential Eight requires MFA at Maturity Level 1 across all users so a stolen password cannot, on its own, grant access to corporate data. + +**Remediation Action** + +1. Identify users without MFA registration (this test lists them). +2. Enable a Conditional Access policy or Security Defaults to force registration on next sign-in. +3. Validate via Entra ID > Authentication methods > User registration details that `isMfaCapable = true`. + +**Links** +- [ACSC Essential Eight - Multifactor Authentication](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Plan an Authentication methods deployment](https://learn.microsoft.com/en-us/azure/active-directory/authentication/howto-authentication-methods-activity) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.ps1 new file mode 100644 index 0000000000000..ad4c52391273d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_01.ps1 @@ -0,0 +1,49 @@ +function Invoke-CippTestE8_MFA_01 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML1) - All member users are MFA capable + #> + param($Tenant) + + $TestId = 'E8_MFA_01' + $Name = 'All member users are registered for MFA' + + try { + $Reg = Get-CIPPTestData -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + + if (-not $Reg -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (UserRegistrationDetails or Users) not found. Please refresh the cache for this tenant.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + return + } + + $RegByUpn = @{} + foreach ($R in ($Reg | Where-Object { $_.userPrincipalName })) { + $RegByUpn[$R.userPrincipalName.ToLower()] = $R + } + + $MemberUsers = $Users | Where-Object { $_.accountEnabled -eq $true -and $_.userType -ne 'Guest' } + $NotMfaCapable = foreach ($U in $MemberUsers) { + $R = $RegByUpn[[string]$U.userPrincipalName.ToLower()] + if (-not $R -or $R.isMfaCapable -ne $true) { $U } + } + + if (-not $NotMfaCapable) { + $Status = 'Passed' + $Result = "All $($MemberUsers.Count) enabled member users are MFA capable." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($NotMfaCapable.Count) of $($MemberUsers.Count) enabled member users are not MFA capable:`n`n") + $null = $Sb.Append("| UPN | Display Name |`n| :-- | :----------- |`n") + foreach ($U in ($NotMfaCapable | Select-Object -First 50)) { + $null = $Sb.Append("| $($U.userPrincipalName) | $($U.displayName) |`n") + } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.md new file mode 100644 index 0000000000000..2cee23be4ddbf --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.md @@ -0,0 +1,16 @@ +A tenant-wide Conditional Access policy that requires MFA on every sign-in to every cloud app is the baseline control for Essential Eight ML1. Without it, MFA remains optional and attackers can bypass it via legacy clients or unprotected applications. + +**Remediation Action** + +1. Entra ID > Conditional Access > New policy. +2. Users: All users (exclude break-glass). +3. Cloud apps: All cloud apps. +4. Grant: Require multifactor authentication (or an Authentication Strength). +5. Enable policy. + +**Links** +- [ACSC Essential Eight - Multifactor Authentication](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Common CA policy: Require MFA for all users](https://learn.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-all-users-mfa) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.ps1 new file mode 100644 index 0000000000000..9d30202b53d56 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_02.ps1 @@ -0,0 +1,42 @@ +function Invoke-CippTestE8_MFA_02 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML1) - A Conditional Access policy enforces MFA for all users + #> + param($Tenant) + + $TestId = 'E8_MFA_02' + $Name = 'A Conditional Access policy enforces MFA for all users on all cloud apps' + + try { + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CA) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'ConditionalAccessPolicies cache not found.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + return + } + + $Match = $CA | Where-Object { + $_.state -eq 'enabled' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.conditions.applications.includeApplications -contains 'All') -and + ( + ($_.grantControls.builtInControls -contains 'mfa') -or + $_.grantControls.authenticationStrength + ) + } + + if ($Match) { + $Status = 'Passed' + $Result = "$($Match.Count) Conditional Access policy/policies enforce MFA on all users for all cloud apps:`n`n" + + (($Match | ForEach-Object { "- $($_.displayName)" }) -join "`n") + } else { + $Status = 'Failed' + $Result = 'No enabled Conditional Access policy targets All Users + All Cloud Apps with an MFA grant control.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.md new file mode 100644 index 0000000000000..37065b793d250 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.md @@ -0,0 +1,17 @@ +Legacy authentication protocols (POP, IMAP, SMTP AUTH, older Outlook clients, ActiveSync basic auth) cannot enforce MFA. If they are reachable, an attacker with stolen credentials defeats Essential Eight MFA controls. + +**Remediation Action** + +1. Entra ID > Conditional Access > Create policy. +2. Users: All users (exclude break-glass + service accounts that genuinely need legacy auth). +3. Cloud apps: All cloud apps. +4. Conditions > Client apps: tick *Exchange ActiveSync clients* and *Other clients*. +5. Grant: Block access. +6. Enable. + +**Links** +- [Block legacy authentication](https://learn.microsoft.com/en-us/azure/active-directory/conditional-access/howto-conditional-access-policy-block-legacy) +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.ps1 new file mode 100644 index 0000000000000..217c9b3799f35 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_03.ps1 @@ -0,0 +1,39 @@ +function Invoke-CippTestE8_MFA_03 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML1) - Legacy authentication is blocked + #> + param($Tenant) + + $TestId = 'E8_MFA_03' + $Name = 'Legacy authentication is blocked tenant-wide' + + try { + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CA) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'ConditionalAccessPolicies cache not found.' -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + return + } + + $Match = $CA | Where-Object { + $_.state -eq 'enabled' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.conditions.clientAppTypes -contains 'exchangeActiveSync' -or $_.conditions.clientAppTypes -contains 'other') -and + ($_.grantControls.builtInControls -contains 'block') + } + + if ($Match) { + $Status = 'Passed' + $Result = "$($Match.Count) Conditional Access policy/policies block legacy auth:`n`n" + + (($Match | ForEach-Object { "- $($_.displayName)" }) -join "`n") + } else { + $Status = 'Failed' + $Result = 'No enabled Conditional Access policy blocks legacy authentication clients (`exchangeActiveSync`/`other`). MFA can be bypassed via legacy protocols if not blocked.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'E8 ML1 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.md new file mode 100644 index 0000000000000..268ec4164e343 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.md @@ -0,0 +1,14 @@ +Essential Eight Maturity Level 2 requires phishing-resistant MFA for privileged users. Before users can be required to use it, the tenant must have at least one phishing-resistant method (FIDO2 security keys, Windows Hello for Business, or certificate-based authentication) enabled in the Authentication methods policy. + +**Remediation Action** + +1. Entra ID > Authentication methods > Policies. +2. Enable at least one of: FIDO2 security key, Windows Hello for Business, Certificate-based authentication. +3. Target the appropriate user/group scope and save. + +**Links** +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Authentication methods policy](https://learn.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-methods-manage) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.ps1 new file mode 100644 index 0000000000000..f1e6e15ad81c8 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_04.ps1 @@ -0,0 +1,40 @@ +function Invoke-CippTestE8_MFA_04 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML2) - At least one phishing-resistant authentication method is enabled + #> + param($Tenant) + + $TestId = 'E8_MFA_04' + $Name = 'A phishing-resistant authentication method is enabled in the tenant' + + try { + $AuthMethodsPolicy = Get-CIPPTestData -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'AuthenticationMethodsPolicy cache not found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML2 - MFA' + return + } + + # Windows Hello for Business is provisioned via Intune / device registration and is not part of + # authenticationMethodConfigurations, so it cannot be evaluated from this policy. + $Configs = $AuthMethodsPolicy.authenticationMethodConfigurations + $Enabled = [System.Collections.Generic.List[string]]::new() + foreach ($Id in 'Fido2','X509Certificate') { + $C = $Configs | Where-Object { $_.id -eq $Id } + if ($C -and $C.state -eq 'enabled') { $Enabled.Add($Id) } + } + + if ($Enabled.Count -gt 0) { + $Status = 'Passed' + $Result = "Phishing-resistant authentication method(s) enabled: $($Enabled -join ', ')." + } else { + $Status = 'Failed' + $Result = 'No phishing-resistant authentication method (FIDO2 security key or X509 certificate-based auth) is enabled in the tenant. Windows Hello for Business is managed via Intune and is not evaluated by this test.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML2 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Medium' -Category 'E8 ML2 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.md new file mode 100644 index 0000000000000..eee46bb0e1586 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.md @@ -0,0 +1,14 @@ +SMS, Voice and Email OTP are not phishing-resistant: an attacker who can intercept SMS or proxy a sign-in page can capture the code. ACSC Essential Eight ML2/ML3 requires phasing these out in favour of FIDO2, Windows Hello, or certificate-based authentication. + +**Remediation Action** + +1. Entra ID > Authentication methods > Policies. +2. Set *SMS*, *Voice call*, and *Email OTP* to Disabled (or restrict to a tightly-scoped group during transition). +3. Make sure users have a phishing-resistant or Authenticator App method registered first. + +**Links** +- [Phishing-resistant MFA in Entra ID](https://learn.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-strengths) +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.ps1 new file mode 100644 index 0000000000000..4e3cfe13e30fb --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_05.ps1 @@ -0,0 +1,38 @@ +function Invoke-CippTestE8_MFA_05 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML2) - Weak authentication methods (SMS / Voice / Email OTP) are disabled + #> + param($Tenant) + + $TestId = 'E8_MFA_05' + $Name = 'Weak MFA methods (SMS, Voice call, Email OTP) are disabled' + + try { + $AuthMethodsPolicy = Get-CIPPTestData -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'AuthenticationMethodsPolicy cache not found.' -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML2 - MFA' + return + } + + $Configs = $AuthMethodsPolicy.authenticationMethodConfigurations + $Issues = [System.Collections.Generic.List[string]]::new() + foreach ($Id in 'Sms','Voice','Email') { + $C = $Configs | Where-Object { $_.id -eq $Id } + if ($C -and $C.state -eq 'enabled') { $Issues.Add($Id) } + } + + if ($Issues.Count -eq 0) { + $Status = 'Passed' + $Result = 'SMS, Voice and Email OTP methods are all disabled.' + } else { + $Status = 'Failed' + $Result = "The following weak (non phishing-resistant) MFA methods are still enabled: $($Issues -join ', ')." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML2 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'E8 ML2 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.md new file mode 100644 index 0000000000000..59d59d0279f02 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.md @@ -0,0 +1,16 @@ +Privileged identities are the highest-value targets in a tenant. ACSC Essential Eight Maturity Level 2 mandates phishing-resistant MFA for them. In Entra ID this is enforced by a Conditional Access policy that targets directory roles with the built-in *Phishing-resistant MFA* authentication strength. + +**Remediation Action** + +1. Entra ID > Conditional Access > New policy. +2. Users: include Directory roles (all privileged roles such as Global Administrator, Privileged Role Administrator, Security Administrator, etc.). +3. Cloud apps: All cloud apps. +4. Grant > Require authentication strength > **Phishing-resistant MFA**. +5. Enable. + +**Links** +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Conditional Access authentication strengths](https://learn.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-strengths) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.ps1 new file mode 100644 index 0000000000000..6998fc66f35e9 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_06.ps1 @@ -0,0 +1,47 @@ +function Invoke-CippTestE8_MFA_06 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML2) - Phishing-resistant MFA strength is required for privileged roles + #> + param($Tenant) + + $TestId = 'E8_MFA_06' + $Name = 'Phishing-resistant authentication strength is required for privileged roles' + # Built-in Phishing-resistant MFA strength + $PhishResistantId = '00000000-0000-0000-0000-000000000004' + + try { + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + + if (-not $CA -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (ConditionalAccessPolicies or Roles) not found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + return + } + + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $PrivRoleIds = @($Roles | ForEach-Object { if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } }) + + $Match = $CA | Where-Object { + $_.state -eq 'enabled' -and + $_.conditions.users.includeRoles -and + (@($_.conditions.users.includeRoles) | Where-Object { $_ -in $PrivRoleIds }).Count -gt 0 -and + $_.grantControls.authenticationStrength -and + $_.grantControls.authenticationStrength.id -eq $PhishResistantId + } + + if ($Match) { + $Status = 'Passed' + $Result = "$($Match.Count) Conditional Access policy/policies require phishing-resistant MFA for privileged roles:`n`n" + + (($Match | ForEach-Object { "- $($_.displayName)" }) -join "`n") + } else { + $Status = 'Failed' + $Result = 'No enabled Conditional Access policy targets privileged roles with the built-in *Phishing-resistant MFA* authentication strength.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.md new file mode 100644 index 0000000000000..3bd85f92ec72d --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.md @@ -0,0 +1,14 @@ +A Conditional Access policy can require phishing-resistant MFA, but it only takes effect once each privileged user has actually registered such a method (FIDO2 key, Windows Hello, certificate, or device-bound passkey). This test enumerates privileged role members whose `methodsRegistered` list does not yet include a phishing-resistant method. + +**Remediation Action** + +1. Issue FIDO2 keys (or enable Windows Hello / certificate auth / passkeys) to each privileged user. +2. Have them register the method at https://aka.ms/mysecurityinfo before the Conditional Access policy is enforced. +3. Re-run this test once registrations complete. + +**Links** +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [User registration details API](https://learn.microsoft.com/en-us/graph/api/resources/userregistrationdetails) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.ps1 new file mode 100644 index 0000000000000..69aaa8442ef98 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_07.ps1 @@ -0,0 +1,67 @@ +function Invoke-CippTestE8_MFA_07 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML2) - Privileged users have a phishing-resistant method registered + #> + param($Tenant) + + $TestId = 'E8_MFA_07' + $Name = 'All privileged users have a phishing-resistant authentication method registered' + + try { + $Reg = Get-CIPPTestData -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles + $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' + + if (-not $Reg -or -not $Roles) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (UserRegistrationDetails or Roles) not found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + return + } + + $PrivRoleIds = [System.Collections.Generic.HashSet[string]]::new() + $PrivUserIds = [System.Collections.Generic.HashSet[string]]::new() + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { [void]$PrivRoleIds.Add($RoleTemplateId) } + foreach ($M in @($Role.members)) { + if ($M.id -and $M.'@odata.type' -eq '#microsoft.graph.user') { [void]$PrivUserIds.Add([string]$M.id) } + } + } + foreach ($A in @($RoleAssignmentScheduleInstances)) { + if ($A.assignmentType -eq 'Assigned' -and $null -eq $A.endDateTime -and $A.principalId -and $PrivRoleIds.Contains([string]$A.roleDefinitionId)) { + [void]$PrivUserIds.Add([string]$A.principalId) + } + } + + if ($PrivUserIds.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged users found.' -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + return + } + + $PhishMethods = @('fido2SecurityKey','windowsHelloForBusiness','x509CertificateSingleFactor','x509CertificateMultiFactor','passKeyDeviceBound','passKeyDeviceBoundAuthenticator','passKeyDeviceBoundWindowsHello') + $NonCompliant = foreach ($R in $Reg | Where-Object { $PrivUserIds.Contains($_.id) }) { + $HasPhish = $false + foreach ($M in $R.methodsRegistered) { + if ($PhishMethods -contains $M) { $HasPhish = $true; break } + } + if (-not $HasPhish) { $R } + } + + if (-not $NonCompliant) { + $Status = 'Passed' + $Result = "All $($PrivUserIds.Count) privileged users have at least one phishing-resistant method registered." + } else { + $Status = 'Failed' + $Sb = [System.Text.StringBuilder]::new("$($NonCompliant.Count) of $($PrivUserIds.Count) privileged users have no phishing-resistant method registered:`n`n| UPN | Methods Registered |`n| :-- | :----------------- |`n") + foreach ($U in ($NonCompliant | Select-Object -First 50)) { + $null = $Sb.Append("| $($U.userPrincipalName) | $(($U.methodsRegistered) -join ', ') |`n") + } + $Result = $Sb.ToString() + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'Medium' -ImplementationEffort 'High' -Category 'E8 ML2 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.md new file mode 100644 index 0000000000000..ce78ca97c809e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.md @@ -0,0 +1,14 @@ +Essential Eight Maturity Level 3 extends the phishing-resistant MFA requirement from privileged users to **all** users. Every enabled member account must have at least one phishing-resistant method (FIDO2, Windows Hello for Business, certificate-based authentication, or device-bound passkey) registered. + +**Remediation Action** + +1. Roll out FIDO2 security keys, Windows Hello for Business, or device-bound passkeys to all staff. +2. Run a registration campaign — make sure each user registers at least one phishing-resistant method. +3. Once coverage is complete, enforce via a tenant-wide Conditional Access policy with the *Phishing-resistant MFA* authentication strength. + +**Links** +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Plan a passwordless authentication deployment](https://learn.microsoft.com/en-us/azure/active-directory/authentication/howto-authentication-passwordless-deployment) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.ps1 new file mode 100644 index 0000000000000..715ffd6898656 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_08.ps1 @@ -0,0 +1,50 @@ +function Invoke-CippTestE8_MFA_08 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML3) - All member users have a phishing-resistant method registered + #> + param($Tenant) + + $TestId = 'E8_MFA_08' + $Name = 'All member users have a phishing-resistant authentication method registered' + + try { + $Reg = Get-CIPPTestData -TenantFilter $Tenant -Type 'UserRegistrationDetails' + $Users = Get-CIPPTestData -TenantFilter $Tenant -Type 'Users' + + if (-not $Reg -or -not $Users) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'Required cache (UserRegistrationDetails or Users) not found.' -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + return + } + + $MemberIds = [System.Collections.Generic.HashSet[string]]::new( + [string[]]($Users | Where-Object { $_.accountEnabled -eq $true -and $_.userType -ne 'Guest' }).id) + + if ($MemberIds.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No enabled member users found.' -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + return + } + + $PhishMethods = @('fido2SecurityKey','windowsHelloForBusiness','x509CertificateSingleFactor','x509CertificateMultiFactor','passKeyDeviceBound','passKeyDeviceBoundAuthenticator','passKeyDeviceBoundWindowsHello') + $Total = 0; $NonCompliant = 0 + foreach ($R in $Reg | Where-Object { $MemberIds.Contains($_.id) }) { + $Total++ + $HasPhish = $false + foreach ($M in $R.methodsRegistered) { if ($PhishMethods -contains $M) { $HasPhish = $true; break } } + if (-not $HasPhish) { $NonCompliant++ } + } + + if ($NonCompliant -eq 0) { + $Status = 'Passed' + $Result = "All $Total enabled member users have a phishing-resistant method registered." + } else { + $Status = 'Failed' + $Result = "$NonCompliant of $Total enabled member users have no phishing-resistant authentication method registered (FIDO2, Windows Hello for Business, X509 cert, or device-bound passkey)." + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.md new file mode 100644 index 0000000000000..d51eb2f1c84be --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.md @@ -0,0 +1,14 @@ +Number matching defeats MFA fatigue / push-bombing attacks by forcing the user to read a number from the sign-in screen and type it into the Authenticator app. Microsoft made it default in 2023, but tenants that previously customized the policy can still have it disabled or scoped narrowly. + +**Remediation Action** + +1. Entra ID > Authentication methods > Policies > **Microsoft Authenticator**. +2. Configure features > **Require number matching for push notifications** = Enabled. +3. Set the include target to **All users**. + +**Links** +- [How number matching works](https://learn.microsoft.com/en-us/azure/active-directory/authentication/how-to-mfa-number-match) +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.ps1 new file mode 100644 index 0000000000000..4902fa2ed428e --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_09.ps1 @@ -0,0 +1,46 @@ +function Invoke-CippTestE8_MFA_09 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML3) - Number matching is enforced for Microsoft Authenticator + #> + param($Tenant) + + $TestId = 'E8_MFA_09' + $Name = 'Microsoft Authenticator number matching is enforced' + + try { + $AuthMethodsPolicy = Get-CIPPTestData -TenantFilter $Tenant -Type 'AuthenticationMethodsPolicy' + if (-not $AuthMethodsPolicy) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'AuthenticationMethodsPolicy cache not found.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - MFA' + return + } + + $MsAuth = $AuthMethodsPolicy.authenticationMethodConfigurations | Where-Object { $_.id -eq 'MicrosoftAuthenticator' } + if (-not $MsAuth -or $MsAuth.state -ne 'enabled') { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'Microsoft Authenticator method is not enabled in the tenant.' -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - MFA' + return + } + + $NumberMatching = $MsAuth.featureSettings.numberMatchingRequiredState + $Issues = [System.Collections.Generic.List[string]]::new() + if ($NumberMatching.state -ne 'enabled') { + $Issues.Add("numberMatchingRequiredState.state is '$($NumberMatching.state)' (expected 'enabled').") + } + if ($NumberMatching.includeTarget.id -and $NumberMatching.includeTarget.id -ne 'all_users') { + $Issues.Add("numberMatchingRequiredState.includeTarget is '$($NumberMatching.includeTarget.id)' (expected 'all_users').") + } + + if ($Issues.Count -eq 0) { + $Status = 'Passed' + $Result = 'Microsoft Authenticator number matching is enabled and targets all users.' + } else { + $Status = 'Failed' + $Result = "Microsoft Authenticator number matching is not fully enforced:`n`n$(($Issues | ForEach-Object { "- $_" }) -join "`n")" + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'Medium' -Name $Name -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'E8 ML3 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.md b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.md new file mode 100644 index 0000000000000..32ee5f5e7c810 --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.md @@ -0,0 +1,17 @@ +At Maturity Level 3 the Essential Eight requires phishing-resistant MFA for every user, not just admins. The technical control is a tenant-wide Conditional Access policy that targets *All users* + *All cloud apps* with the built-in **Phishing-resistant MFA** authentication strength. + +**Remediation Action** + +1. Confirm test E8_MFA_08 is passing (every user has a phishing-resistant method registered). +2. Entra ID > Conditional Access > New policy. +3. Users: All users (exclude break-glass). +4. Cloud apps: All cloud apps. +5. Grant > Require authentication strength > **Phishing-resistant MFA**. +6. Enable the policy. + +**Links** +- [ACSC Essential Eight - MFA](https://learn.microsoft.com/en-us/compliance/anz/e8-mfa) +- [Conditional Access authentication strengths](https://learn.microsoft.com/en-us/azure/active-directory/authentication/concept-authentication-strengths) + + +%TestResult% diff --git a/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.ps1 b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.ps1 new file mode 100644 index 0000000000000..53b0e061cfcbb --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/Identity/Invoke-CippTestE8_MFA_10.ps1 @@ -0,0 +1,41 @@ +function Invoke-CippTestE8_MFA_10 { + <# + .SYNOPSIS + ACSC Essential Eight (MFA, ML3) - Phishing-resistant authentication strength is required for all users + #> + param($Tenant) + + $TestId = 'E8_MFA_10' + $Name = 'Phishing-resistant authentication strength is required for all users' + $PhishResistantId = '00000000-0000-0000-0000-000000000004' + + try { + $CA = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' + if (-not $CA) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'ConditionalAccessPolicies cache not found.' -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + return + } + + $Match = $CA | Where-Object { + $_.state -eq 'enabled' -and + ($_.conditions.users.includeUsers -contains 'All') -and + ($_.conditions.applications.includeApplications -contains 'All') -and + $_.grantControls.authenticationStrength -and + $_.grantControls.authenticationStrength.id -eq $PhishResistantId + } + + if ($Match) { + $Status = 'Passed' + $Result = "$($Match.Count) Conditional Access policy/policies enforce phishing-resistant MFA tenant-wide:`n`n" + + (($Match | ForEach-Object { "- $($_.displayName)" }) -join "`n") + } else { + $Status = 'Failed' + $Result = 'No enabled Conditional Access policy enforces the *Phishing-resistant MFA* authentication strength on All Users + All Cloud Apps.' + } + + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Identity' -Status 'Failed' -ResultMarkdown "Test failed: $($ErrorMessage.NormalizedError)" -Risk 'High' -Name $Name -UserImpact 'High' -ImplementationEffort 'High' -Category 'E8 ML3 - MFA' + } +} diff --git a/Modules/CIPPTests/Public/Tests/E8/report.json b/Modules/CIPPTests/Public/Tests/E8/report.json new file mode 100644 index 0000000000000..13f01c3c3295f --- /dev/null +++ b/Modules/CIPPTests/Public/Tests/E8/report.json @@ -0,0 +1,74 @@ +{ + "name": "ACSC Essential Eight", + "description": "Australian Cyber Security Centre (ACSC) Essential Eight Maturity Model — eight mitigation strategies for adversary defence (MFA, Restrict Administrative Privileges, Application Control, Patch Applications, Patch Operating Systems, Configure Microsoft Office Macro Settings, User Application Hardening, Regular Backups). CIPP tests cover what Microsoft 365 / Entra / Intune / Defender APIs expose. Some lower-level enforcement controls (e.g., kernel-mode WDAC rule contents, Credential Guard runtime state, SAW physical separation) cannot be validated from cloud telemetry and are flagged as manual.", + "version": "November 2023", + "source": "https://learn.microsoft.com/en-us/compliance/anz/e8-overview", + "category": "ACSC Essential Eight", + "IdentityTests": [ + "E8_MFA_01", + "E8_MFA_02", + "E8_MFA_03", + "E8_MFA_04", + "E8_MFA_05", + "E8_MFA_06", + "E8_MFA_07", + "E8_MFA_08", + "E8_MFA_09", + "E8_MFA_10", + "E8_Admin_01", + "E8_Admin_02", + "E8_Admin_03", + "E8_Admin_04", + "E8_Admin_05", + "E8_Admin_06", + "E8_Admin_07", + "E8_Admin_08", + "E8_Admin_09", + "E8_Admin_10", + "E8_Admin_11", + "E8_Admin_12", + "E8_Admin_13", + "E8_Backup_01", + "E8_Backup_02", + "E8_Backup_03", + "E8_Backup_04" + ], + "DevicesTests": [ + "E8_AppCtrl_01", + "E8_AppCtrl_02", + "E8_AppCtrl_03", + "E8_AppCtrl_04", + "E8_AppCtrl_05", + "E8_PatchApp_01", + "E8_PatchApp_02", + "E8_PatchApp_03", + "E8_PatchApp_04", + "E8_PatchOS_01", + "E8_PatchOS_02", + "E8_PatchOS_03", + "E8_PatchOS_04", + "E8_PatchOS_05", + "E8_PatchOS_06", + "E8_Macro_01", + "E8_Macro_02", + "E8_Macro_03", + "E8_Macro_04", + "E8_Macro_05", + "E8_Macro_06", + "E8_Macro_07", + "E8_AppHard_01", + "E8_AppHard_02", + "E8_AppHard_03", + "E8_AppHard_04", + "E8_AppHard_05", + "E8_AppHard_06", + "E8_AppHard_07", + "E8_AppHard_08", + "E8_AppHard_09", + "E8_AppHard_10", + "E8_AppHard_11", + "E8_AppHard_12", + "E8_AppHard_13", + "E8_AppHard_14" + ] +} diff --git a/Modules/CIPPTests/Public/Tests/GenericTests/Identity/Invoke-CippTestGenericTest011.ps1 b/Modules/CIPPTests/Public/Tests/GenericTests/Identity/Invoke-CippTestGenericTest011.ps1 index ebcb738157ac9..3930ff44c207b 100644 --- a/Modules/CIPPTests/Public/Tests/GenericTests/Identity/Invoke-CippTestGenericTest011.ps1 +++ b/Modules/CIPPTests/Public/Tests/GenericTests/Identity/Invoke-CippTestGenericTest011.ps1 @@ -13,8 +13,9 @@ function Invoke-CippTestGenericTest011 { return } - # Load standards.json for friendly name resolution + # Load standards.json for friendly name and compliance-tag resolution $StandardsLabelMap = @{} + $StandardsTagMap = @{} $StandardsJsonPath = Join-Path $env:CIPPRootPath 'Config\standards.json' if (Test-Path $StandardsJsonPath) { $StandardsJson = Get-Content $StandardsJsonPath -Raw | ConvertFrom-Json @@ -22,6 +23,14 @@ function Invoke-CippTestGenericTest011 { if ($Std.name -and $Std.label) { $StandardsLabelMap[$Std.name] = $Std.label } + if ($Std.name -and $Std.tag) { + # Keep human-readable compliance-framework references (CIS, NIST, etc. - they + # contain spaces) and drop internal single-token tags like 'mip_search_auditlog'. + $FrameworkTags = @($Std.tag | Where-Object { $_ -is [string] -and $_ -match '\s' }) + if ($FrameworkTags.Count -gt 0) { + $StandardsTagMap[$Std.name] = ($FrameworkTags -join ', ') + } + } } } @@ -130,6 +139,26 @@ function Invoke-CippTestGenericTest011 { return $null } + # Helper: resolve a standard's compliance-framework tags (CIS/NIST/etc.). Template-based + # standards (Intune/CA/Quarantine) have no standards.json entry, so they return empty. + $ResolveTags = { + param($StandardName) + if ([string]::IsNullOrWhiteSpace($StandardName)) { return '' } + if ($StandardsTagMap.ContainsKey($StandardName)) { return $StandardsTagMap[$StandardName] } + return '' + } + + # Helper: render a stored CurrentValue/ExpectedValue (plain string, bool, or compact JSON) + # safely inside a markdown table cell - escape pipes, collapse newlines, and truncate blobs. + $FormatValue = { + param($Value) + if ($null -eq $Value -or "$Value" -eq '') { return '' } + $Text = [string]$Value + $Text = $Text -replace '\|', '\|' -replace '\r?\n', ' ' + if ($Text.Length -gt 300) { $Text = $Text.Substring(0, 297) + '...' } + return $Text + } + foreach ($Template in $AlignmentItems) { $TemplateName = $Template.StandardName $Score = $Template.AlignmentScore @@ -168,24 +197,32 @@ function Invoke-CippTestGenericTest011 { # Compliant items if ($CompliantItems.Count -gt 0) { - $null = $Result.Append("| Standard | Status |`n") - $null = $Result.Append("|----------|--------|`n") + $null = $Result.Append("#### Compliant Standards`n`n") + $null = $Result.Append("| Standard | Tags | Status |`n") + $null = $Result.Append("|----------|------|--------|`n") foreach ($Item in $CompliantItems) { $FriendlyName = & $ResolveDisplayName $Item.StandardName $TemplateSettings if (-not $FriendlyName) { continue } - $null = $Result.Append("| $FriendlyName | ✅ Compliant |`n") + $Tags = & $ResolveTags $Item.StandardName + $null = $Result.Append("| $FriendlyName | $Tags | ✅ Compliant |`n") } $null = $Result.Append("`n") } - # Non-compliant items + # Non-compliant items — include the compliance tags and the reason for failure + # (expected value from the standard vs. the current config on the tenant). if ($NonCompliantItems.Count -gt 0) { - $null = $Result.Append("| Standard | Status |`n") - $null = $Result.Append("|----------|--------|`n") + $null = $Result.Append("#### Non-Compliant Standards`n`n") + $null = $Result.Append("| Standard | Tags | Expected Value | Current Value (on tenant) |`n") + $null = $Result.Append("|----------|------|----------------|---------------------------|`n") foreach ($Item in $NonCompliantItems) { $FriendlyName = & $ResolveDisplayName $Item.StandardName $TemplateSettings if (-not $FriendlyName) { continue } - $null = $Result.Append("| $FriendlyName | ❌ Non-Compliant |`n") + $Tags = & $ResolveTags $Item.StandardName + $Expected = & $FormatValue $Item.ExpectedValue + $Current = & $FormatValue $Item.CurrentValue + if (-not $Current) { $Current = '_Not configured / no data_' } + $null = $Result.Append("| $FriendlyName | $Tags | $Expected | $Current |`n") } $null = $Result.Append("`n") } @@ -194,12 +231,13 @@ function Invoke-CippTestGenericTest011 { if ($LicenseMissingItems.Count -gt 0) { $null = $Result.Append("#### Standards Not Applied Due to Missing Licenses`n`n") $null = $Result.Append("These items are part of this baseline, but your environment does not meet the minimum required licenses for them to be applied.`n`n") - $null = $Result.Append("| Standard | Status |`n") - $null = $Result.Append("|----------|--------|`n") + $null = $Result.Append("| Standard | Tags | Status |`n") + $null = $Result.Append("|----------|------|--------|`n") foreach ($Item in $LicenseMissingItems) { $FriendlyName = & $ResolveDisplayName $Item.StandardName $TemplateSettings if (-not $FriendlyName) { continue } - $null = $Result.Append("| $FriendlyName | ⚠️ License Missing |`n") + $Tags = & $ResolveTags $Item.StandardName + $null = $Result.Append("| $FriendlyName | $Tags | ⚠️ License Missing |`n") } $null = $Result.Append("`n") } @@ -207,12 +245,13 @@ function Invoke-CippTestGenericTest011 { # Reporting disabled items if ($ReportingDisabledItems.Count -gt 0) { $null = $Result.Append("#### Standards With Reporting Disabled`n`n") - $null = $Result.Append("| Standard | Status |`n") - $null = $Result.Append("|----------|--------|`n") + $null = $Result.Append("| Standard | Tags | Status |`n") + $null = $Result.Append("|----------|------|--------|`n") foreach ($Item in $ReportingDisabledItems) { $FriendlyName = & $ResolveDisplayName $Item.StandardName $TemplateSettings if (-not $FriendlyName) { continue } - $null = $Result.Append("| $FriendlyName | ⏸️ Reporting Disabled |`n") + $Tags = & $ResolveTags $Item.StandardName + $null = $Result.Append("| $FriendlyName | $Tags | ⏸️ Reporting Disabled |`n") } $null = $Result.Append("`n") } diff --git a/Modules/CIPPTests/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 b/Modules/CIPPTests/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 index d18f29b16a7c0..e95e5c5f9a378 100644 --- a/Modules/CIPPTests/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 +++ b/Modules/CIPPTests/Public/Tests/ORCA/Identity/Invoke-CippTestORCA121.ps1 @@ -2,20 +2,62 @@ function Invoke-CippTestORCA121 { <# .SYNOPSIS Supported filter policy action used + + .DESCRIPTION + ORCA121 (area: Zero Hour Autopurge). ZAP can only act on a message that was delivered to the + Junk Email folder or quarantined, so it is inert when a policy's spam or phish action is one + that leaves the message in place (e.g. AddXHeader, ModifySubject, NoAction). This checks that + SpamAction and PhishSpamAction on each anti-spam policy are actions ZAP supports. + + .FUNCTIONALITY + Internal #> param($Tenant) try { - $Policies = Get-CIPPTestData -TenantFilter $Tenant -Type 'ExoQuarantinePolicy' + $Policies = Get-CIPPTestData -TenantFilter $Tenant -Type 'ExoHostedContentFilterPolicy' if (-not $Policies) { Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' return } - $Status = 'Passed' - $Result = [System.Text.StringBuilder]::new("Quarantine policies are configured to support Zero Hour Auto Purge.`n`n") - $null = $Result.Append("**Total Policies:** $($Policies.Count)") + # Actions ZAP can act on, per ORCA121. Anything else leaves the message in the inbox, + # where ZAP has nothing to purge. + $SupportedActions = @('MoveToJmf', 'Redirect', 'Delete', 'Quarantine') + + $Failures = [System.Collections.Generic.List[object]]::new() + $PolicyCount = 0 + + foreach ($Policy in $Policies) { + $PolicyCount++ + # ORCA evaluates the two actions as separate config items, so a policy can fail on + # one and pass on the other; report them independently rather than per-policy. + foreach ($Setting in @('SpamAction', 'PhishSpamAction')) { + $Value = $Policy.$Setting + if ($Value -notin $SupportedActions) { + $Failures.Add([PSCustomObject]@{ + Policy = $Policy.Identity ?? $Policy.Name + Setting = $Setting + Value = if ($null -eq $Value -or $Value -eq '') { 'Not set' } else { $Value } + }) | Out-Null + } + } + } + + if ($Failures.Count -eq 0) { + $Status = 'Passed' + $Result = [System.Text.StringBuilder]::new("✅ **Pass**: All $PolicyCount anti-spam policy/policies use a filter action that Zero Hour Auto Purge supports.`n`n") + $null = $Result.Append("Supported actions: $($SupportedActions -join ', ').") + } else { + $Status = 'Failed' + $Result = [System.Text.StringBuilder]::new("❌ **Fail**: $($Failures.Count) setting(s) across $PolicyCount anti-spam policy/policies use an action that Zero Hour Auto Purge cannot act on:`n`n") + $null = $Result.Append("| Policy | Setting | Current Action | Supported |`n") + $null = $Result.Append("| :----- | :------ | :------------- | :-------- |`n") + foreach ($Failure in $Failures) { + $null = $Result.Append("| $($Failure.Policy) | $($Failure.Setting) | $($Failure.Value) | $($SupportedActions -join ', ') |`n") + } + } Add-CippTestResult -TenantFilter $Tenant -TestId 'ORCA121' -TestType 'Identity' -Status $Status -ResultMarkdown $Result -Risk 'Low' -Name 'Supported filter policy action used' -UserImpact 'Medium' -ImplementationEffort 'Low' -Category 'Quarantine' diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 index 0809843b69697..8196f6053aadd 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24548.ps1 @@ -9,20 +9,33 @@ function Invoke-CippTestZTNA24548 { #Tested - Device try { - $IosPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneIosAppProtectionPolicies' + # App protection policies for every platform live under one type; URLName carries the + # Graph resource they came from and is the platform discriminator. This previously read + # 'IntuneIosAppProtectionPolicies', a type no collector writes, so the test always skipped. + $AllPolicies = @(Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneAppProtectionManagedAppPolicies') - if (-not $IosPolicies) { + # Only skip when the type itself is absent (no Intune licence, or collection has not run). + if ($AllPolicies.Count -eq 0) { Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' return } + $IosPolicies = @($AllPolicies | Where-Object { $_.URLName -eq 'iosManagedAppProtection' }) + + # Data exists but no iOS policy at all — that is a genuine failure of this control, not a + # missing-data skip. + if ($IosPolicies.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "❌ No iOS/iPadOS app protection policy exists in this tenant.`n`nApp protection policies were found for other platforms, so Intune data is being collected — there is simply no iOS policy." -Risk 'High' -Name 'Data on iOS/iPadOS is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + $AssignedPolicies = @($IosPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) $Passed = $AssignedPolicies.Count -gt 0 if ($Passed) { $ResultMarkdown = [System.Text.StringBuilder]::new("✅ At least one iOS app protection policy exists and is assigned.`n`n") } else { - $ResultMarkdown = [System.Text.StringBuilder]::new("❌ No iOS app protection policy exists or none are assigned.`n`n") + $ResultMarkdown = [System.Text.StringBuilder]::new("❌ iOS app protection policies exist but none are assigned.`n`n") } $null = $ResultMarkdown.Append("## iOS App Protection Policies`n`n") diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 index 2837b609f04d7..b2ef4a25e3367 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Devices/Invoke-CippTestZTNA24549.ps1 @@ -9,20 +9,33 @@ function Invoke-CippTestZTNA24549 { #Tested - Device try { - $AndroidPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneAndroidAppProtectionPolicies' + # App protection policies for every platform live under one type; URLName carries the + # Graph resource they came from and is the platform discriminator. This previously read + # 'IntuneAndroidAppProtectionPolicies', a type no collector writes, so the test always skipped. + $AllPolicies = @(Get-CIPPTestData -TenantFilter $Tenant -Type 'IntuneAppProtectionManagedAppPolicies') - if (-not $AndroidPolicies) { + # Only skip when the type itself is absent (no Intune licence, or collection has not run). + if ($AllPolicies.Count -eq 0) { Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' return } + $AndroidPolicies = @($AllPolicies | Where-Object { $_.URLName -eq 'androidManagedAppProtection' }) + + # Data exists but no Android policy at all — that is a genuine failure of this control, not + # a missing-data skip. + if ($AndroidPolicies.Count -eq 0) { + Add-CippTestResult -TenantFilter $Tenant -TestId $TestId -TestType 'Devices' -Status 'Failed' -ResultMarkdown "❌ No Android app protection policy exists in this tenant.`n`nApp protection policies were found for other platforms, so Intune data is being collected — there is simply no Android policy." -Risk 'High' -Name 'Data on Android is protected by app protection policies' -UserImpact 'Low' -ImplementationEffort 'Low' -Category 'Tenant' + return + } + $AssignedPolicies = @($AndroidPolicies | Where-Object { $_.assignments -and $_.assignments.Count -gt 0 }) $Passed = $AssignedPolicies.Count -gt 0 if ($Passed) { $ResultMarkdown = [System.Text.StringBuilder]::new("✅ At least one Android app protection policy exists and is assigned.`n`n") } else { - $ResultMarkdown = [System.Text.StringBuilder]::new("❌ No Android app protection policy exists or none are assigned.`n`n") + $ResultMarkdown = [System.Text.StringBuilder]::new("❌ Android app protection policies exist but none are assigned.`n`n") } $null = $ResultMarkdown.Append("## Android App Protection Policies`n`n") diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 index 8d4ed2870e3b6..71dc891fce1b5 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21782.ps1 @@ -7,7 +7,7 @@ function Invoke-CippTestZTNA21782 { try { $UserRegistrationDetails = Get-CIPPTestData -TenantFilter $Tenant -Type 'UserRegistrationDetails' - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles $RoleAssignmentScheduleInstances = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleAssignmentScheduleInstances' if ($null -eq $UserRegistrationDetails -or $null -eq $Roles) { @@ -17,17 +17,19 @@ function Invoke-CippTestZTNA21782 { $PhishResistantMethods = @('passKeyDeviceBound', 'passKeyDeviceBoundAuthenticator', 'windowsHelloForBusiness') + # RoleAssignmentScheduleInstances.roleDefinitionId is a role template ID, so key the privileged role set by template ID. $PrivilegedRoleIds = [System.Collections.Generic.HashSet[string]]::new() $RoleNamesById = @{} - foreach ($Role in @($Roles.Where({ $_.isPrivileged -eq $true }))) { - if ($Role.id) { - [void]$PrivilegedRoleIds.Add([string]$Role.id) - $RoleNamesById[[string]$Role.id] = $Role.displayName + foreach ($Role in @($Roles)) { + $RoleTemplateId = if ($Role.roleTemplateId) { [string]$Role.roleTemplateId } elseif ($Role.RoletemplateId) { [string]$Role.RoletemplateId } else { $null } + if ($RoleTemplateId) { + [void]$PrivilegedRoleIds.Add($RoleTemplateId) + $RoleNamesById[$RoleTemplateId] = $Role.displayName } } $PrivilegedPrincipalsById = @{} - foreach ($Role in @($Roles.Where({ $_.isPrivileged -eq $true }))) { + foreach ($Role in @($Roles)) { foreach ($Member in @($Role.members)) { if (-not $Member.id) { continue } $principalId = [string]$Member.id diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 index 76ee3e4300cda..9dd3017715458 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21783.ps1 @@ -7,14 +7,15 @@ function Invoke-CippTestZTNA21783 { #tested try { $CAPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'ConditionalAccessPolicies' - $Roles = Get-CIPPTestData -TenantFilter $Tenant -Type 'Roles' + $Roles = Get-CippDbRole -TenantFilter $Tenant -IncludePrivilegedRoles if (-not $CAPolicies -or -not $Roles) { Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Skipped' -ResultMarkdown 'No data found in database. This may be due to missing required licenses or data collection not yet completed.' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' return } - $PrivilegedRoles = $Roles | Where-Object { $_.isPrivileged -and $_.isBuiltIn } + # Get-CippDbRole -IncludePrivilegedRoles already returns the privileged built-in directory roles. + $PrivilegedRoles = @($Roles) if (-not $PrivilegedRoles) { Add-CippTestResult -TenantFilter $Tenant -TestId 'ZTNA21783' -TestType 'Identity' -Status 'Passed' -ResultMarkdown 'No privileged built-in roles found in tenant' -Risk 'High' -Name 'Privileged Microsoft Entra built-in roles are targeted with Conditional Access policies to enforce phishing-resistant methods' -UserImpact 'Low' -ImplementationEffort 'Medium' -Category 'Access Control' @@ -31,7 +32,11 @@ function Invoke-CippTestZTNA21783 { $CoveredRoleIds = $PhishResistantPolicies.conditions.users.includeRoles | Select-Object -Unique - $UnprotectedRoles = $PrivilegedRoles | Where-Object { $_.id -notin $CoveredRoleIds } + # Conditional Access includeRoles reference role template IDs, not directory role instance IDs. + $UnprotectedRoles = $PrivilegedRoles | Where-Object { + $Tid = if ($_.roleTemplateId) { [string]$_.roleTemplateId } elseif ($_.RoletemplateId) { [string]$_.RoletemplateId } else { $null } + $Tid -notin $CoveredRoleIds + } if ($UnprotectedRoles.Count -eq 0) { $Status = 'Passed' diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 index 9f3f82f2e05ae..c43db9e83435a 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21813.ps1 @@ -24,11 +24,14 @@ function Invoke-CippTestZTNA21813 { $UserRoleMap = @{} foreach ($Role in $PrivilegedRoles) { + # 'roleTemplateId', not 'templateId' — the Roles cache has no templateId field at all + # (description, displayName, id, memberCount, members, roleTemplateId), so both filters + # below compared against $null and matched nothing. $ActiveAssignments = $RoleAssignmentScheduleInstances | Where-Object { - $_.roleDefinitionId -eq $Role.templateId -and $_.assignmentType -eq 'Assigned' + $_.roleDefinitionId -eq $Role.roleTemplateId -and $_.assignmentType -eq 'Assigned' } $EligibleAssignments = $RoleEligibilitySchedules | Where-Object { - $_.roleDefinitionId -eq $Role.templateId + $_.roleDefinitionId -eq $Role.roleTemplateId } $AllAssignments = @($ActiveAssignments) + @($EligibleAssignments) @@ -38,7 +41,9 @@ function Invoke-CippTestZTNA21813 { if (-not $User) { continue } $UserId = $User.id - $IsGARole = $Role.templateId -eq $GlobalAdminRoleId + # roleTemplateId — $Role.templateId does not exist, so this was always false and + # no user was ever classed as a Global Administrator. + $IsGARole = $Role.roleTemplateId -eq $GlobalAdminRoleId if ($IsGARole) { $AllGAUsers[$UserId] = $User diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 index 3705a2cb776e5..23ac636141a5a 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21816.ps1 @@ -55,7 +55,9 @@ function Invoke-CippTestZTNA21816 { } foreach ($Role in $PrivilegedRoles) { - if ($Role.templateId -eq $GlobalAdminRoleId) { continue } + # roleTemplateId — $Role.templateId does not exist, so this guard never fired and the + # Global Administrator role was processed here despite being handled separately below. + if ($Role.roleTemplateId -eq $GlobalAdminRoleId) { continue } $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.RoletemplateId diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 index 1ebe2fdddbc7c..1830d7443462c 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21818.ps1 @@ -68,8 +68,10 @@ function Invoke-CippTestZTNA21818 { $ExitLoop = $false foreach ($Role in $PrivilegedRoles) { + # roleDefinitionId carries the role's TEMPLATE id — matching it against $Role.id (the + # directoryRole instance id) never succeeded. $Policy = $RoleManagementPolicies | Where-Object { - $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $Role.id + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $Role.roleTemplateId } | Select-Object -First 1 if (-not $Policy) { continue } diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 index af4ca97404ecc..30e4ff7adcfb9 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21819.ps1 @@ -17,11 +17,15 @@ function Invoke-CippTestZTNA21819 { return } - # Get role management policy for Global Admin + # Get role management policy for Global Admin. + # This previously matched on effectiveRules.target.targetObjects.id — a property that does + # not exist on this response (target is {caller, operations, level, inheritableSettings, + # enforcedSettings}), so the policy was never found. roleDefinitionId carries the role's + # TEMPLATE id, which is the correct join. $RoleManagementPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleManagementPolicies' $GlobalAdminPolicy = $RoleManagementPolicies | Where-Object { - $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.effectiveRules.target.targetObjects.id -contains $GlobalAdminRole.id - } + $_.scopeId -eq '/' -and $_.scopeType -eq 'DirectoryRole' -and $_.roleDefinitionId -eq $GlobalAdminRole.roleTemplateId + } | Select-Object -First 1 $Passed = 'Failed' $IsDefaultRecipientsEnabled = 'N/A' diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 index e4afd33d43926..ecb621ade66ca 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21820.ps1 @@ -19,15 +19,15 @@ function Invoke-CippTestZTNA21820 { # Get all role management policies $RoleManagementPolicies = Get-CIPPTestData -TenantFilter $Tenant -Type 'RoleManagementPolicies' - # Build hashtable for quick policy lookup by role ID + # Build hashtable for quick policy lookup by role template ID. + # This previously keyed on effectiveRules.target.targetObjects.id — a property that does + # not exist on this response (target is {caller, operations, level, inheritableSettings, + # enforcedSettings}), so the table was always empty and no policy was ever found. + # roleDefinitionId carries the role's TEMPLATE id, which is the correct key. $PolicyByRoleId = @{} foreach ($Policy in $RoleManagementPolicies) { - if ($Policy.scopeId -eq '/' -and $Policy.scopeType -eq 'DirectoryRole') { - foreach ($RoleId in $Policy.effectiveRules.target.targetObjects.id) { - if ($RoleId) { - $PolicyByRoleId[$RoleId] = $Policy - } - } + if ($Policy.scopeId -eq '/' -and $Policy.scopeType -eq 'DirectoryRole' -and $Policy.roleDefinitionId) { + $PolicyByRoleId[$Policy.roleDefinitionId] = $Policy } } @@ -35,7 +35,8 @@ function Invoke-CippTestZTNA21820 { $Passed = 'Passed' foreach ($Role in $PrivilegedRoles) { - $Policy = $PolicyByRoleId[$Role.id] + # Template id, not the directoryRole instance id — see the note above. + $Policy = $PolicyByRoleId[$Role.roleTemplateId] if (-not $Policy) { $RolesWithIssues.Add(@{ diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 index 0fa5d363f3335..c5f53095d4fe4 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21835.ps1 @@ -17,9 +17,12 @@ function Invoke-CippTestZTNA21835 { return } - # Get permanent Global Administrator members + # Get permanent Global Administrator members. + # This previously filtered on AssignmentType -eq 'Permanent', a value Get-CippDbRoleMembers + # never emits (it returns Active/Eligible/Direct), so the set was always empty and the test + # silently reported no permanent GAs on every tenant. Permanence is IsPermanent. $PermanentGAMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId '62e90394-69f5-4237-9190-012177145e10' | Where-Object { - $_.AssignmentType -eq 'Permanent' -and $_.'@odata.type' -eq '#microsoft.graph.user' + $_.IsPermanent -and $_.'@odata.type' -eq '#microsoft.graph.user' } # Get Users data to check sync status @@ -28,7 +31,8 @@ function Invoke-CippTestZTNA21835 { $EmergencyAccountCandidates = [System.Collections.Generic.List[object]]::new() foreach ($Member in $PermanentGAMembers) { - $User = $Users | Where-Object { $_.id -eq $Member.principalId } + # Get-CippDbRoleMembers returns the principal object id as 'id', not 'principalId'. + $User = $Users | Where-Object { $_.id -eq $Member.id } # Only process cloud-only accounts if ($User -and $User.onPremisesSyncEnabled -ne $true) { @@ -165,7 +169,9 @@ function Invoke-CippTestZTNA21835 { $UserSummary = [System.Collections.Generic.List[object]]::new() foreach ($Member in $PermanentGAMembers) { - $User = $Users | Where-Object { $_.id -eq $Member.principalId } + # 'id', not 'principalId' — see the note above; this lookup silently matched + # nothing and every row was skipped by the -not $User guard below. + $User = $Users | Where-Object { $_.id -eq $Member.id } if (-not $User) { continue } $PortalLink = "https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/$($User.id)" diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 index f7c37115662a8..aef4e53a6ce40 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21836.ps1 @@ -20,16 +20,21 @@ function Invoke-CippTestZTNA21836 { $WorkloadIdentitiesWithPrivilegedRoles = [System.Collections.Generic.List[object]]::new() foreach ($Role in $PrivilegedRoles) { - $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.id + # Must be the role's TEMPLATE id: PIM's roleDefinitionId carries template ids, so + # passing $Role.id (the directoryRole instance id) matched nothing and this test found + # no workload identities on any tenant. + $RoleMembers = Get-CippDbRoleMembers -TenantFilter $Tenant -RoleTemplateId $Role.roleTemplateId foreach ($Member in $RoleMembers) { if ($Member.'@odata.type' -eq '#microsoft.graph.servicePrincipal') { + # Get-CippDbRoleMembers returns id/displayName/appId — not principalId or + # principalDisplayName, which rendered blank here. $WorkloadIdentitiesWithPrivilegedRoles.Add([PSCustomObject]@{ - PrincipalId = $Member.principalId - PrincipalDisplayName = $Member.principalDisplayName + PrincipalId = $Member.id + PrincipalDisplayName = $Member.displayName AppId = $Member.appId RoleDisplayName = $Role.displayName - RoleDefinitionId = $Role.id + RoleDefinitionId = $Role.roleTemplateId AssignmentType = $Member.AssignmentType }) } @@ -48,7 +53,7 @@ function Invoke-CippTestZTNA21836 { $SortedAssignments = $WorkloadIdentitiesWithPrivilegedRoles | Sort-Object -Property PrincipalDisplayName foreach ($Assignment in $SortedAssignments) { - $SPLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($Assignment.PrincipalId)/appId/$($Assignment.AppId)/preferredSingleSignOnMode~/null/servicePrincipalType/Application/fromNav/" + $SPLink = "https://entra.microsoft.com/#view/Microsoft_AAD_IAM/ManagedAppMenuBlade/~/Overview/objectId/$($Assignment.PrincipalId)/appId/$($Assignment.AppId)" $null = $ResultMarkdown.Append("| [$($Assignment.PrincipalDisplayName)]($SPLink) | $($Assignment.RoleDisplayName) | $($Assignment.AssignmentType) |`n") } $null = $ResultMarkdown.Append("`n") diff --git a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.ps1 b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.ps1 index 0d94a2fb06c43..0a7b4c3c6a755 100644 --- a/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.ps1 +++ b/Modules/CIPPTests/Public/Tests/ZTNA/Identity/Invoke-CippTestZTNA21899.ps1 @@ -25,7 +25,9 @@ function Invoke-CippTestZTNA21899 { foreach ($R in $NotifRules) { if (-not $R.notificationRecipients -or $R.notificationRecipients.Count -eq 0) { $MissingRecipients.Add([PSCustomObject]@{ - PolicyId = $Policy.id + # 'policyId' — this type is sourced from roleManagementPolicyAssignments + # and carries the policy's id as policyId, not id. + PolicyId = $Policy.policyId ScopeId = $Policy.scopeId ScopeType = $Policy.scopeType RuleId = $R.id diff --git a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 index 561893aee457f..ccf25d46bf996 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Get-ExtensionAPIKey.ps1 @@ -20,7 +20,7 @@ function Get-ExtensionAPIKey { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $APIKey = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq '$Extension' and RowKey eq '$Extension'").APIKey } else { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName $APIKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -AsPlainText) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue diff --git a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 index 402f8146bdca4..247088aaed815 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Register-CippExtensionScheduledTasks.ps1 @@ -14,6 +14,7 @@ function Register-CIPPExtensionScheduledTasks { $ScheduledTasksTable = Get-CIPPTable -TableName ScheduledTasks $ScheduledTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Sync-CippExtensionData' } $PushTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Push-CippExtensionData' } + $SherwebMigTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Invoke-SherwebMigration' } $Tenants = Get-Tenants -IncludeErrors # Remove all legacy Sync-CippExtensionData tasks (now deprecated - extensions use CippReportingDB) @@ -32,7 +33,6 @@ function Register-CIPPExtensionScheduledTasks { if ($Extension -eq 'Sherweb') { # Sherweb migration tasks - schedule per mapped tenant $SherwebMappings = Get-CIPPAzDataTableEntity @MappingsTable -Filter "PartitionKey eq 'SherwebMapping'" - $SherwebMigTasks = Get-CIPPAzDataTableEntity @ScheduledTasksTable -Filter 'Hidden eq true' | Where-Object { $_.Command -match 'Invoke-SherwebMigration' } foreach ($Mapping in $SherwebMappings) { $Tenant = $Tenants | Where-Object { $_.customerId -eq $Mapping.RowKey } if (-not $Tenant) { continue } @@ -145,6 +145,14 @@ function Register-CIPPExtensionScheduledTasks { $Entity = $_ | Select-Object -Property PartitionKey, RowKey Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity } + if ($Extension -eq 'Sherweb') { + $SherwebMigTasks | ForEach-Object { + Write-Information "Extension Disabled: Cleaning up scheduled task $($_.Name) for tenant $($_.Tenant)" + $Entity = $_ | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + $SherwebMigTasks = @() # Clear the list since we removed them all + } } } $MappedTenants = $MappedTenants | Sort-Object -Unique @@ -163,4 +171,11 @@ function Register-CIPPExtensionScheduledTasks { Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity } } + foreach ($Task in $SherwebMigTasks) { + if ($Task.Tenant -notin $MappedTenants) { + Write-Information "Tenant Removed: Cleaning up scheduled task $($Task.Name) for tenant $($Task.TenantFilter)" + $Entity = $Task | Select-Object -Property PartitionKey, RowKey + Remove-AzDataTableEntity -Force @ScheduledTasksTable -Entity $Entity + } + } } diff --git a/Modules/CippExtensions/Public/Extension Functions/Remove-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Remove-ExtensionAPIKey.ps1 index 3e42100a218fe..804dd8e69994d 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Remove-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Remove-ExtensionAPIKey.ps1 @@ -19,7 +19,7 @@ function Remove-ExtensionAPIKey { Write-Information "No existing DevSecrets row found for '$Extension' to delete." } } else { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName try { $null = Remove-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension } catch { diff --git a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 index f8b0975bc9639..c7ab471f0df77 100644 --- a/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 +++ b/Modules/CippExtensions/Public/Extension Functions/Set-ExtensionAPIKey.ps1 @@ -23,7 +23,7 @@ function Set-ExtensionAPIKey { } Add-CIPPAzDataTableEntity @DevSecretsTable -Entity $Secret -Force } else { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName $null = Set-CippKeyVaultSecret -VaultName $keyvaultname -Name $Extension -SecretValue (ConvertTo-SecureString -AsPlainText -Force -String $APIKey) } Set-Item -Path "env:$Var" -Value $APIKey -Force -ErrorAction SilentlyContinue diff --git a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 index fc9968070e66c..c7cdb3703b89e 100644 --- a/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 +++ b/Modules/CippExtensions/Public/Gradient/Get-GradientToken.ps1 @@ -3,7 +3,7 @@ function Get-GradientToken { $Configuration ) if ($Configuration.vendorKey) { - $keyvaultname = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $keyvaultname = Get-CippKeyVaultName $partnerApiKey = (Get-CippKeyVaultSecret -VaultName $keyvaultname -Name 'Gradient' -AsPlainText) $authorizationToken = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("$($configuration.vendorKey):$($partnerApiKey)")) diff --git a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 index 365b387e09fc2..4af70cb4e57b8 100644 --- a/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 +++ b/Modules/CippExtensions/Public/HIBP/Get-HIBPAuth.ps1 @@ -9,7 +9,7 @@ function Get-HIBPAuth { $DevSecretsTable = Get-CIPPTable -tablename 'DevSecrets' $Secret = (Get-CIPPAzDataTableEntity @DevSecretsTable -Filter "PartitionKey eq 'HIBP' and RowKey eq 'HIBP'").APIKey } else { - $VaultName = ($env:WEBSITE_DEPLOYMENT_ID -split '-')[0] + $VaultName = Get-CippKeyVaultName try { $Secret = Get-CippKeyVaultSecret -VaultName $VaultName -Name 'HIBP' -AsPlainText -ErrorAction Stop } catch { diff --git a/Modules/CippExtensions/Public/Halo/Get-HaloUser.ps1 b/Modules/CippExtensions/Public/Halo/Get-HaloUser.ps1 new file mode 100644 index 0000000000000..cc2df9f62cb99 --- /dev/null +++ b/Modules/CippExtensions/Public/Halo/Get-HaloUser.ps1 @@ -0,0 +1,125 @@ +function Get-HaloUser { + <# + .SYNOPSIS + Look up a HaloPSA user/contact for a Microsoft 365 end-user. + .DESCRIPTION + Searches the HaloPSA /Users endpoint scoped to a specific client. Matches first by Azure + Object ID (against the HaloPSA contact fields 'azureoid' and 'aaduserid'), then falls back + to the user's email/UPN (against 'emailaddress', 'networklogin' and 'aaduserid' - Halo's + AD-sync contacts often store the UPN in any of these). Returns a small object containing + the matched user's id and site_id (Halo requires both when a specific user is set on a + ticket), or $null when no match is found. + .PARAMETER AzureOID + The Microsoft Entra (Azure AD) Object ID of the user to match. Preferred when present. + .PARAMETER Email + The user's email address (typically the UPN). Used as a fallback when AzureOID is missing + or returns no match. + .PARAMETER ClientId + The HaloPSA client id to scope the search to. + .PARAMETER Configuration + The HaloPSA extension configuration object (already extracted from Extensionsconfig). + .PARAMETER Token + A valid Halo OAuth token object as returned by Get-HaloToken. + #> + [CmdletBinding()] + param ( + [string]$AzureOID, + [string]$Email, + [Parameter(Mandatory = $true)] + $ClientId, + [Parameter(Mandatory = $true)] + $Configuration, + [Parameter(Mandatory = $true)] + $Token + ) + + $Headers = @{ Authorization = "Bearer $($Token.access_token)" } + $BaseUri = "$($Configuration.ResourceURL)/Users?client_id=$ClientId&includeinactive=false&pageinate=false" + + $BuildResult = { + param($MatchedUser) + # Cast to [int] so PowerShell's default [double] deserialisation of JSON numbers + # doesn't serialise back as e.g. "95.0", which Halo rejects. + [pscustomobject]@{ + id = [int]$MatchedUser.id + site_id = [int]$MatchedUser.site_id + } + } + + # Halo's basic ?search= parameter only searches a fixed set of indexed fields (name, email, + # logins...) and notably NOT azureoid. Use ?advanced_search= with filter_type=2 (=) for an + # exact-match query against a specific field. + $TryAdvancedSearch = { + param($FilterName, $FilterValue) + try { + $Filter = ConvertTo-Json -Compress -InputObject @(@{ + filter_name = $FilterName + filter_type = 2 # 2 = exact equality + filter_value = $FilterValue + }) + $EncodedFilter = [System.Uri]::EscapeDataString($Filter) + $Response = Invoke-RestMethod -Uri "$BaseUri&advanced_search=$EncodedFilter" -ContentType 'application/json' -Method GET -Headers $Headers + if ($Response.users) { return $Response.users } + return $Response + } catch { + $Message = if ($_.ErrorDetails.Message) { Get-NormalizedError -Message $_.ErrorDetails.Message } else { $_.Exception.Message } + # Some Halo instances don't whitelist these fields for advanced_search even though they + # exist on the user record. That's expected - the email-search fallback handles it. Only + # log unexpected failures. + if ($Message -notmatch 'Invalid advanced search parameter') { + Write-LogMessage -API 'HaloPSATicket' -message "Halo advanced_search failed for $FilterName='$FilterValue' in client ${ClientId}: $Message" -sev Warning + } + return @() + } + } + + $TrySearch = { + param($Term) + try { + $EncodedTerm = [System.Uri]::EscapeDataString($Term) + $Response = Invoke-RestMethod -Uri "$BaseUri&search=$EncodedTerm" -ContentType 'application/json' -Method GET -Headers $Headers + if ($Response.users) { return $Response.users } + return $Response + } catch { + $Message = if ($_.ErrorDetails.Message) { Get-NormalizedError -Message $_.ErrorDetails.Message } else { $_.Exception.Message } + Write-LogMessage -API 'HaloPSATicket' -message "Halo user search failed for term '$Term' in client ${ClientId}: $Message" -sev Warning + return @() + } + } + + # HaloPSA contacts can carry the user identity in several fields depending on how AD/Azure AD + # sync is set up. Match against all known candidates so partial integrations still resolve. + $AzureIdFields = @('azureoid', 'aaduserid') + $EmailFields = @('emailaddress', 'networklogin', 'aaduserid') + + # Try AzureOID first via advanced_search - exact-match on each AD identifier field, returning + # the first hit. This is the most reliable path because Halo's azureoid field is the cleanest + # link back to the Entra user. + if ($AzureOID) { + foreach ($Field in $AzureIdFields) { + $Match = (& $TryAdvancedSearch $Field $AzureOID) | Where-Object { $_.id } | Select-Object -First 1 + if ($Match) { return & $BuildResult $Match } + } + } + + # Fall back to email: the basic search indexes email-shaped fields and returns candidates; + # filter client-side against any of the email-bearing fields, and also re-check the AzureOID + # against returned records (handy when a contact has azureoid set but blank email fields). + if ($Email) { + $Results = & $TrySearch $Email + foreach ($User in $Results) { + if ($AzureOID) { + foreach ($Field in $AzureIdFields) { + $Value = $User.$Field + if ($Value -and ($Value -ieq $AzureOID)) { return & $BuildResult $User } + } + } + foreach ($Field in $EmailFields) { + $Value = $User.$Field + if ($Value -and ($Value -ieq $Email)) { return & $BuildResult $User } + } + } + } + + return $null +} diff --git a/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 index 0249248c88ec6..e2eb1eaf60743 100644 --- a/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 +++ b/Modules/CippExtensions/Public/Halo/New-HaloPSATicket.ps1 @@ -3,15 +3,39 @@ function New-HaloPSATicket { param ( $title, $description, - $client + $client, + [string]$UserUPN, + [string]$AzureOID, + [string]$DisplayName ) #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 + + # Resolve affected user to a HaloPSA contact when the integration is configured for it. + # Unmatched users fall through to userlookup.id = -1 (the client's General User contact). + $MatchedUser = $null + $UserLinkActive = $Configuration.LinkTicketsToUsers -and ($UserUPN -or $AzureOID) + if ($UserLinkActive) { + $MatchedUser = Get-HaloUser -AzureOID $AzureOID -Email $UserUPN -ClientId $client -Configuration $Configuration -Token $token + if (-not $MatchedUser) { + $UnmatchedLabel = if ($DisplayName) { "$DisplayName ($UserUPN)" } else { $UserUPN } + Write-LogMessage -API 'HaloPSATicket' -message "No HaloPSA contact match for $UserUPN in client $client - falling back to General User" -sev Warning + $description = "$description

Affected user: $UnmatchedLabel - no matching HaloPSA contact found, ticket assigned to General User.

" + } + } + + # When linking is active, include UPN in the consolidation key so per-user tickets don't + # collapse onto each other when the same alert title fires for multiple users. + $HashInput = if ($UserLinkActive -and $UserUPN) { "$title|$UserUPN" } else { $title } + $TitleHash = Get-StringHash -String $HashInput + + # Halo requires a site_id whenever a specific user is set on the ticket; pull it from the + # matched user record. When no user is matched, leave site_id null and let Halo resolve it + # from the General User (id = -1). + $SiteId = if ($MatchedUser) { $MatchedUser.site_id } else { $null } if ($Configuration.ConsolidateTickets) { $ExistingTicket = Get-CIPPAzDataTableEntity @TicketTable -Filter "PartitionKey eq 'HaloPSA' and RowKey eq '$($client)-$($TitleHash)'" @@ -35,12 +59,13 @@ function New-HaloPSATicket { } $body = ConvertTo-Json -Compress -Depth 10 -InputObject @($Object) + $NoteAdded = $false 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)" + $NoteAdded = $true } - return "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" } catch { $Message = if ($_.ErrorDetails.Message) { @@ -49,10 +74,15 @@ function New-HaloPSATicket { 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" + # Don't return here - if appending a note failed (e.g. permissions on the action, + # invalid outcome_id) we still want to create a fresh ticket so the alert isn't lost. + Write-LogMessage -message "Failed to add note to HaloPSA ticket $($ExistingTicket.TicketID): $Message - falling back to creating a new ticket" -API 'HaloPSATicket' -sev Warning -LogData (Get-CippException -Exception $_) + Write-Information "Failed to add note to HaloPSA ticket: $Message; creating a new ticket instead" Write-Information "Body we tried to ship: $body" - return "Failed to add note to HaloPSA ticket: $Message" + } + + if ($NoteAdded) { + return "Note added to ticket in HaloPSA: $($ExistingTicket.TicketID)" } } } @@ -62,17 +92,29 @@ function New-HaloPSATicket { } } + $UserLookupId = if ($MatchedUser) { $MatchedUser.id } else { -1 } + $UserLookupDisplay = if ($MatchedUser) { + if ($DisplayName) { $DisplayName } else { $UserUPN } + } else { + 'Enter Details Manually' + } + $UserNameValue = if ($MatchedUser) { + if ($DisplayName) { $DisplayName } else { $UserUPN } + } else { + $null + } + $Object = [PSCustomObject]@{ files = $null usertype = 1 userlookup = @{ - id = -1 - lookupdisplay = 'Enter Details Manually' + id = $UserLookupId + lookupdisplay = $UserLookupDisplay } - client_id = ($client | Select-Object -Last 1) + client_id = [int]($client | Select-Object -Last 1) _forcereassign = $true - site_id = $null - user_name = $null + site_id = $SiteId + user_name = $UserNameValue reportedby = $null summary = $title details_html = $description diff --git a/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 index f184e81f493e1..c0ad986868841 100644 --- a/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 +++ b/Modules/CippExtensions/Public/Hudu/Invoke-HuduExtensionSync.ps1 @@ -8,7 +8,7 @@ function Invoke-HuduExtensionSync { $TenantFilter ) try { - Connect-HuduAPI -configuration $Configuration + Connect-HuduAPI -configuration $Configuration | Out-Null $Configuration = $Configuration.Hudu $Tenant = Get-Tenants -TenantFilter $TenantFilter -IncludeErrors $CompanyResult = [PSCustomObject]@{ @@ -32,6 +32,12 @@ function Invoke-HuduExtensionSync { # Get Asset cache $HuduAssetCache = Get-CippTable -tablename 'CacheHuduAssets' + # Get Relations cache - Hudu's relations API has no per-company filter, so this is cached + # globally and shared across every tenant's sync instead of pulling the full relations + # table (30s+ on large instances) on every single sync run. + $HuduRelationsCache = Get-CippTable -tablename 'CacheHuduRelations' + $HuduRelationsCacheTTLMinutes = 15 + # Import license mapping $LicTable = [System.IO.File]::ReadAllText((Join-Path $env:CIPPRootPath 'Config\ConversionTable.csv')) | ConvertFrom-Csv @@ -47,6 +53,18 @@ function Invoke-HuduExtensionSync { # Include mailboxes if needed for Hudu sync $ExtensionCache = Get-CippExtensionReportingData -TenantFilter $Tenant.defaultDomainName -IncludeMailboxes $company_id = $TenantMap.IntegrationId + $HuduCompany = Get-HuduCompanies -Id $company_id + if ($HuduCompany.archived -eq $true) { + Write-Host "Company $($HuduCompany.name) is archived. Skipping sync." + $ReturnObject = [PSCustomObject]@{ + Name = $Tenant.displayName + Users = 0 + Devices = 0 + Errors = [System.Collections.Generic.List[string]]@("Company $($HuduCompany.name) is archived. Skipping sync.") + Logs = [System.Collections.Generic.List[string]]@("Company $($HuduCompany.name) is archived. Skipping sync.") + } + return $ReturnObject + } # If tenant not found in mapping table, return error if (!$TenantMap) { @@ -120,8 +138,50 @@ function Invoke-HuduExtensionSync { $ExcludeSerials = $DefaultSerials } - $HuduRelations = Get-HuduRelations - [System.Collections.ArrayList]$Links = @( + $RelationsCacheMeta = Get-CIPPAzDataTableEntity @HuduRelationsCache -Filter "PartitionKey eq 'CacheMetadata' and RowKey eq 'LastRefresh'" + $RelationsCacheAgeMinutes = if ($RelationsCacheMeta.LastRefresh) { ((Get-Date).ToUniversalTime() - [datetime]$RelationsCacheMeta.LastRefresh).TotalMinutes } else { $null } + + if ($null -ne $RelationsCacheAgeMinutes -and $RelationsCacheAgeMinutes -lt $HuduRelationsCacheTTLMinutes) { + $CachedRelationRows = Get-CIPPAzDataTableEntity @HuduRelationsCache -Filter "PartitionKey eq 'HuduRelation'" + $HuduRelations = foreach ($CachedRelationRow in $CachedRelationRows) { + [PSCustomObject]@{ + id = $CachedRelationRow.RowKey + fromable_type = $CachedRelationRow.FromableType + fromable_id = $CachedRelationRow.FromableId + toable_type = $CachedRelationRow.ToableType + toable_id = $CachedRelationRow.ToableId + } + } + } else { + $HuduRelations = Get-HuduRelations + + $ExistingRelationRows = Get-CIPPAzDataTableEntity @HuduRelationsCache -Filter "PartitionKey eq 'HuduRelation'" + if ($ExistingRelationRows) { + Remove-AzDataTableEntity @HuduRelationsCache -Entity $ExistingRelationRows -Force + } + + $RelationEntities = foreach ($Relation in $HuduRelations) { + [PSCustomObject]@{ + PartitionKey = 'HuduRelation' + RowKey = [string]$Relation.id + FromableType = [string]$Relation.fromable_type + FromableId = [string]$Relation.fromable_id + ToableType = [string]$Relation.toable_type + ToableId = [string]$Relation.toable_id + } + } + if ($RelationEntities) { + Add-CIPPAzDataTableEntity @HuduRelationsCache -Entity $RelationEntities -Force + } + + $RelationsCacheMetaEntity = [PSCustomObject]@{ + PartitionKey = 'CacheMetadata' + RowKey = 'LastRefresh' + LastRefresh = (Get-Date).ToUniversalTime().ToString('o') + } + Add-CIPPAzDataTableEntity @HuduRelationsCache -Entity $RelationsCacheMetaEntity -Force + } + [System.Collections.Generic.List[object]]$Links = @( @{ Title = 'M365 Admin Portal' URL = 'https://admin.cloud.microsoft?delegatedOrg={0}' -f $Tenant.initialDomainName @@ -153,29 +213,26 @@ function Invoke-HuduExtensionSync { Icon = 'fas fa-server' } ) - if($Configuration.IncludeDefenderLink) - { + if ($Configuration.IncludeDefenderLink) { $Links.Add(@{ - Title = 'Defender Portal' - URL = 'https://security.microsoft.com/?tid={0}' -f $Tenant.customerId - Icon = 'fas fa-shield' - }) + Title = 'Defender Portal' + URL = 'https://security.microsoft.com/?tid={0}' -f $Tenant.customerId + Icon = 'fas fa-shield' + }) } - if($Configuration.IncludeComplianceLink) - { + if ($Configuration.IncludeComplianceLink) { $Links.Add(@{ - Title = 'Compliance Portal' - URL = 'https://compliance.microsoft.com/?tid={0}' -f $Tenant.customerId - Icon = 'fas fa-caret-up' - }) + Title = 'Compliance Portal' + URL = 'https://compliance.microsoft.com/?tid={0}' -f $Tenant.customerId + Icon = 'fas fa-caret-up' + }) } - if($Configuration.IncludeParterCenterLink) - { + if ($Configuration.IncludeParterCenterLink) { $Links.Add(@{ - Title = 'Partner Center Portals' - URL = 'https://partner.microsoft.com/dashboard/v2/customers/{0}/servicemanagementpage' -f $Tenant.customerId - Icon = 'fas fa-arrow-up-right-from-square' - }) + Title = 'Partner Center Portals' + URL = 'https://partner.microsoft.com/dashboard/v2/customers/{0}/servicemanagementpage' -f $Tenant.customerId + Icon = 'fas fa-arrow-up-right-from-square' + }) } $FormattedLinks = foreach ($Link in $Links) { @@ -209,7 +266,7 @@ function Invoke-HuduExtensionSync { $post = '' - if($Configuration.HideEmptyRoles) { + if ($Configuration.HideEmptyRoles) { $Roles = $Roles | Where-Object { $_.ParsedMembers } } diff --git a/Modules/CippExtensions/Public/New-CippExtAlert.ps1 b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 index 303eaf4803767..afd594eeff913 100644 --- a/Modules/CippExtensions/Public/New-CippExtAlert.ps1 +++ b/Modules/CippExtensions/Public/New-CippExtAlert.ps1 @@ -20,7 +20,37 @@ function New-CippExtAlert { Write-Host "MappedId: $MappedId" if (!$mappedId) { $MappedId = 1 } Write-Host "MappedId: $MappedId" - New-HaloPSATicket -Title $Alert.AlertTitle -Description $Alert.AlertText -Client $mappedId + + $TicketParams = @{ + Title = $Alert.AlertTitle + Description = $Alert.AlertText + Client = $MappedId + } + + if ($Alert.AffectedUser -and $Configuration.HaloPSA.LinkTicketsToUsers) { + $UPN = $Alert.AffectedUser.UPN + $OID = $Alert.AffectedUser.AzureOID + $Display = $Alert.AffectedUser.DisplayName + + # Best-effort: resolve UPN -> Azure Object ID via Graph if we don't already have it. + # Failure here is non-fatal; Get-HaloUser will still try the email-based lookup. + if (-not $OID -and $UPN -and $Alert.TenantId) { + try { + $EncodedUPN = [System.Uri]::EscapeDataString($UPN) + $GraphUser = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/users/$EncodedUPN`?`$select=id,displayName,userPrincipalName" -tenantid $Alert.TenantId -AsApp $true + if ($GraphUser.id) { $OID = $GraphUser.id } + if (-not $Display -and $GraphUser.displayName) { $Display = $GraphUser.displayName } + } catch { + Write-Information "Could not resolve Graph user for $UPN in tenant $($Alert.TenantId): $($_.Exception.Message)" + } + } + + if ($UPN) { $TicketParams.UserUPN = $UPN } + if ($OID) { $TicketParams.AzureOID = $OID } + if ($Display) { $TicketParams.DisplayName = $Display } + } + + New-HaloPSATicket @TicketParams } } 'Gradient' { diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 index 95e854007533b..941ee634dc825 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneDocumentTemplate.ps1 @@ -18,7 +18,7 @@ function Invoke-NinjaOneDocumentTemplate { } else { $DocumentTemplate = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/document-templates/$($ID)" -Method GET -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json').content | ConvertFrom-Json -Depth 100 } - + $MatchedCount = ($DocumentTemplate | Measure-Object).count if ($MatchedCount -eq 1) { # Matched a single document template @@ -26,13 +26,12 @@ function Invoke-NinjaOneDocumentTemplate { } elseif ($MatchedCount -eq 0) { # Create a new Document Template $Body = $Template | ConvertTo-Json -Depth 100 - Write-Host "Ninja Body: $body" $NinjaDocumentTemplate = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/document-templates/" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json' -Body $Body).content | ConvertFrom-Json -Depth 100 } else { - # Matched multiple templates. Should be impossible but lets check anyway :D - Throw 'Multiple Documents Matched the Provided Criteria' + $NinjaDocumentTemplate = $DocumentTemplate | Sort-Object { [int64]$_.id } | Select-Object -First 1 + Write-Warning "Multiple NinjaOne document templates named '$($Template.name)' found ($MatchedCount). Using the oldest (id $($NinjaDocumentTemplate.id)). Remove the duplicate template(s) in NinjaOne." } return $NinjaDocumentTemplate -} \ No newline at end of file +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 index 7dd47505a39c7..0c160259c92ee 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneExtensionScheduler.ps1 @@ -42,6 +42,15 @@ function Invoke-NinjaOneExtensionScheduler { 'FunctionName' = 'NinjaOneQueue' } } + + $CveBatch = foreach ($Tenant in $TenantsToProcess) { + [PSCustomObject]@{ + 'NinjaAction' = 'CveSyncTenant' + 'MappedTenant' = $Tenant + 'FunctionName' = 'NinjaOneQueue' + } + } + if (($Batch | Measure-Object).Count -gt 0) { $InputObject = [PSCustomObject]@{ OrchestratorName = 'NinjaOneOrchestrator' @@ -52,6 +61,15 @@ function Invoke-NinjaOneExtensionScheduler { Write-Host "Started permissions orchestration with ID = '$InstanceId'" } + if (($CveBatch | Measure-Object).Count -gt 0) { + $CveInputObject = [PSCustomObject]@{ + OrchestratorName = 'NinjaOneOrchestrator' + Batch = @($CveBatch) + } + $CveInstanceId = Start-CIPPOrchestrator -InputObject $CveInputObject + Write-Host "Started CVE sync orchestration with ID = '$CveInstanceId'" + } + $AddObject = @{ PartitionKey = 'NinjaConfig' RowKey = 'NinjaLastRunTime' @@ -59,7 +77,7 @@ function Invoke-NinjaOneExtensionScheduler { } Add-AzDataTableEntity @Table -Entity $AddObject -Force - Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Daily Synchronization Queued for $(($TenantsToProcess | Measure-Object).count) Tenants" -Sev 'Info' + Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Daily Synchronization Queued for $(($TenantsToProcess | Measure-Object).count) Tenants" -Sev 'Info' } else { if ($LastRunTime -lt (Get-Date).AddMinutes(-90)) { @@ -95,7 +113,7 @@ function Invoke-NinjaOneExtensionScheduler { } if (($CatchupTenants | Measure-Object).count -gt 0) { - Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Synchronization Catchup Queued for $(($CatchupTenants | Measure-Object).count) Tenants" -Sev 'Info' + Write-LogMessage -API 'NinjaOneSync' -message "NinjaOne Synchronization Catchup Queued for $(($CatchupTenants | Measure-Object).count) Tenants" -Sev 'Info' } } diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 index a4200a6a7f445..e415d4cf580c1 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneTenantSync.ps1 @@ -746,14 +746,16 @@ function Invoke-NinjaOneTenantSync { $UsersFilter = "PartitionKey eq '$($Customer.CustomerId)'" - [System.Collections.Generic.List[PSCustomObject]]$ParsedUsers = Get-CIPPAzDataTableEntity @UsersTable -Filter $UsersFilter - if (($ParsedUsers | Measure-Object).count -eq 0) { - [System.Collections.Generic.List[PSCustomObject]]$ParsedUsers = @() + + [System.Collections.Generic.List[PSCustomObject]]$StaleParsedUsers = Get-CIPPAzDataTableEntity @UsersTable -Filter $UsersFilter + if (($StaleParsedUsers | Measure-Object).count -gt 0) { + Remove-AzDataTableEntity -Force @UsersTable -Entity ($StaleParsedUsers | Select-Object PartitionKey, RowKey) } + [System.Collections.Generic.List[PSCustomObject]]$ParsedUsers = @() - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCache = Get-CIPPAzDataTableEntity @UsersUpdateTable -Filter $UsersFilter - if (($NinjaUserCache | Measure-Object).count -eq 0) { - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCache = @() + [System.Collections.Generic.List[PSCustomObject]]$StaleUserUpdates = Get-CIPPAzDataTableEntity @UsersUpdateTable -Filter $UsersFilter + if (($StaleUserUpdates | Measure-Object).count -gt 0) { + Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity ($StaleUserUpdates | Select-Object PartitionKey, RowKey) } [System.Collections.Generic.List[PSCustomObject]]$UsersMap = Get-CIPPAzDataTableEntity @UsersMapTable -Filter $UsersFilter @@ -761,15 +763,8 @@ function Invoke-NinjaOneTenantSync { [System.Collections.Generic.List[PSCustomObject]]$UsersMap = @() } - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = $NinjaUserCache | Where-Object { $_.action -eq 'Update' } - if (($NinjaUserUpdates | Measure-Object).count -eq 0) { - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = @() - } - - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = $NinjaUserCache | Where-Object { $_.action -eq 'Create' } - if (($NinjaUserCreation | Measure-Object).count -eq 0) { - [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = @() - } + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = @() + [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = @() foreach ($user in $SyncUsers | Where-Object { $_.id -notin $ParsedUsers.RowKey }) { @@ -1219,7 +1214,8 @@ function Invoke-NinjaOneTenantSync { [System.Collections.Generic.List[PSCustomObject]]$NinjaUserCreation = @() } } catch { - Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne user document creation failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaUserCreation | Measure-Object).count) user(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } try { @@ -1231,7 +1227,8 @@ function Invoke-NinjaOneTenantSync { [System.Collections.Generic.List[PSCustomObject]]$NinjaUserUpdates = @() } } catch { - Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne user document update failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaUserUpdates | Measure-Object).count) user(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } @@ -1294,7 +1291,8 @@ function Invoke-NinjaOneTenantSync { } } catch { - Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne user document creation failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaUserCreation | Measure-Object).count) user(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } try { @@ -1305,7 +1303,8 @@ function Invoke-NinjaOneTenantSync { Remove-AzDataTableEntity -Force @UsersUpdateTable -Entity $NinjaUserUpdates } } catch { - Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne user document update failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaUserUpdates | Measure-Object).count) user(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } ### Relationship Mapping @@ -1483,7 +1482,8 @@ function Invoke-NinjaOneTenantSync { [System.Collections.Generic.List[PSCustomObject]]$CreatedLicenses = (Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/documents" -Method POST -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaLicenseCreation | ConvertTo-Json -Depth 100 -AsArray) -EA Stop).content | ConvertFrom-Json -Depth 100 } } catch { - Write-Information "Bulk Creation Error, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne license document creation failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaLicenseCreation | Measure-Object).count) license(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } try { @@ -1494,7 +1494,8 @@ function Invoke-NinjaOneTenantSync { Write-Information 'Completed Update' } } catch { - Write-Information "Bulk Update Errored, but may have been successful as only 1 record with an issue could have been the cause: $_" + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -tenant $Customer.defaultDomainName -API 'NinjaOneSync' -message "NinjaOne license document update failed for $($Customer.displayName). NinjaOne rejects the whole batch if any single document is invalid, so all $(($NinjaLicenseUpdates | Measure-Object).count) license(s) in this batch were not written: $($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage } [System.Collections.Generic.List[PSCustomObject]]$LicenseDocs = $CreatedLicenses + $UpdatedLicenses @@ -1551,6 +1552,16 @@ function Invoke-NinjaOneTenantSync { ### M365 Links Section if ($MappedFields.TenantLinks) { + try { + $SharePointAdminUrl = (Get-SharePointAdminLink -TenantFilter $TenantFilter).AdminUrl + } catch { + $SharePointTenantName = ($Customer.initialDomainName -split '\.')[0] + if ($SharePointTenantName) { + Write-Information "NinjaOneSync: Get-SharePointAdminLink failed for $($Customer.defaultDomainName), using fallback SharePoint admin URL '$SharePointAdminUrl'. Error: $($_.Exception.Message)" + $SharePointAdminUrl = "https://$SharePointTenantName-admin.sharepoint.com" + } + } + $ManagementLinksData = @( @{ Name = 'M365 Admin Portal' @@ -1574,7 +1585,7 @@ function Invoke-NinjaOneTenantSync { }, @{ Name = 'SharePoint Admin' - Link = "https://admin.microsoft.com/Partner/beginclientsession.aspx?CTID=$($Customer.customerId)&CSDEST=SharePoint" + Link = $SharePointAdminUrl ?? "https://$($Customer.defaultDomainName)-admin.sharepoint.com" Icon = 'fas fa-shapes' }, @{ @@ -1846,6 +1857,10 @@ function Invoke-NinjaOneTenantSync { ### CIPP Applied Standards Cards + $ModuleBase = Get-Module CIPPExtensions | Select-Object -ExpandProperty ModuleBase + $CIPPRoot = (Get-Item $ModuleBase).Parent.Parent.FullName + Set-Location $CIPPRoot + try { $StandardsDefinitions = Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/KelvinTegelaar/CIPP/refs/heads/main/src/data/standards.json' $AppliedStandards = Get-CIPPStandards -TenantFilter $Customer.defaultDomainName @@ -2175,6 +2190,95 @@ function Invoke-NinjaOneTenantSync { $Result = Invoke-WebRequest -Uri "https://$($Configuration.Instance)/api/v2/organization/$($MappedTenant.IntegrationId)/custom-fields" -Method PATCH -Headers @{Authorization = "Bearer $($token.access_token)" } -ContentType 'application/json; charset=utf-8' -Body ($NinjaOrgUpdate | ConvertTo-Json -Depth 100) + + # CVE Sync — runs as part of tenant sync if enabled + if ($Configuration.CveSyncEnabled -eq $true) { + try { + $ScanGroupPrefix = $Configuration.CveSyncPrefix ?? '' + $ScanGroupName = "$ScanGroupPrefix$TenantFilter" + $NinjaBaseUrl = "https://$($Configuration.Instance)/api/v2" + + $CveScanGroups = Invoke-RestMethod -Method Get -Uri "$NinjaBaseUrl/vulnerability/scan-groups" -Headers @{ Authorization = "Bearer $($Token.access_token)" } -TimeoutSec 30 -ErrorAction Stop + $ResolvedScanGroup = $CveScanGroups | Where-Object { $_.groupName -eq $ScanGroupName } + + if (-not $ResolvedScanGroup) { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync skipped — scan group '$ScanGroupName' not found" -sev 'Warning' + } else { + $ResolvedScanGroupId = $ResolvedScanGroup.id + $DeviceIdHeader = $ResolvedScanGroup.deviceIdHeader + $CveIdHeader = $ResolvedScanGroup.cveIdHeader + + $RawVulns = Get-CIPPDbItem -TenantFilter $TenantFilter -Type 'DefenderCVEs' | Where-Object { $_.RowKey -ne 'DefenderCVEs-Count' } + $AllVulns = $RawVulns.Data | ConvertFrom-Json + $CsvRows = [System.Collections.Generic.List[object]]::new() + + if (-not $AllVulns) { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message 'CVE sync — no vulnerability data returned' -sev 'Warning' + [void]$CsvRows.Add([PSCustomObject]@{ + $DeviceIdHeader = "" + $CveIdHeader = ""}) + } else { + $ExceptionsTable = Get-CIPPTable -TableName 'CveExceptions' + $AllExceptions = Get-CIPPAzDataTableEntity @ExceptionsTable + $ApplicableExceptions = $AllExceptions | Where-Object { $_.RowKey -eq $TenantFilter -or $_.RowKey -eq 'ALL' } + + if ($ApplicableExceptions) { + $ExceptedCveIds = $ApplicableExceptions | Select-Object -ExpandProperty cveId -Unique + $BeforeCount = $AllVulns.Count + $AllVulns = $AllVulns | Where-Object { $_.cveId -notin $ExceptedCveIds } + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync — filtered $($BeforeCount - $AllVulns.Count) excepted CVEs, $($AllVulns.Count) remaining" -sev 'Info' + } + + $SkippedCount = 0 + + foreach ($Item in $AllVulns) { + if ([string]::IsNullOrWhiteSpace($Item.cveId)) { + $SkippedCount++ + continue + } + if ($Item.deviceDetailsJson) { + $Devices = ConvertFrom-Json $Item.deviceDetailsJson | Sort-Object -Property deviceName -Unique + foreach ($Dev in $Devices) { + [void]$CsvRows.Add([PSCustomObject]@{ + $DeviceIdHeader = $Dev.deviceName.Trim() + $CveIdHeader = $Item.cveId.Trim() + }) + } + } + } + + if ($SkippedCount -gt 0) { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync — skipped $SkippedCount rows (missing deviceName or cveId)" -sev 'Warning' + } + } + $CsvBytes = New-VulnCsvBytes -Rows $CsvRows -Headers @($DeviceIdHeader, $CveIdHeader) + + if ($CsvBytes -and $CsvBytes.Length -gt 0) { + $UploadUri = "$NinjaBaseUrl/vulnerability/scan-groups/$ResolvedScanGroupId/upload" + $PollUri = "$NinjaBaseUrl/vulnerability/scan-groups/$ResolvedScanGroupId" + $CveResp = Invoke-NinjaOneVulnCsvUpload -Uri $UploadUri -PollUri $PollUri -CsvBytes $CsvBytes -Headers @{ Authorization = "Bearer $($Token.access_token)" } + + $FinalStatus = $CveResp.status ?? 'unknown' + $ProcessedCount = $CveResp.recordsProcessed ?? '?' + + if ($FinalStatus -eq 'COMPLETE') { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync complete — $($CsvRows.Count) CVEs sent to '$ScanGroupName', $ProcessedCount processed" -sev 'Info' + } elseif ($FinalStatus -eq 'IN_PROGRESS') { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync upload accepted — $($CsvRows.Count) CVEs sent to '$ScanGroupName', still processing (timed out polling)" -sev 'Warning' + } else { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync finished with status '$FinalStatus' for '$ScanGroupName', $ProcessedCount processed" -sev 'Warning' + } + } else { + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message 'CVE sync — failed to generate CSV bytes' -sev 'Warning' + } + } + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'NinjaOneSync' -tenant $TenantFilter -message "CVE sync failed: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + # Do not rethrow — CVE sync failure should not fail the whole tenant sync + } + } + Write-Information 'Cleaning Users Cache' if (($ParsedUsers | Measure-Object).count -gt 0) { Remove-AzDataTableEntity -Force @UsersTable -Entity ($ParsedUsers | Select-Object PartitionKey, RowKey) diff --git a/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneVulnCsvUpload.ps1 b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneVulnCsvUpload.ps1 new file mode 100644 index 0000000000000..f6c65c9788d67 --- /dev/null +++ b/Modules/CippExtensions/Public/NinjaOne/Invoke-NinjaOneVulnCsvUpload.ps1 @@ -0,0 +1,126 @@ +function Invoke-NinjaOneVulnCsvUpload { + <# + .SYNOPSIS + Upload CVE CSV to NinjaOne vulnerability scan group via multipart POST, + then poll until processing completes. Retries the full upload+poll cycle + on transient failures or a FAILED processing status. + .PARAMETER Uri + Full NinjaOne API upload URI including scan group ID. + .PARAMETER PollUri + NinjaOne API URI for the scan group (GET) used to poll processing status. + .PARAMETER CsvBytes + UTF-8 encoded CSV payload as a byte array. + .PARAMETER Headers + Hashtable of HTTP headers including Authorization bearer token. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][string]$Uri, + [Parameter(Mandatory)][string]$PollUri, + [Parameter(Mandatory)][byte[]]$CsvBytes, + [Parameter(Mandatory)][hashtable]$Headers + ) + + $Boundary = [System.Guid]::NewGuid().ToString() + $LF = "`r`n" + $MaxRetries = 5 + $RetryDelay = 5 + $PollDelay = 10 + $MaxPolls = 18 + $Attempt = 0 + + $BodyLines = @( + "--$Boundary" + 'Content-Disposition: form-data; name="csv"; filename="cve.csv"' + 'Content-Type: text/csv' + '' + ) + + $HeaderText = $BodyLines -join $LF + $HeaderBytes = [System.Text.Encoding]::UTF8.GetBytes($HeaderText + $LF) + + $TrailerText = "$LF--$Boundary--$LF" + $TrailerBytes = [System.Text.Encoding]::UTF8.GetBytes($TrailerText) + + while ($Attempt -le $MaxRetries) { + $Mem = [System.IO.MemoryStream]::new() + try { + $Mem.Write($HeaderBytes, 0, $HeaderBytes.Length) + $Mem.Write($CsvBytes, 0, $CsvBytes.Length) + $Mem.Write($TrailerBytes, 0, $TrailerBytes.Length) + $Mem.Position = 0 + + if ($Attempt -eq 0) { + Write-LogMessage -API 'NinjaOne' -message "Uploading CVE CSV to NinjaOne ($($CsvBytes.Length) bytes)" -sev 'Debug' + } else { + Write-LogMessage -API 'NinjaOne' -message "Retrying CVE CSV upload (attempt $Attempt of $MaxRetries)" -sev 'Warning' + } + + $Resp = Invoke-RestMethod -Method POST -Uri $Uri ` + -Headers $Headers ` + -ContentType "multipart/form-data; boundary=$Boundary" ` + -Body $Mem ` + -ErrorAction Stop + + } catch { + $ErrorMessage = Get-CippException -Exception $_ + + # Do not retry on 404 — scan group not found is a config issue, not transient + if ($_.Exception.Response.StatusCode.value__ -eq 404) { + Write-LogMessage -API 'NinjaOne' -message "CSV upload failed (404 — scan group not found, not retrying): $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw + } + + if ($Attempt -lt $MaxRetries) { + Write-LogMessage -API 'NinjaOne' -message "CSV upload failed (attempt $Attempt of $MaxRetries), retrying in ${RetryDelay}s: $($ErrorMessage.NormalizedError)" -sev 'Warning' -LogData $ErrorMessage + Start-Sleep -Seconds $RetryDelay + $Attempt++ + continue + } else { + Write-LogMessage -API 'NinjaOne' -message "CSV upload failed after $MaxRetries retries: $($ErrorMessage.NormalizedError)" -sev 'Error' -LogData $ErrorMessage + throw + } + } finally { + $Mem.Dispose() + } + + # Upload accepted — poll until no longer IN_PROGRESS + if ($Resp.status -eq 'IN_PROGRESS') { + Write-LogMessage -API 'NinjaOne' -message "Upload accepted, polling for completion (max $($MaxPolls * $PollDelay)s)" -sev 'Debug' + + $PollCount = 0 + while ($Resp.status -eq 'IN_PROGRESS' -and $PollCount -lt $MaxPolls) { + Start-Sleep -Seconds $PollDelay + $PollCount++ + try { + $Resp = Invoke-RestMethod -Method Get -Uri $PollUri -Headers $Headers -ErrorAction Stop + } catch { + $ErrorMessage = Get-CippException -Exception $_ + Write-LogMessage -API 'NinjaOne' -message "Poll failed on attempt $PollCount — will retry: $($ErrorMessage.NormalizedError)" -sev 'Warning' -LogData $ErrorMessage + } + } + + if ($Resp.status -eq 'IN_PROGRESS') { + # Timed out waiting — upload succeeded but processing is still running + Write-LogMessage -API 'NinjaOne' -message "Polling timed out after $($MaxPolls * $PollDelay)s — upload accepted by NinjaOne but processing status unknown" -sev 'Warning' + return $Resp + } + } + + # FAILED status — treat as retryable + if ($Resp.status -eq 'FAILED') { + if ($Attempt -lt $MaxRetries) { + Write-LogMessage -API 'NinjaOne' -message "NinjaOne returned FAILED status (attempt $Attempt of $MaxRetries), retrying in ${RetryDelay}s" -sev 'Warning' + Start-Sleep -Seconds $RetryDelay + $Attempt++ + continue + } else { + Write-LogMessage -API 'NinjaOne' -message "NinjaOne returned FAILED status after $MaxRetries retries — giving up" -sev 'Error' + return $Resp + } + } + + # COMPLETE or any other terminal status — return + return $Resp + } +} diff --git a/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 b/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 index 470220016842b..feff03bc7a207 100644 --- a/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 +++ b/Modules/CippExtensions/Public/NinjaOne/Push-NinjaOneQueue.ps1 @@ -7,9 +7,9 @@ function Push-NinjaOneQueue { Switch ($Item.NinjaAction) { 'StartAutoMapping' { Invoke-NinjaOneOrgMapping } - 'AutoMapTenant' { Invoke-NinjaOneOrgMappingTenant -QueueItem $Item } - 'SyncTenant' { Invoke-NinjaOneTenantSync -QueueItem $Item } - 'SyncTenants' { Invoke-NinjaOneSync } + 'AutoMapTenant' { Invoke-NinjaOneOrgMappingTenant -QueueItem $Item } + 'SyncTenant' { Invoke-NinjaOneTenantSync -QueueItem $Item } + 'SyncTenants' { Invoke-NinjaOneSync } } return $true } diff --git a/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebMigration.ps1 b/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebMigration.ps1 index be26e9d260c7e..89c3d749d3175 100644 --- a/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebMigration.ps1 +++ b/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebMigration.ps1 @@ -8,6 +8,11 @@ function Invoke-SherwebMigration { $ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json $Config = $ExtensionConfig.Sherweb + if ($Config.Enabled -ne $true) { + Write-Information "Sherweb extension is disabled, skipping migration check for $TenantFilter" + return + } + # Get licenses within the transfer window (renewing within 7 days) $Licenses = Get-CIPPLicenseOverview -TenantFilter $TenantFilter | Where-Object { $null -ne $_.TermInfo -and ($_.TermInfo | Where-Object { $_.DaysUntilRenew -le 7 -and $_.DaysUntilRenew -ge 0 }) diff --git a/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebScheduledLicenseRemoval.ps1 b/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebScheduledLicenseRemoval.ps1 new file mode 100644 index 0000000000000..a0d8a81f1fc0c --- /dev/null +++ b/Modules/CippExtensions/Public/Sherweb/Invoke-SherwebScheduledLicenseRemoval.ps1 @@ -0,0 +1,89 @@ +function Invoke-SherwebScheduledLicenseRemoval { + <# + .SYNOPSIS + Decreases a Sherweb subscription quantity, but only when unassigned licenses are available. + + .DESCRIPTION + Designed to run as a scheduled task shortly before a subscription's renewal date (inside + the cancellation window). Checks the actual license assignment state in the tenant first: + the Sherweb product is matched to its Microsoft 365 SKU by product name via the cached + license overview, and live assignment counts come from Graph subscribedSkus. The decrease + only executes when at least the requested number of licenses is unassigned; otherwise the + task completes with a skip message and changes nothing. + + .PARAMETER TenantFilter + The tenant the subscription belongs to. Supplied by the scheduler. + + .PARAMETER SKU + The Sherweb subscription SKU to decrease. + + .PARAMETER Remove + The number of licenses to remove. Defaults to 1. + + .PARAMETER Headers + Optional headers for logging context. Supplied by the scheduler. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$TenantFilter, + + [Parameter(Mandatory = $true)] + [string]$SKU, + + [int]$Remove = 1, + + $Headers + ) + + try { + $Subscription = Get-SherwebCurrentSubscription -TenantFilter $TenantFilter -SKU $SKU | Select-Object -First 1 + if (-not $Subscription) { + $Result = "Scheduled license decrease skipped: no Sherweb subscription with SKU '$SKU' exists anymore for $TenantFilter." + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Warning + return $Result + } + $ProductName = $Subscription.productName + + # Match the Sherweb product to its Microsoft 365 SKU by display name via the cached + # license overview. If the product cannot be matched unambiguously, do nothing - a + # wrong-SKU decrease is worse than a skipped one. + $LicenseOverview = @(New-CIPPDbRequest -TenantFilter $TenantFilter -Type 'LicenseOverview') + $Matched = @($LicenseOverview | Where-Object { $_.License -eq $ProductName }) + if ($Matched.Count -eq 0) { + $Matched = @($LicenseOverview | Where-Object { $_.License -and ($_.License -like "*$ProductName*" -or $ProductName -like "*$($_.License)*") }) + } + if ($Matched.Count -ne 1) { + $Result = "Scheduled license decrease skipped for '$ProductName' ($SKU): could not unambiguously match the product to a Microsoft 365 SKU (found $($Matched.Count) matches in the license overview), so the unassigned license check cannot be performed. No changes were made." + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Warning + return $Result + } + $SkuId = $Matched[0].skuId + + # Live assignment state - the decrease must only happen when licenses are actually free + $SubscribedSkus = New-GraphGetRequest -uri 'https://graph.microsoft.com/beta/subscribedSkus' -tenantid $TenantFilter + $GraphSku = $SubscribedSkus | Where-Object { $_.skuId -eq $SkuId } | Select-Object -First 1 + if (-not $GraphSku) { + $Result = "Scheduled license decrease skipped for '$ProductName' ($SKU): the matched SKU $SkuId was not found in the tenant's subscribed SKUs. No changes were made." + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Warning + return $Result + } + + $Unassigned = [int]$GraphSku.prepaidUnits.enabled - [int]$GraphSku.consumedUnits + if ($Unassigned -lt $Remove) { + $Result = "Scheduled license decrease skipped for '$ProductName' ($SKU): $Remove license(s) should be removed but only $Unassigned are unassigned ($($GraphSku.consumedUnits) of $($GraphSku.prepaidUnits.enabled) assigned). No changes were made." + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Info + return $Result + } + + $null = Set-SherwebSubscription -TenantFilter $TenantFilter -SKU $SKU -Remove $Remove + $Result = "Decreased Sherweb subscription '$ProductName' ($SKU) by $Remove license(s) to $($Subscription.quantity - $Remove). $Unassigned license(s) were unassigned at execution time." + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Info + return $Result + } catch { + $ErrorMessage = Get-CippException -Exception $_ + $Result = "Scheduled license decrease failed for SKU '$SKU': $($ErrorMessage.NormalizedError)" + Write-LogMessage -API 'Scheduler_Sherweb' -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage + throw $Result + } +} diff --git a/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 b/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 index b24e173dd4881..83bcd58aec88c 100644 --- a/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 +++ b/Modules/CippExtensions/Public/Sherweb/Remove-SherwebSubscription.ps1 @@ -15,18 +15,28 @@ function Remove-SherwebSubscription { $Config = $ExtensionConfig.Sherweb $AllowedRoles = $Config.AllowedCustomRoles.value - if ($AllowedRoles -and $Headers.'x-ms-client-principal') { - $UserRoles = Get-CIPPAccessRole -Headers $Headers + if ($AllowedRoles) { + # Resolve caller roles for both interactive users and direct API clients, + # mirroring the principal detection Test-CIPPAccess/Test-CippApiClientRoleGrant use. + if ($Headers.'x-ms-client-principal-idp' -eq 'aad' -and $Headers.'x-ms-client-principal-name' -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { + $Client = Get-CippApiClient -AppId $Headers.'x-ms-client-principal-name' + $CallerRoles = if ($Client.Role) { @($Client.Role) } else { @('cipp-api') } + } elseif ($Headers.'x-ms-client-principal') { + $CallerRoles = @(Get-CIPPAccessRole -Headers $Headers) + } else { + $CallerRoles = @() + } + $Allowed = $false - foreach ($Role in $UserRoles) { + foreach ($Role in $CallerRoles) { if ($AllowedRoles -contains $Role) { - Write-Information "User has allowed CIPP role: $Role" + Write-Information "Caller has allowed CIPP role: $Role" $Allowed = $true break } } if (-not $Allowed) { - throw 'This user is not allowed to modify Sherweb Licenses.' + throw 'This caller is not allowed to modify Sherweb Licenses.' } } } diff --git a/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 b/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 index 62a2c5ccf2ffa..b2a6766bd8354 100644 --- a/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 +++ b/Modules/CippExtensions/Public/Sherweb/Set-SherwebSubscription.ps1 @@ -18,18 +18,28 @@ function Set-SherwebSubscription { $Config = $ExtensionConfig.Sherweb $AllowedRoles = $Config.AllowedCustomRoles.value - if ($AllowedRoles -and $Headers.'x-ms-client-principal') { - $UserRoles = Get-CIPPAccessRole -Headers $Headers + if ($AllowedRoles) { + # Resolve caller roles for both interactive users and direct API clients, + # mirroring the principal detection Test-CIPPAccess/Test-CippApiClientRoleGrant use. + if ($Headers.'x-ms-client-principal-idp' -eq 'aad' -and $Headers.'x-ms-client-principal-name' -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') { + $Client = Get-CippApiClient -AppId $Headers.'x-ms-client-principal-name' + $CallerRoles = if ($Client.Role) { @($Client.Role) } else { @('cipp-api') } + } elseif ($Headers.'x-ms-client-principal') { + $CallerRoles = @(Get-CIPPAccessRole -Headers $Headers) + } else { + $CallerRoles = @() + } + $Allowed = $false - foreach ($Role in $UserRoles) { + foreach ($Role in $CallerRoles) { if ($AllowedRoles -contains $Role) { - Write-Information "User has allowed CIPP role: $Role" + Write-Information "Caller has allowed CIPP role: $Role" $Allowed = $true break } } if (-not $Allowed) { - throw 'This user is not allowed to modify Sherweb subscriptions.' + throw 'This caller is not allowed to modify Sherweb subscriptions.' } } } diff --git a/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml deleted file mode 100644 index d2ff920950f67..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/GetTeamSettings.format.ps1xml +++ /dev/null @@ -1,274 +0,0 @@ - - - - TeamSettings - - Microsoft.Teams.PowerShell.TeamsCmdlets.Model.TeamSettings - - - - - 36 - - - 18 - - - 11 - - - 9 - - - 18 - - - 18 - - - - - - - GroupId - - - DisplayName - - - Visibility - - - Archived - - - MailNickName - - - Description - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/LICENSE.txt b/Modules/MicrosoftTeams/7.4.0/LICENSE.txt deleted file mode 100644 index 8b9ecf6f57348..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/LICENSE.txt +++ /dev/null @@ -1,76 +0,0 @@ -Your use of the Microsoft Teams PowerShell is subject to the terms and conditions of the agreement you agreed to when you signed up for the Microsoft Teams subscription and by which you acquired a license for the software. For instance, if you are: - -• a volume license customer, use of this software is subject to your volume license agreement. -• a Microsoft Online Subscription customer, use of this software is subject to the Microsoft Online Subscription agreement. - -You may not use the service or software if you have not validly acquired a license from Microsoft or its licensed distributors. - -----------------START OF THIRD PARTY NOTICE-------------------------------- -The software includes the Polly library ("Polly"). The New BSD License set out below is provided for informational purposes only. It is not the license that governs any part of the software. - -Copyright (c) 2015-2020, App vNext -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of App vNext nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----END OF LICENSE--------- - -The software includes the Polly.Contrib.WaitAndRetry library ("Polly-Contrib"). The New BSD License set out below is provided for informational purposes only. It is not the license that governs any part of the software. - -Copyright (c) 2015-2020, App vNext and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of App vNext nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----END OF LICENSE--------- - -The software includes Newtonsoft.Json. The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. - -Newtonsoft.Json - -The MIT License (MIT) -Copyright (c) 2007 James Newton-King -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----END OF LICENSE--------- - --------------END OF THIRD PARTY NOTICE---------------------------------------- \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml deleted file mode 100644 index a44cdaf81c638..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml deleted file mode 100644 index 4c0e60bf87d46..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml +++ /dev/null @@ -1,17351 +0,0 @@ - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.XdsConfiguration - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.XdsConfiguration - - - - - - - - - - - - - - - Identity - - - BeforeJson - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BridgeId - - - City - - - IsShared - - - Number - - - PrimaryLanguage - - - SecondaryLanguages - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedPlan - - - - - - - - - - - - - - - - - - - - - AssignedDateTime - - - CapabilityStatus - - - Service - - - ServicePlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedPlan1 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedPlan1 - - - - - - - - - - - - - - - - - - - - - - - - - - - AssignedTimestamp - - - Capability - - - CapabilityStatus - - - ServiceInstance - - - ServicePlanId - - - SubscribedPlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LoginPwd - - - LoginUserName - - - Type - - - AdminApiUrl - - - CookieAuthUrl - - - EssApiUrl - - - FederatedAuthUrl - - - RetailWebApiUrl - - - SiteManagerUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LoginPwd - - - LoginUserName - - - Type - - - ApiUrl - - - AppKey - - - ClientId - - - ClientSecret - - - SsoUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponseReferenceLinks - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponseReferenceLinks - - - - - - - - - - - - Item - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAssignedPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAssignedPlan - - - - - - - - - - - - - - - - - - - - - - - - - - - AssignedTimestamp - - - Capability - - - CapabilityStatus - - - ServiceInstance - - - ServicePlanId - - - SubscribedPlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedTelephoneNumber - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedTelephoneNumber - - - - - - - - - - - - - - - AssignmentCategory - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicyAssignment - - - - - - - - - - - - PolicyType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Number - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Number - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActivationState - - - BridgeNumber - - - CallingProfile - - - CityCode - - - CivicAddressId - - - DisplayNumber - - - InventoryType - - - IsManagedByServiceDesk - - - LocationId - - - O365Region - - - PortInOrderStatus - - - SourceType - - - TargetType - - - TenantId - - - UserId - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProvisionedPlan - - - - - - - - - - - - - - - - - - CapabilityStatus - - - ProvisioningStatus - - - Service - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAssignedPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAssignedPlan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AssignedTimestamp - - - Capability - - - CapabilityStatus - - - GracePeriodExpiryDate - - - IsInGracePeriod - - - ServiceInstance - - - ServicePlanId - - - SubscribedPlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserPolicyDefinition - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserPolicyDefinition - - - - - - - - - - - - - - - Authority - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserProvisionedPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserProvisionedPlan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AssignedTimestamp - - - Capability - - - CapabilityStatus - - - ProvisionedTimestamp - - - ProvisioningStatus - - - ServiceInstance - - - ServicePlanId - - - SubscribedPlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserValidationError - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserValidationError - - - - - - - - - - - - - - - ErrorCode - - - ErrorDescription - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedLicense - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadAssignedLicense - - - - - - - - - - - - - - - DisabledPlan - - - SkuId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionedPlans - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionedPlans - - - - - - - - - - - - - - - - - - CapabilityStatus - - - ProvisioningStatus - - - Service - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionErrors - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadProvisionErrors - - - - - - - - - - - - - - - - - - - - - ErrorDetail - - - Resolved - - - Service - - - Timestamp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadUserAssignedPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadUserAssignedPlan - - - - - - - - - - - - - - - - - - - - - AssignedTimestamp - - - CapabilityStatus - - - Service - - - ServicePlanId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadVerifiedDomains - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AadVerifiedDomains - - - - - - - - - - - - - - - Name - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Agent - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Agent - - - - - - - - - - - - - - - ObjectId - - - OptIn - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItem - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItem - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - Message - - - Target - - - TimeStampUtc - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - Message - - - Target - - - TimeStampUtc - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated2 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemAutoGenerated2 - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - Message - - - Target - - - TimeStampUtc - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemObject - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApiErrorItemObject - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - Message - - - Target - - - TimeStampUtc - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AppAccessRequestConfig - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AppAccessRequestConfig - - - - - - - - - - - - - - - AdminInstructionMessage - - - ApprovalPortalUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationEndpointRoutingDetails - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationEndpointRoutingDetails - - - - - - - - - - - - - - - - - - ApplicationEndpointId - - - ApplicationId - - - CallbackUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance - - - - - - - - - - - - - - - - - - Id - - - Name - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAssociation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAssociation - - - - - - - - - - - - - - - - - - - - - ApplicationConfigurationType - - - CallPriority - - - ConfigurationId - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAutoGenerated - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceAutoGenerated - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AcsResourceId - - - ApplicationId - - - DisplayName - - - ObjectId - - - PhoneNumber - - - TenantId - - - UserPrincipalName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceCreateRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceCreateRequest - - - - - - - - - - - - - - - - - - ApplicationId - - - DisplayName - - - UserPrincipalName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceSearchResults - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceSearchResults - - - - - - - - - - - - SkipToken - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceUpdateRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstanceUpdateRequest - - - - - - - - - - - - - - - - - - - - - AcsResourceId - - - ApplicationId - - - DisplayName - - - OnpremPhoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationObject - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationObject - - - - - - - - - - - - - - - - - - - - - Context - - - Id - - - IsAppLevelAutoInstallEnabled - - - IsEnabled - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedLicense - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AssignedLicense - - - - - - - - - - - - - - - DisabledPlan - - - SkuId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFile - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFile - - - - - - - - - - - - - - - - - - DownloadUri - - - FileName - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFileDto - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AudioFileDto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApplicationId - - - GroupId - - - Id - - - Content - - - ContextId - - - ConvertedFilename - - - DeletionTimestampOffset - - - DownloadUri - - - DownloadUriExpiryTimestampOffset - - - Duration - - - LastAccessedTimestampOffset - - - OriginalFilename - - - UploadedTimestampOffset - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AutoAttendant - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AutoAttendant - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApplicationInstance - - - AuthorizedUser - - - DialByNameResourceId - - - HideAuthorizedUser - - - Id - - - LanguageId - - - MainlineAttendantAgentVoiceId - - - MainlineAttendantEnabled - - - Name - - - TenantId - - - TimeZoneId - - - UserNameExtension - - - VoiceId - - - VoiceResponseEnabled - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignBody - - - - - - - - - - - - Identity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignPayload - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchAssignPayload - - - - - - - - - - - - Identity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchJobStatus - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchJobStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OperationId - - - OperationName - - - OverallStatus - - - CreatedBy - - - CreatedTime - - - CompletedTime - - - CompletedCount - - - ErrorCount - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchOperationId - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BatchOperationId - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BeginMoveRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BeginMoveRequestBody - - - - - - - - - - - - - - - MajorVersion - - - UserSipUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest - - - - - - - - - - - - - - - - - - DefaultServiceNumber - - - Name - - - SetDefault - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearRequest - - - - - - - - - - - - - - - KeysToDelete - - - Region - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CacheClearResponse - - - - - - - - - - - - - - - FailedKeys - - - Region - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallableEntity - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallableEntity - - - - - - - - - - - - - - - - - - - - - - - - CallPriority - - - EnableSharedVoicemailSystemPromptSuppression - - - EnableTranscription - - - Id - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallFlow - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallFlow - - - - - - - - - - - - - - - - - - ForceListenMenuEnabled - - - Id - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupDetails - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupDetails - - - - - - - - - - - - - - - - - - Delay - - - Order - - - Target - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipDetails - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipDetails - - - - - - - - - - - - - - - CallGroupOwnerId - - - NotificationSetting - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallGroupMembershipSettings - - - - - - - - - - - - CallGroupNotificationOverride - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallHandlingAssociation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallHandlingAssociation - - - - - - - - - - - - - - - - - - - - - - - - CallFlowId - - - Enabled - - - Priority - - - ScheduleId - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueue - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AgentAlertTime - - - AgentsCapped - - - AgentsInSyncWithDistributionList - - - AllowOptOut - - - ApplicationInstance - - - AuthorizedUser - - - CallToAgentRatioThresholdBeforeOfferingCallback - - - CallbackOfferAudioFilePromptFileName - - - CallbackOfferAudioFilePromptResourceId - - - CallbackOfferTextToSpeechPrompt - - - CallbackRequestDtmf - - - ComplianceRecordingForCallQueueTemplateId - - - ConferenceMode - - - CustomAudioFileAnnouncementForCr - - - CustomAudioFileAnnouncementForCrFailure - - - Description - - - DistributionList - - - DistributionListsLastExpanded - - - EnableNoAgentSharedVoicemailSystemPromptSuppression - - - EnableNoAgentSharedVoicemailTranscription - - - EnableOverflowSharedVoicemailSystemPromptSuppression - - - EnableOverflowSharedVoicemailTranscription - - - EnableResourceAccountsForObo - - - EnableTimeoutSharedVoicemailSystemPromptSuppression - - - EnableTimeoutSharedVoicemailTranscription - - - HideAuthorizedUser - - - Identity - - - IsCallbackEnabled - - - LanguageId - - - MusicOnHoldFileDownloadUri - - - MusicOnHoldFileName - - - MusicOnHoldResourceId - - - Name - - - NoAgentAction - - - NoAgentActionCallPriority - - - NoAgentApplyTo - - - NoAgentDisconnectAudioFilePrompt - - - NoAgentDisconnectAudioFilePromptFileName - - - NoAgentDisconnectTextToSpeechPrompt - - - NoAgentRedirectPersonAudioFilePrompt - - - NoAgentRedirectPersonAudioFilePromptFileName - - - NoAgentRedirectPersonTextToSpeechPrompt - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - - NoAgentRedirectPhoneNumberAudioFilePromptFileName - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - - NoAgentRedirectVoiceAppAudioFilePrompt - - - NoAgentRedirectVoiceAppAudioFilePromptFileName - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - - NoAgentRedirectVoicemailAudioFilePrompt - - - NoAgentRedirectVoicemailAudioFilePromptFileName - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - - NoAgentSharedVoicemailAudioFilePrompt - - - NoAgentSharedVoicemailAudioFilePromptFileName - - - NoAgentSharedVoicemailTextToSpeechPrompt - - - NumberOfCallsInQueueBeforeOfferingCallback - - - OverflowAction - - - OverflowActionCallPriority - - - OverflowDisconnectAudioFilePrompt - - - OverflowDisconnectAudioFilePromptFileName - - - OverflowDisconnectTextToSpeechPrompt - - - OverflowRedirectPersonAudioFilePrompt - - - OverflowRedirectPersonAudioFilePromptFileName - - - OverflowRedirectPersonTextToSpeechPrompt - - - OverflowRedirectPhoneNumberAudioFilePrompt - - - OverflowRedirectPhoneNumberAudioFilePromptFileName - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - - OverflowRedirectVoiceAppAudioFilePrompt - - - OverflowRedirectVoiceAppAudioFilePromptFileName - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - - OverflowRedirectVoicemailAudioFilePrompt - - - OverflowRedirectVoicemailAudioFilePromptFileName - - - OverflowRedirectVoicemailTextToSpeechPrompt - - - OverflowSharedVoicemailAudioFilePrompt - - - OverflowSharedVoicemailAudioFilePromptFileName - - - OverflowSharedVoicemailTextToSpeechPrompt - - - OverflowThreshold - - - PresenceAwareRouting - - - RoutingMethod - - - ServiceLevelThresholdResponseTimeInSecond - - - SharedCallQueueHistoryTemplateId - - - ShiftsSchedulingGroupId - - - ShiftsTeamId - - - ShouldOverwriteCallableChannelProperty - - - TenantId - - - TextAnnouncementForCr - - - TextAnnouncementForCrFailure - - - ThreadId - - - TimeoutAction - - - TimeoutActionCallPriority - - - TimeoutDisconnectAudioFilePrompt - - - TimeoutDisconnectAudioFilePromptFileName - - - TimeoutDisconnectTextToSpeechPrompt - - - TimeoutRedirectPersonAudioFilePrompt - - - TimeoutRedirectPersonAudioFilePromptFileName - - - TimeoutRedirectPersonTextToSpeechPrompt - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - - TimeoutRedirectPhoneNumberAudioFilePromptFileName - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - - TimeoutRedirectVoiceAppAudioFilePrompt - - - TimeoutRedirectVoiceAppAudioFilePromptFileName - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - - TimeoutRedirectVoicemailAudioFilePrompt - - - TimeoutRedirectVoicemailAudioFilePromptFileName - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - - TimeoutSharedVoicemailAudioFilePrompt - - - TimeoutSharedVoicemailAudioFilePromptFileName - - - TimeoutSharedVoicemailTextToSpeechPrompt - - - TimeoutThreshold - - - UseDefaultMusicOnHold - - - User - - - WaitTimeBeforeOfferingCallbackInSecond - - - WelcomeMusicFileDownloadUri - - - WelcomeMusicFileName - - - WelcomeMusicResourceId - - - WelcomeTextToSpeechPrompt - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueueStatistic - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CallQueueStatistic - - - - - - - - - - - - - - - StatName - - - StatValue - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CancellationToken - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CancellationToken - - - - - - - - - - - - - - - CanBeCanceled - - - IsCancellationRequested - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTabTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTabTemplate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - Key - - - MessageId - - - Name - - - SortOrderIndex - - - TeamsAppId - - - WebUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ChannelTemplate - - - - - - - - - - - - - - - - - - - - - Description - - - DisplayName - - - Id - - - IsFavoriteByDefault - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CivicAddress - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CivicAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdditionalLocationInfo - - - City - - - CityAlias - - - CivicAddressId - - - CompanyName - - - CompanyTaxId - - - Confidence - - - CountryOrRegion - - - CountyOrDistrict - - - DefaultLocationId - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - Latitude - - - Longitude - - - NumberOfTelephoneNumbers - - - NumberOfVoiceUsers - - - PartnerId - - - PostDirectional - - - PostalCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - TenantId - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ClearScheduleRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ClearScheduleRequest - - - - - - - - - - - - - - - - - - - - - - - - ClearSchedulingGroup - - - DesignatedActorId - - - EntityType - - - TeamId - - - TimeZone - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudAudioConferencingProviderInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudAudioConferencingProviderInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Default - - - Domain - - - Name - - - ParticipantPassCode - - - TollFreeNumber - - - TollNumber - - - Url - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudCallDataConnection - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudCallDataConnection - - - - - - - - - - - - Token - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudMSRtcServiceAttributes - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CloudMSRtcServiceAttributes - - - - - - - - - - - - - - - - - - - - - ApplicationOption - - - DeploymentLocator - - - HideFromAddressList - - - OptionFlag - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompanyPartnership - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompanyPartnership - - - - - - - - - - - - - - - - - - - - - LoggingEnabled - - - PartnerContextId - - - PartnerType - - - SupportPartner - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompleteMoveRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CompleteMoveRequestBody - - - - - - - - - - - - - - - MajorVersion - - - UserSipUri - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingBridge - - - - - - - - - - - - - - - - - - - - - - - - Identity - - - IsDefault - - - IsShared - - - Name - - - Region - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowPstnOnlyMeeting - - - AllowTollFreeDialIn - - - BridgeId - - - BridgeName - - - ConferenceId - - - ObjectId - - - ServiceNumber - - - TollFreeServiceNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUser - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUser - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowPstnOnlyMeeting - - - AllowTollFreeDialIn - - - BridgeId - - - BridgeName - - - ConferenceId - - - DefaultTollFreeNumber - - - DefaultTollNumber - - - DisplayName - - - Identity - - - LeaderPin - - - ServiceNumber - - - SipAddress - - - TenantId - - - TollFreeServiceNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUserSearchResults - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingUserSearchResults - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigApiBasedCmdletsIdentity - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigApiBasedCmdletsIdentity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AppId - - - AudioFileId - - - Bssid - - - ChassisId - - - CivicAddressId - - - ConfigName - - - ConfigType - - - ConnectionId - - - ConnectorInstanceId - - - Country - - - DialedNumber - - - EndpointId - - - ErrorReportId - - - GroupId - - - Id - - - Identity - - - Locale - - - LocationId - - - MemberId - - - Name - - - ObjectId - - - OdataId - - - OperationId - - - OrchestrationId - - - OrderId - - - OwnerId - - - PackageName - - - PartitionKey - - - PolicyType - - - PublicTemplateLocale - - - Region - - - SubnetId - - - Table - - - TeamId - - - TelephoneNumber - - - TenantId - - - UserId - - - Version - - - WfmTeamId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigDefinition - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConfigDefinition - - - - - - - - - - - - - - - ConfigName - - - ConfigType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceBaseRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceBaseRequest - - - - - - - - - - - - - - - ConnectorId - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - ConnectionId - - - ConnectorAdminEmail - - - DesignatedActorId - - - Name - - - State - - - SyncFrequencyInMin - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorInstanceResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConnectionId - - - ConnectorAdminEmail - - - ConnectorId - - - CreatedDateTime - - - DesignatedActorId - - - Etag - - - Id - - - LastModifiedDateTime - - - Name - - - State - - - SyncFrequencyInMin - - - TenantId - - - WorkforceIntegrationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorResponse - - - - - - - - - - - - - - - - - - Id - - - Name - - - Version - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - AdminApiUrl - - - CookieAuthUrl - - - EssApiUrl - - - FederatedAuthUrl - - - RetailWebApiUrl - - - SiteManagerUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - - - - - - - - - - - - - - - - - LoginPwd - - - LoginUserName - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdminApiUrl - - - ApiUrl - - - AppKey - - - ClientId - - - CookieAuthUrl - - - EssApiUrl - - - FederatedAuthUrl - - - RetailWebApiUrl - - - SiteManagerUrl - - - SsoUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsResponse - - - - - - - - - - - - - - - - - - ApiUrl - - - ClientId - - - SsoUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectPowershellTelemetry - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectPowershellTelemetry - - - - - - - - - - - - - - - - - - - - - ConfigApiPowershellModuleVersion - - - MicrosoftTeamsPsVersion - - - SfBOnlineConnectorPsversion - - - TeamsModuleAuthTypeUsed - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateApplicationInstanceAssociationsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateApplicationInstanceAssociationsRequest - - - - - - - - - - - - - - - - - - - - - CallPriority - - - ConfigurationId - - - ConfigurationType - - - EndpointsId - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateAutoAttendantRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuthorizedUser - - - HideAuthorizedUser - - - LanguageId - - - MainlineAttendantAgentVoiceId - - - MainlineAttendantEnabled - - - Name - - - TimeZoneId - - - UserNameExtension - - - VoiceId - - - VoiceResponseEnabled - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallableEntityRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallableEntityRequest - - - - - - - - - - - - - - - - - - - - - - - - CallPriority - - - EnableSharedVoicemailSystemPromptSuppression - - - EnableTranscription - - - Id - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallFlowRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallFlowRequest - - - - - - - - - - - - - - - ForceListenMenuEnabled - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallHandlingAssociationRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallHandlingAssociationRequest - - - - - - - - - - - - - - - - - - - - - CallFlowId - - - Enabled - - - ScheduleId - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallQueueRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateCallQueueRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AgentAlertTime - - - AllowOptOut - - - AuthorizedUser - - - CallToAgentRatioThresholdBeforeOfferingCallback - - - CallbackEmailNotificationTarget - - - CallbackOfferAudioFilePromptResourceId - - - CallbackOfferTextToSpeechPrompt - - - CallbackRequestDtmf - - - ComplianceRecordingForCallQueueId - - - ConferenceMode - - - CustomAudioFileAnnouncementForCr - - - CustomAudioFileAnnouncementForCrFailure - - - DistributionList - - - EnableNoAgentSharedVoicemailSystemPromptSuppression - - - EnableNoAgentSharedVoicemailTranscription - - - EnableOverflowSharedVoicemailSystemPromptSuppression - - - EnableOverflowSharedVoicemailTranscription - - - EnableResourceAccountsForObo - - - EnableTimeoutSharedVoicemailSystemPromptSuppression - - - EnableTimeoutSharedVoicemailTranscription - - - HideAuthorizedUser - - - IsCallbackEnabled - - - LanguageId - - - MusicOnHoldAudioFileId - - - Name - - - NoAgentAction - - - NoAgentActionCallPriority - - - NoAgentActionTarget - - - NoAgentApplyTo - - - NoAgentDisconnectAudioFilePrompt - - - NoAgentDisconnectTextToSpeechPrompt - - - NoAgentRedirectPersonAudioFilePrompt - - - NoAgentRedirectPersonTextToSpeechPrompt - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - - NoAgentRedirectVoiceAppAudioFilePrompt - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - - NoAgentRedirectVoicemailAudioFilePrompt - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - - NoAgentSharedVoicemailAudioFilePrompt - - - NoAgentSharedVoicemailTextToSpeechPrompt - - - NumberOfCallsInQueueBeforeOfferingCallback - - - OboResourceAccountId - - - OverflowAction - - - OverflowActionCallPriority - - - OverflowActionTarget - - - OverflowDisconnectAudioFilePrompt - - - OverflowDisconnectTextToSpeechPrompt - - - OverflowRedirectPersonAudioFilePrompt - - - OverflowRedirectPersonTextToSpeechPrompt - - - OverflowRedirectPhoneNumberAudioFilePrompt - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - - OverflowRedirectVoiceAppAudioFilePrompt - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - - OverflowRedirectVoicemailAudioFilePrompt - - - OverflowRedirectVoicemailTextToSpeechPrompt - - - OverflowSharedVoicemailAudioFilePrompt - - - OverflowSharedVoicemailTextToSpeechPrompt - - - OverflowThreshold - - - PresenceAwareRouting - - - RoutingMethod - - - ServiceLevelThresholdResponseTimeInSecond - - - SharedCallQueueHistoryId - - - ShiftsSchedulingGroupId - - - ShiftsTeamId - - - ShouldOverwriteCallableChannelProperty - - - TextAnnouncementForCr - - - TextAnnouncementForCrFailure - - - ThreadId - - - TimeoutAction - - - TimeoutActionCallPriority - - - TimeoutActionTarget - - - TimeoutDisconnectAudioFilePrompt - - - TimeoutDisconnectTextToSpeechPrompt - - - TimeoutRedirectPersonAudioFilePrompt - - - TimeoutRedirectPersonTextToSpeechPrompt - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - - TimeoutRedirectVoiceAppAudioFilePrompt - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - - TimeoutRedirectVoicemailAudioFilePrompt - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - - TimeoutSharedVoicemailAudioFilePrompt - - - TimeoutSharedVoicemailTextToSpeechPrompt - - - TimeoutThreshold - - - UseDefaultMusicOnHold - - - User - - - WaitTimeBeforeOfferingCallbackInSecond - - - WelcomeMusicAudioFileId - - - WelcomeTextToSpeechPrompt - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateDateTimeRangeRequest - - - - - - - - - - - - - - - End - - - Start - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateGroupDialScopeRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateGroupDialScopeRequest - - - - - - - - - - - - GroupId - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuOptionRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Action - - - AgentTarget - - - AgentTargetTagTemplateId - - - AgentTargetType - - - Description - - - DtmfResponse - - - MainlineAttendantTarget - - - VoiceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateMenuRequest - - - - - - - - - - - - - - - - - - DialByNameEnabled - - - DirectorySearchMethod - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateOrUpdateRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateOrUpdateRequestBody - - - - - - - - - - - - - - - - - - - - - EnableLobbyBackgroundBranding - - - EnableLobbyLogoBranding - - - EnableMeetingBackgroundImage - - - EnableNdiAssuranceSlate - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreatePromptRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreatePromptRequest - - - - - - - - - - - - - - - ActiveType - - - TextToSpeechPrompt - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateScheduleRequest - - - - - - - - - - - - Name - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTeamFromTemplateResponse - - - - - - - - - - - - - - - - - - WorkflowId - - - GroupId - - - ThreadId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTimeRangeRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CreateTimeRangeRequest - - - - - - - - - - - - - - - End - - - Start - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CustomHandlerPayload - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.CustomHandlerPayload - - - - - - - - - - - - - - - HandlerFullyQualifiedName - - - Payload - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateRange - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateRange - - - - - - - - - - - - - - - EndDate - - - StartDate - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateTimeRange - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DateTimeRange - - - - - - - - - - - - - - - End - - - Start - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DefaultHttpErrorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DefaultHttpErrorResponse - - - - - - - - - - - - - - - Action - - - Code - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegateAllowedActions - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegateAllowedActions - - - - - - - - - - - - - - - - - - MakeCall - - - ManageSetting - - - ReceiveCall - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegationDetail - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DelegationDetail - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DeploymentInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DeploymentInfo - - - - - - - - - - - - - - - - - - - - - HostingProviderFqdn - - - MajorVersion - - - PresenceFqdn - - - RegistrarFqdn - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Details - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Details - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DiagnosticRecord - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DiagnosticRecord - - - - - - - - - - - - - - - Level - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Diagnostics - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Diagnostics - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CorrelationId - - - DebugContent - - - GenevaLogsUrl - - - Reason - - - SubCode - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanRulesTestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanRulesTestBody - - - - - - - - - - - - - - - - - - EffectiveTenantDialPlanName - - - Identity - - - TenantScopeOnly - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanTestResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialPlanTestResult - - - - - - - - - - - - - - - MatchingRule - - - TranslatedNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialScope - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DialScope - - - - - - - - - - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DictionaryOfString - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DictionaryOfString - - - - - - - - - - - - Item - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DsRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.DsRequestBody - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DeploymentName - - - IsValidationRequest - - - ObjectClass - - - ObjectId - - - ObjectIds - - - ReSyncOption - - - ScenariosToSuppress - - - ServiceInstance - - - SynchronizeTenantWithAllObject - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicy - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EffectivePolicy - - - - - - - - - - - - - - - - - - PolicyType - - - PolicyName - - - PolicySource - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerReturnType - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerReturnType - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Content - - - CorrelationId - - - Country - - - IsCurrent - - - IsDebug - - - Locale - - - OriginalUserAgent - - - TargetStore - - - TenantId - - - UserAgent - - - Version - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Content - - - CorrelationId - - - Country - - - Locale - - - RespondedByObjectId - - - Response - - - ResponseTimestamp - - - Version - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponseInput - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EmergencyDisclaimerUserResponseInput - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Content - - - Country - - - ForceAccept - - - Locale - - - RespondedByObjectId - - - Response - - - ResponseTimestamp - - - Version - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EntityProperty - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.EntityProperty - - - - - - - - - - - - - - - - - - Name - - - Type - - - Value - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorDetailsResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorDetailsResponse - - - - - - - - - - - - - - - - - - Code - - - Message - - - Target - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorObject - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorObject - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReport - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReport - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - CreatedAt - - - Culture - - - ErrorType - - - Id - - - IntermediateIncident - - - Message - - - Operation - - - Parameter - - - Procedure - - - ResolvedAt - - - RevisitIntervalInMinute - - - RevisitedAt - - - ScheduleSequenceNumber - - - Severity - - - TeamId - - - TenantId - - - TotalIncident - - - Ttl - - - WfmConnectorInstanceId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportCreate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportCreate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Message - - - Operation - - - Parameter - - - Procedure - - - ReferenceLink - - - RevisitInterval - - - TeamId - - - TenantId - - - Ttl - - - WfmConnectorInstanceId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportReferenceLinks - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportReferenceLinks - - - - - - - - - - - - Item - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorReportResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - ConnectionId - - - CreatedAt - - - Culture - - - ErrorNotificationSent - - - ErrorType - - - Id - - - IntermediateIncident - - - Message - - - Operation - - - Parameter - - - Procedure - - - ResolvedAt - - - ResolvedNotificationSentOn - - - RevisitIntervalInMinute - - - RevisitedAt - - - ScheduleSequenceNumber - - - Severity - - - TeamId - - - TenantId - - - TotalIncident - - - Ttl - - - WfmConnectorInstanceId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponse - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated3 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated3 - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated4 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated4 - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated5 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ErrorResponseAutoGenerated5 - - - - - - - - - - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ExportHolidaysResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ExportHolidaysResult - - - - - - - - - - - - SerializedHolidayRecord - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileContentDto - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileContentDto - - - - - - - - - - - - Content - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileItemTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FileItemTemplate - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - IsFolder - - - Name - - - PreviewUrl - - - Type - - - Url - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequest - - - - - - - - - - - - - - - DeploymentCsv - - - UsersToNotify - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequestResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.FlwoServiceModelsFlwosBatchRequestResponse - - - - - - - - - - - - - - - ExecutionId - - - InstanceId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ForwardingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ForwardingSettings - - - - - - - - - - - - - - - - - - - - - ForwardingType - - - IsEnabled - - - Target - - - TargetType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetApplicationInstanceAssociationResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetApplicationInstanceAssociationResponse - - - - - - - - - - - - - - - - - - - - - Id - - - ConfigurationType - - - ConfigurationId - - - CallPriority - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetCustomAppSettingResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetCustomAppSettingResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IsAppsEnabled - - - IsAppsPurchaseEnabled - - - IsExternalAppsEnabledByDefault - - - IsLicenseBasedPinnedAppsEnabled - - - IsSideloadedAppsInteractionEnabled - - - IsTenantWideAutoInstallEnabled - - - LobBackground - - - LobLogo - - - LobLogomark - - - LobTextColor - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetOperationResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetOperationResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CreatedDateTime - - - Id - - - LastActionDateTime - - - Status - - - TenantId - - - Type - - - WfmConnectorInstanceId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponse - - - - - - - - - - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseChannel - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseChannel - - - - - - - - - - - - - - - - - - - - - Index - - - Reference - - - Status - - - UpdateTimestamp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseItem - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GetTeamTemplateStatusResponseItem - - - - - - - - - - - - - - - - - - - - - Index - - - Reference - - - Status - - - UpdateTimestamp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GrantActionStatus - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GrantActionStatus - - - - - - - - - - - - - - - - - - Id - - - Result - - - State - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Group - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Group - - - - - - - - - - - - - - - DisplayName - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignment - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignment - - - - - - - - - - - - - - - - - - - - - - - - - - - GroupId - - - PolicyType - - - PolicyName - - - Priority - - - CreatedTime - - - CreatedBy - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignPayload - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupAssignPayload - - - - - - - - - - - - - - - PolicyName - - - Priority - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupDialScope - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupDialScope - - - - - - - - - - - - GroupId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupGrantPayload - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupGrantPayload - - - - - - - - - - - - - - - PolicyName - - - Priority - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupUpdatePayload - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.GroupUpdatePayload - - - - - - - - - - - - - - - PolicyName - - - Priority - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HolidayVisualizationRecord - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HolidayVisualizationRecord - - - - - - - - - - - - - - - Name - - - Year - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HybridTelephoneNumber - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.HybridTelephoneNumber - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - O365Region - - - SourceType - - - TargetType - - - TelephoneNumber - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportAutoAttendantHolidaysRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportAutoAttendantHolidaysRequest - - - - - - - - - - - - - - - - - - Id - - - SerializedHolidayRecord - - - TenantId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportHolidayStatus - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ImportHolidayStatus - - - - - - - - - - - - - - - - - - FailureReason - - - Name - - - Succeeded - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.InvitationTicket - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.InvitationTicket - - - - - - - - - - - - - - - Ticket - - - Type - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.KeyValuePairStringItem - - - - - - - - - - - - - - - Key - - - Value - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Language - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Language - - - - - - - - - - - - - - - - - - DisplayName - - - Id - - - VoiceResponseSupported - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LicenseAssignmentState - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LicenseAssignmentState - - - - - - - - - - - - - - - - - - - - - - - - AssignedByGroup - - - DisabledPlan - - - Error - - - SkuId - - - State - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyBackgroundBrandingModel - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyBackgroundBrandingModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BackgroundImage - - - Id - - - IsDefault - - - Name - - - Status - - - ValidateNewRequest - - - ValidateUpdateRequest - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyLogoBrandingModel - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LobbyLogoBrandingModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - IsDefault - - - LogoImage - - - Name - - - Status - - - ValidateNewRequest - - - ValidateUpdateRequest - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - City - - - CityAlias - - - CivicAddressId - - - CompanyName - - - CompanyTaxId - - - Confidence - - - CountryOrRegion - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - Latitude - - - Location - - - LocationId - - - Longitude - - - NumberOfTelephoneNumber - - - NumberOfVoiceUser - - - PostDirectional - - - PostalCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - TenantId - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationProperties - - - - - - - - - - - - - - - - - - - - - - - - Default - - - InitialDomain - - - Name - - - ServiceInstance - - - ServiceInstance1 - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationSchema - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.LocationSchema - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - City - - - CityAlias - - - CivicAddressId - - - CompanyName - - - CompanyTaxId - - - Confidence - - - CountryOrRegion - - - CountyOrDistrict - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - IsDefault - - - Latitude - - - Location - - - LocationId - - - Longitude - - - NumberOfTelephoneNumbers - - - NumberOfVoiceUsers - - - 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 - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MainlineAttendantQuestionAnswerFlow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApiAuthenticationType - - - ConfigurationId - - - Description - - - Identity - - - KnowledgeBase - - - Name - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasSchemaResultTypes - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasSchemaResultTypes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - IsTombstone - - - TenantId - - - UpdatedBy - - - UserId - - - Version - - - VersionCreatedTime - - - VersionObsoleteTime - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasTenantProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasTenantProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C - - - CompanyTag - - - DirSyncEnabled - - - DisabledDomain - - - DisplayName - - - L - - - PostalCode - - - PreferredLanguage - - - SchemaName - - - ServiceInstance - - - St - - - Street - - - TelephoneNumber - - - VerifiedDomain - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserAuthoredPropsProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserAuthoredPropsProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EffectiveDataRegion - - - HostingProvider - - - PartitioningScheme - - - RegistrarPool - - - SchemaName - - - SipAddress - - - SipAddressStatus - - - SipDomain - - - SipEnabled - - - SourceOfAuthority - - - UserCategory - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MasUserProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AccountEnabled - - - Department - - - DisplayName - - - GivenName - - - LastSyncTime - - - Mail - - - MailNickname - - - PreferredLanguage - - - ProxyAddress - - - SchemaName - - - ServiceInstance - - - Sn - - - StsRefreshTokensValidFrom - - - Title - - - UsageLocation - - - UserPrincipalName - - - UserType - - - WindowsLiveNetId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MediaFileDto - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MediaFileDto - - - - - - - - - - - - - - - - - - ApplicationId - - - GroupId - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingBackgroundImageModel - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingBackgroundImageModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - IsDefault - - - MeetingBackgroundImage - - - Name - - - Order - - - Status - - - ValidateNewRequest - - - ValidateUpdateRequest - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStateSummary - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStateSummary - - - - - - - - - - - - - - - State - - - UserCount - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CorrelationId - - - CreateDate - - - EnqueueReason - - - FailedMeeting - - - InvitesUpdate - - - LastMessage - - - MigrationType - - - ModifiedDate - - - RetryCount - - - State - - - SucceededMeeting - - - TotalMeeting - - - UserId - - - UserPrincipalName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusSummaryResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationStatusSummaryResponse - - - - - - - - - - - - MigrationType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationTransactionHistoryResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MeetingMigrationTransactionHistoryResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CorrelationId - - - FailedMeeting - - - InternalErrorMessage - - - InvitesUpdated - - - LastErrorMessage - - - ModifiedDate - - - Operation - - - State - - - SucceededMeeting - - - TotalMeeting - - - TriggerSource - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Menu - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Menu - - - - - - - - - - - - - - - - - - DialByNameEnabled - - - DirectorySearchMethod - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MenuOption - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MenuOption - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Action - - - AgentTarget - - - AgentTargetTagTemplateId - - - AgentTargetType - - - Description - - - DtmfResponse - - - MainlineAttendantTarget - - - VoiceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MigrationData - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.MigrationData - - - - - - - - - - - - Datastr - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NdiAssuranceSlateModel - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NdiAssuranceSlateModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Id - - - IsDefault - - - Name - - - NdiImage - - - Status - - - ValidateNewRequest - - - ValidateUpdateRequest - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewCivicAddress - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewCivicAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CityOrTown - - - CityOrTownAlias - - - CompanyId - - - CompanyName - - - Confidence - - - Country - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - Latitude - - - Longitude - - - PostDirectional - - - PostalOrZipCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewLocation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NewLocation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdditionalInfo - - - CityOrTown - - - CityOrTownAlias - - - CivicAddressId - - - CompanyId - - - CompanyName - - - Confidence - - - Country - - - CountyOrDistrict - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - IsDefault - - - Latitude - - - Longitude - - - PartnerId - - - PostDirectional - - - PostalOrZipCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - TenantId - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NormalizationRuleForTest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.NormalizationRuleForTest - - - - - - - - - - - - - - - - - - Name - - - Pattern - - - Translation - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OboResourceAccountInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OboResourceAccountInfo - - - - - - - - - - - - - - - - - - DisplayName - - - ObjectId - - - PhoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OnlineNumberAssignmentRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OnlineNumberAssignmentRequest - - - - - - - - - - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetail - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetail - - - - - - - - - - - - - - - Error - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetailProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResponseDetailProperties - - - - - - - - - - - - Item - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResult - - - - - - - - - - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResultAutoGenerated - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.OperationResultAutoGenerated - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupRequest - - - - - - - - - - - - - - - GroupId - - - PackageName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsApplyPackageGroupResponse - - - - - - - - - - - - ResponseMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsBatchPostPackageResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsBatchPostPackageResponse - - - - - - - - - - - - - - - OperationId - - - ResponseMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCreateCustomPackageRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCreateCustomPackageRequest - - - - - - - - - - - - - - - Description - - - PackageName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCustomPackageResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsCustomPackageResponse - - - - - - - - - - - - ResponseMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageRecommendation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageRecommendation - - - - - - - - - - - - - - - - - - Name - - - Description - - - RecommendationType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageSummary - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsFormattedPackageSummary - - - - - - - - - - - - - - - Name - - - Description - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPackageResponseBase - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPackageResponseBase - - - - - - - - - - - - ResponseMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageBatchRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageBatchRequest - - - - - - - - - - - - - - - PackageType - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponse - - - - - - - - - - - - ResponseMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponseFailedUserErrorMessages - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsPostPackageResponseFailedUserErrorMessages - - - - - - - - - - - - LegacyUser - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyRanking - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyRanking - - - - - - - - - - - - - - - PolicyType - - - Rank - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyTypeAndName - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsRequestsPolicyTypeAndName - - - - - - - - - - - - - - - PolicyName - - - PolicyType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsUpdateCustomPackageRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PackageServiceModelsUpdateCustomPackageRequest - - - - - - - - - - - - - - - Description - - - PackageName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementError - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementError - - - - - - - - - - - - - - - ErrorCode - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PartitionMovementRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BasePartitionKey - - - BatchSize - - - ContainerName - - - NumberOfDocument - - - PercentageOfPartition - - - SourcePartitionKey - - - TargetPartitionKey - - - Workload - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PasswordProfile - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PasswordProfile - - - - - - - - - - - - - - - - - - EnforceChangePasswordPolicy - - - ForceChangePasswordNextLogin - - - Password - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PolicyDefinition - - - - - - - - - - - - - - - PolicyName - - - PolicyType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortRequest - - - - - - - - - - - - - - - - - - - - - ChassisId - - - Description - - - LocationId - - - PortId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PortResponse - - - - - - - - - - - - - - - - - - - - - ChassisId - - - Description - - - LocationId - - - PortId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrivacyProfile - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrivacyProfile - - - - - - - - - - - - - - - ContactEmail - - - StatementUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProcessingException - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ProcessingException - - - - - - - - - - - - - - - - - - CorrelationId - - - ErrorId - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Prompt - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Prompt - - - - - - - - - - - - - - - ActiveType - - - TextToSpeechPrompt - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RehomeUserRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RehomeUserRequestBody - - - - - - - - - - - - - - - MoveToCloud - - - UserSipUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RemoveApplicationInstanceAssociationsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.RemoveApplicationInstanceAssociationsRequest - - - - - - - - - - - - EndpointsId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResourceStatusRecord - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResourceStatusRecord - - - - - - - - - - - - - - - - - - - - - - - - - - - AuxiliaryData - - - ErrorCode - - - Id - - - Message - - - Status - - - StatusTimestamp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResyncRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ResyncRequestBody - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IsValidationRequest - - - ObjectClass - - - ObjectId - - - ReSyncOption - - - ScenariosToSuppress - - - ServiceInstance - - - SynchronizeTenantWithAllObject - - - TenantId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SafeWaitHandle - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SafeWaitHandle - - - - - - - - - - - - - - - IsClosed - - - IsInvalid - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Schedule - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Schedule - - - - - - - - - - - - - - - - - - - - - AssociatedConfigurationId - - - Id - - - Name - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ScheduleRecurrenceRange - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ScheduleRecurrenceRange - - - - - - - - - - - - - - - - - - - - - End - - - NumberOfOccurrence - - - Start - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInBatchStatusItem - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInBatchStatusItem - - - - - - - - - - - - - - - - - - - - - Error - - - HardwareId - - - Status - - - UserName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem - - - - - - - - - - - - - - - HardwareId - - - UserName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestsSummaryResponseItem - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestsSummaryResponseItem - - - - - - - - - - - - - - - - - - - - - - - - - - - BatchId - - - BatchItemsCount - - - BatchStatus - - - Region - - - RequestTime - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestStatusResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestStatusResult - - - - - - - - - - - - - - - - - - - - - - - - BatchId - - - BatchStatus - - - Region - - - RequestTime - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInResponse - - - - - - - - - - - - - - - BatchId - - - BatchItemsCount - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingRequest - - - - - - - - - - - - - - - - - - - - - - - - HardwareId - - - IcmId - - - OceUserName - - - SdhRegion - - - TenantId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTaggingResponse - - - - - - - - - - - - - - - CorrelationId - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTransferResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgDeviceTransferResponse - - - - - - - - - - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgErrorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgErrorResponse - - - - - - - - - - - - - - - ErrorCode - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgUnauthorizedAccessErrorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgUnauthorizedAccessErrorResponse - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SelfServePasswordResetData - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SelfServePasswordResetData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AlternateAuthenticationPhoneRegisteredTime - - - AlternateEmailRegisteredTime - - - AuthenticationEmailRegisteredTime - - - AuthenticationPhoneRegisteredTime - - - DeferralCount - - - DeferredTime - - - LastRegisteredTime - - - MobilePhoneRegisteredTime - - - ReinforceAfterTime - - - SecurityAnswersRegisteredTime - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceAttributesPropertiesPublishedAttributesSfbServiceAttributes - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceAttributesPropertiesPublishedAttributesSfbServiceAttributes - - - - - - - - - - - - - - - - - - - - - ApplicationOption - - - DeploymentLocator - - - HideFromAddressList - - - OptionFlag - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceInfoDetail - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceInfoDetail - - - - - - - - - - - - - - - - - - - - - BusinessVoiceDirectoryUrl - - - HostingProvider - - - ServiceInstance - - - TenantMajorRegistrarPool - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest - - - - - - - - - - - - - - - - - - PrimaryLanguage - - - RestoreDefaultLanguage - - - SecondaryLanguage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetCivicAddress - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetCivicAddress - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CityAlias - - - CityOrTown - - - CompanyName - - - CompanyTaxId - - - Confidence - - - Country - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - Id - - - Latitude - - - Longitude - - - PostDirectional - - - PostalOrZipCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetLocation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetLocation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AdditionalInfo - - - CityOrTown - - - CityOrTownAlias - - - CivicAddressId - - - CompanyId - - - CompanyName - - - Confidence - - - Country - - - CountyOrDistrict - - - Description - - - Elin - - - HouseNumber - - - HouseNumberSuffix - - - Id - - - IsDefault - - - Latitude - - - Longitude - - - NumberOfTelephoneNumber - - - NumberOfVoiceUser - - - PartnerId - - - PostDirectional - - - PostalOrZipCode - - - PreDirectional - - - StateOrProvince - - - StreetName - - - StreetSuffix - - - TenantId - - - ValidationStatus - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetMovedResourceDataRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SetMovedResourceDataRequestBody - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - AnsweredAndOutboundCall - - - Description - - - Id - - - IncomingMissedCall - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SimpleBatchJobStatus - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SimpleBatchJobStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OperationId - - - OperationName - - - OverallStatus - - - CreatedBy - - - CreatedTime - - - CompletedTime - - - CompletedCount - - - ErrorCount - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantTenantRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantTenantRequest - - - - - - - - - - - - - - - ForceSwitchPresent - - - PolicyName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantUserRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SingleGrantUserRequest - - - - - - - - - - - - PolicyName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtAvailabilityInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtAvailabilityInfo - - - - - - - - - - - - - - - - - - - - - - - - Acquired - - - Allowed - - - MaximumSearchSize - - - Reason - - - SearchAvailability - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ActivationState - - - AssignedPstnTargetId - - - AssignmentCategory - - - Capability - - - City - - - CivicAddressId - - - IsoCountryCode - - - IsoSubdivision - - - LocationId - - - LocationUpdateSupported - - - NetworkSiteId - - - NumberSource - - - NumberType - - - OperatorId - - - PortInOrderStatus - - - PstnAssignmentStatus - - - PstnPartnerId - - - PstnPartnerName - - - ReverseNumberLookup - - - Tag - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AreaCode - - - CivicAddressId - - - Country - - - Description - - - Name - - - NumberPrefix - - - NumberType - - - Quantity - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderRequest - - - - - - - - - - - - - - - - - - - - - EndingNumber - - - FileContent - - - StartingNumber - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseOrderResponse - - - - - - - - - - - - - - - - - - - - - - - - NumberIdsAssigned - - - NumberIdsDeleteFailed - - - NumberIdsDeleted - - - NumberIdsManagedByServiceDesk - - - NumberIdsNotOwnedByTenant - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletReleaseRequest - - - - - - - - - - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletSearchOrder - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletSearchOrder - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AreaCode - - - CivicAddressId - - - CountryCode - - - CreatedAt - - - Description - - - ErrorCode - - - Id - - - InventoryType - - - IsManual - - - Name - - - NumberPrefix - - - NumberType - - - Quantity - - - ReservationExpiryDate - - - SearchType - - - SendToServiceDesk - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletsSetResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletsSetResponse - - - - - - - - - - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCmdletTenantTagRecord - - - - - - - - - - - - TagValue - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCountry - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCountry - - - - - - - - - - - - - - - Name - - - Value - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateExportAcquiredTelephoneNumbersResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateExportAcquiredTelephoneNumbersResponse - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateSearchOrderResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtCreateSearchOrderResponse - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtDirectRoutingNumberCreationOrderResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtDirectRoutingNumberCreationOrderResponse - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtErrorResponseDetails - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtErrorResponseDetails - - - - - - - - - - - - - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse - - - - - - - - - - - - - - - - - - - - - - - - CreatedAt - - - DownloadLink - - - DownloadLinkExpiry - - - Id - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResponse - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPhoneNumberPolicyAssignmentCmdletResult - - - - - - - - - - - - - - - - - - - - - TelephoneNumber - - - PolicyType - - - PolicyName - - - Reference - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPrefixSearchOptions - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtPrefixSearchOptions - - - - - - - - - - - - - - - CountryCallingCode - - - MinimumPrefixLength - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtReleaseResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtReleaseResponse - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtTelephoneNumberSearchResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtTelephoneNumberSearchResult - - - - - - - - - - - - - - - Location - - - TelephoneNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtUpdateSearchOrderRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SkypeTelephoneNumberMgmtUpdateSearchOrderRequest - - - - - - - - - - - - Action - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SourceEntry - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SourceEntry - - - - - - - - - - - - - - - - - - - - - AssignmentType - - - PolicyType - - - PolicyName - - - Reference - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationEnqueueResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationEnqueueResponse - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StartMeetingMigrationRequestBody - - - - - - - - - - - - - - - - - - Identity - - - SourceMeetingType - - - TargetMeetingType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord - - - - - - - - - - - - - - - - - - AuxiliaryData - - - Message - - - WarningCode - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord2 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuxiliaryData - - - ErrorCode - - - Id - - - Message - - - Status - - - StatusTimestamp - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord3 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.StatusRecord3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AuxiliaryData - - - ErrorCode - - - Id - - - Message - - - Status - - - StatusTimestamp - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SubnetResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SubnetResponse - - - - - - - - - - - - - - - - - - Description - - - LocationId - - - Subnet - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedLanguage - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedLanguage - - - - - - - - - - - - - - - Code - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedSyncScenarios - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SupportedSyncScenarios - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OfferShiftRequest - - - OpenShift - - - OpenShiftRequest - - - Shift - - - SwapRequest - - - TimeCard - - - TimeOff - - - TimeOffRequest - - - UserShiftPreference - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SwitchResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SwitchResponse - - - - - - - - - - - - - - - - - - ChassisId - - - Description - - - LocationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SyncScenarioSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SyncScenarioSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OfferShiftRequest - - - OpenShift - - - OpenShiftRequest - - - Shift - - - SwapRequest - - - TimeCard - - - TimeOff - - - TimeOffRequest - - - UserShiftPreference - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TagErrorObject - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TagErrorObject - - - - - - - - - - - - - - - - - - Action - - - Code - - - Message - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Target - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Target - - - - - - - - - - - - - - - Id - - - Type - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - State - - - TeamId - - - TeamName - - - TimeZone - - - WfmTeamId - - - WfmTeamName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectsResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamConnectsResponse - - - - - - - - - - - - - - - - - - - - - CreatedDateTime - - - LastActionDateTime - - - OperationId - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDefinition - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDefinition - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Alias - - - Classification - - - Description - - - DisplayName - - - IsDynamicMembership - - - IsMembershipLimitedToOwner - - - OwnerUserObjectId - - - SensitivityLabelId - - - SmtpAddress - - - Specialization - - - Visibility - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamDiscoverySettings - - - - - - - - - - - - ShowInTeamsSearchAndSuggestion - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamFunSettings - - - - - - - - - - - - - - - - - - - - - AllowCustomMeme - - - AllowGiphy - - - AllowStickersAndMeme - - - GiphyContentRating - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamGuestSettings - - - - - - - - - - - - - - - AllowCreateUpdateChannel - - - AllowDeleteChannel - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMapping - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMapping - - - - - - - - - - - - - - - - - - TeamId - - - TimeZone - - - WfmTeamId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMemberSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowAddRemoveApp - - - AllowCreatePrivateChannel - - - AllowCreateUpdateChannel - - - AllowCreateUpdateRemoveConnector - - - AllowCreateUpdateRemoveTab - - - AllowDeleteChannel - - - UploadCustomApp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMessagingSettings - - - - - - - - - - - - - - - - - - - - - - - - AllowChannelMention - - - AllowOwnerDeleteMessage - - - AllowTeamMention - - - AllowUserDeleteMessage - - - AllowUserEditMessage - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMiddletierErrorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamMiddletierErrorResponse - - - - - - - - - - - - OperationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsAppTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsAppTemplate - - - - - - - - - - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsData - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsData - - - - - - - - - - - - - - - - - - CheckCpc - - - CheckEnterpriseVoice - - - MoveToTeam - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsTabConfiguration - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamsTabConfiguration - - - - - - - - - - - - - - - - - - - - - ContentUrl - - - EntityId - - - RemoveUrl - - - WebsiteUrl - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateExtendedProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateExtendedProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - Category - - - ModifiedBy - - - ModifiedOn - - - PublishedBy - - - PublisherUrl - - - ShortDescription - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateSummary - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplateSummary - - - - - - 120 - - - - 30 - - - - 30 - - - - 5 - - - - 5 - - - - - - - OdataId - - - Name - - - ShortDescription - - - ChannelCount - - - AppCount - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAudioFileDto - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantAudioFileDto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ApplicationId - - - Id - - - Content - - - ContextId - - - ConvertedFilename - - - DeletionTimestampOffset - - - DownloadUri - - - DownloadUriExpiryTimestampOffset - - - Duration - - - LastAccessedTimestampOffset - - - OriginalFilename - - - UploadedTimestampOffset - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantDialPlan - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantDialPlan - - - - - - - - - - - - - - - EffectiveTenantDialPlanName - - - NormalizationRule - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantInformation - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantInformation - - - - - - - - - - - - - - - - - - DefaultLanguage - - - DefaultTimeZone - - - EnabledFeature - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMediaFileDto - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMediaFileDto - - - - - - - - - - - - - - - ApplicationId - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigration - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigration - - - - - - - - - - - - - - - MoveOption - - - TargetServiceInstance - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigrationResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantMigrationResult - - - - - - - - - - - - - - - - - - JobName - - - OrderId - - - TenantId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest - - - - - - - - - - - - - - - Action - - - DomainName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSyncInLyncAdInfo - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSyncInLyncAdInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - IsSyncDisabledAtTenantCreation - - - IsUserSyncDisabled - - - IsUserSyncStateChanging - - - StopSyncRevertCompleteTimestamp - - - StopSyncRevertTimestamp - - - StopSyncTimestamp - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantVerifiedSipDomain - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantVerifiedSipDomain - - - - - - - - - - - - - - - Name - - - Status - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestInboundBlockedNumberResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestInboundBlockedNumberResponse - - - - - - - - - - - - IsNumberBlocked - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestTeamsTranslationRuleResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestTeamsTranslationRuleResponse - - - - - - - - - - - - - - - - - - - - - Identity - - - Pattern - - - PhoneNumberTranslated - - - Translation - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestUnassignedNumberTreatmentResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TestUnassignedNumberTreatmentResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - Description - - - Pattern - - - Priority - - - Target - - - TargetType - - - TreatmentId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeRange - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeRange - - - - - - - - - - - - - - - End - - - Start - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeZone - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TimeZone - - - - - - - - - - - - - - - DisplayName - - - Id - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UnansweredSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UnansweredSettings - - - - - - - - - - - - - - - - - - - - - Delay - - - IsEnabled - - - Target - - - TargetType - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCallQueueRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AgentAlertTime - - - AllowOptOut - - - AuthorizedUser - - - CallToAgentRatioThresholdBeforeOfferingCallback - - - CallbackEmailNotificationTarget - - - CallbackOfferAudioFilePromptResourceId - - - CallbackOfferTextToSpeechPrompt - - - CallbackRequestDtmf - - - ComplianceRecordingForCallQueueId - - - ConferenceMode - - - CustomAudioFileAnnouncementForCr - - - CustomAudioFileAnnouncementForCrFailure - - - DistributionList - - - EnableNoAgentSharedVoicemailSystemPromptSuppression - - - EnableNoAgentSharedVoicemailTranscription - - - EnableOverflowSharedVoicemailSystemPromptSuppression - - - EnableOverflowSharedVoicemailTranscription - - - EnableResourceAccountsForObo - - - EnableTimeoutSharedVoicemailSystemPromptSuppression - - - EnableTimeoutSharedVoicemailTranscription - - - HideAuthorizedUser - - - IsCallbackEnabled - - - LanguageId - - - MusicOnHoldAudioFileId - - - Name - - - NoAgentAction - - - NoAgentActionCallPriority - - - NoAgentActionTarget - - - NoAgentApplyTo - - - NoAgentDisconnectAudioFilePrompt - - - NoAgentDisconnectTextToSpeechPrompt - - - NoAgentRedirectPersonAudioFilePrompt - - - NoAgentRedirectPersonTextToSpeechPrompt - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - - NoAgentRedirectVoiceAppAudioFilePrompt - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - - NoAgentRedirectVoicemailAudioFilePrompt - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - - NoAgentSharedVoicemailAudioFilePrompt - - - NoAgentSharedVoicemailTextToSpeechPrompt - - - NumberOfCallsInQueueBeforeOfferingCallback - - - OboResourceAccountId - - - OverflowAction - - - OverflowActionCallPriority - - - OverflowActionTarget - - - OverflowDisconnectAudioFilePrompt - - - OverflowDisconnectTextToSpeechPrompt - - - OverflowRedirectPersonAudioFilePrompt - - - OverflowRedirectPersonTextToSpeechPrompt - - - OverflowRedirectPhoneNumberAudioFilePrompt - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - - OverflowRedirectVoiceAppAudioFilePrompt - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - - OverflowRedirectVoicemailAudioFilePrompt - - - OverflowRedirectVoicemailTextToSpeechPrompt - - - OverflowSharedVoicemailAudioFilePrompt - - - OverflowSharedVoicemailTextToSpeechPrompt - - - OverflowThreshold - - - PresenceAwareRouting - - - RoutingMethod - - - ServiceLevelThresholdResponseTimeInSecond - - - SharedCallQueueHistoryId - - - ShiftsSchedulingGroupId - - - ShiftsTeamId - - - ShouldOverwriteCallableChannelProperty - - - TextAnnouncementForCr - - - TextAnnouncementForCrFailure - - - ThreadId - - - TimeoutAction - - - TimeoutActionCallPriority - - - TimeoutActionTarget - - - TimeoutDisconnectAudioFilePrompt - - - TimeoutDisconnectTextToSpeechPrompt - - - TimeoutRedirectPersonAudioFilePrompt - - - TimeoutRedirectPersonTextToSpeechPrompt - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - - TimeoutRedirectVoiceAppAudioFilePrompt - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - - TimeoutRedirectVoicemailAudioFilePrompt - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - - TimeoutSharedVoicemailAudioFilePrompt - - - TimeoutSharedVoicemailTextToSpeechPrompt - - - TimeoutThreshold - - - UseDefaultMusicOnHold - - - User - - - WaitTimeBeforeOfferingCallbackInSecond - - - WelcomeMusicAudioFileId - - - WelcomeTextToSpeechPrompt - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceFieldsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceFieldsRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConnectionId - - - ConnectorAdminEmail - - - DesignatedActorId - - - Etag - - - Name - - - State - - - SyncFrequencyInMin - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateConnectorInstanceRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConnectionId - - - ConnectorAdminEmail - - - DesignatedActorId - - - Etag - - - Name - - - State - - - SyncFrequencyInMin - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCustomAppSettingRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateCustomAppSettingRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IsAppsEnabled - - - IsAppsPurchaseEnabled - - - IsExternalAppsEnabledByDefault - - - IsLicenseBasedPinnedAppsEnabled - - - IsSideloadedAppsInteractionEnabled - - - IsTenantWideAutoInstallEnabled - - - LobBackground - - - LobLogo - - - LobLogomark - - - LobTextColor - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateGreetingRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateGreetingRequest - - - - - - - - - - - - - - - - - - AudioFilePromptId - - - AudioFilePromptName - - - TextToSpeechPrompt - - - - - - - - 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 - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionFieldsRequest - - - - - - - - - - - - - - - - - - - - - ConnectorId - - - Etag - - - Name - - - State - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UpdateWfmConnectionRequest - - - - - - - - - - - - - - - - - - - - - ConnectorId - - - Etag - - - Name - - - State - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAdminAuthoredPropsSchemaProperties - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAdminAuthoredPropsSchemaProperties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EnterpriseVoiceEnabled - - - IsPhoneNumberSynergy - - - LineUri - - - LineUriValidationError - - - OptionFlag - - - PartitioningScheme - - - PolicyAssignment - - - UserEntityType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserApiSearchResults - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserApiSearchResults - - - - - - - - - - - - NextLink - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAutoGenerated - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserAutoGenerated - - - - - - - - - - - - - - - Id - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserConnectResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserConnectResponse - - - - - - - - - - - - - - - - - - - - - UserId - - - UserName - - - WfmUserId - - - WfmUserName - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserData - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AllowTollFreeDialIn - - - BridgeId - - - BridgeName - - - ResetLeaderPin - - - SendEmail - - - SendEmailToAddress - - - ServiceNumber - - - TollFreeServiceNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserDelicensingAccelerationPatch - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserDelicensingAccelerationPatch - - - - - - - - - - - - - - - Action - - - Capability - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserRoutingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserRoutingSettings - - - - - - - - - - - - SipUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UsersDefaultNumberUpdateRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UsersDefaultNumberUpdateRequest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AreaOrState - - - BridgeId - - - BridgeName - - - CapitalOrMajorCity - - - CountryOrRegion - - - FromNumber - - - NumberType - - - RescheduleMeeting - - - ToNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserSipUriRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserSipUriRequestBody - - - - - - - - - - - - UserSipUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserVoiceState - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserVoiceState - - - - - - - - - - - - - - - - - - - - - LineUri - - - OptionFlag - - - PolicyAssignment - - - UsageLocation - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidateUserRequestBody - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidateUserRequestBody - - - - - - - - - - - - - - - - - - - - - CmdletVersion - - - Force - - - MoveToCloud - - - UserSipUri - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationBatchParameters - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationBatchParameters - - - - - - - - - - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationParameters - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationParameters - - - - - - - - - - - - - - - - - - - - - Authority - - - PolicyName - - - PolicyType - - - UserId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationPolicyDefinition - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ValidationPolicyDefinition - - - - - - - - - - - - - - - PolicyName - - - PolicyType - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Voice - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.Voice - - - - - - - - - - - - - - - Id - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoicemailSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoicemailSettings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CallAnswerRule - - - DefaultGreetingPromptOverwrite - - - DefaultOofGreetingPromptOverwrite - - - OofGreetingEnabled - - - OofGreetingFollowAutomaticRepliesEnabled - - - PromptLanguage - - - ShareData - - - TransferTarget - - - VoicemailEnabled - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoiceNormalizationTestResult - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.VoiceNormalizationTestResult - - - - - - - - - - - - TranslatedNumber - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WaPResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WaPResponse - - - - - - - - - - - - - - - - - - Bssid - - - Description - - - LocationId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WeeklyRecurrentSchedule - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WeeklyRecurrentSchedule - - - - - - - - - - - - IsComplemented - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionRequest - - - - - - - - - - - - - - - - - - ConnectorId - - - Name - - - State - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectionResponse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ConnectorId - - - CreatedDateTime - - - Etag - - - Id - - - LastModifiedDateTime - - - Name - - - State - - - TenantId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectorResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmConnectorResponse - - - - - - - - - - - - - - - Id - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeam - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeam - - - - - - - - - - - - - - - Id - - - Name - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeamResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WfmTeamResponse - - - - - - - - - - - - - - - - - - - - - ConnectorInstanceId - - - Id - - - Name - - - TeamId - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WorkflowResponse - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.WorkflowResponse - - - - - - - - - - - - WorkflowId - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 deleted file mode 100644 index 9c7bb88202e03..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psd1 +++ /dev/null @@ -1,248 +0,0 @@ -@{ - GUID = '82b0bf19-c5cd-4c30-8db4-b458a4b84495' - RootModule = './Microsoft.Teams.ConfigAPI.Cmdlets.psm1' - ModuleVersion = '8.0925.3' - CompatiblePSEditions = 'Core', 'Desktop' - Author="Microsoft Corporation" - CompanyName="Microsoft Corporation" - Copyright="Copyright (c) Microsoft Corporation. All rights reserved." - Description="Microsoft Teams Configuration PowerShell module" - PowerShellVersion = '5.1' - DotNetFrameworkVersion = '4.7.2' - FormatsToProcess = @( - './Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml', - './Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml', - './SfbRpsModule.format.ps1xml') - CmdletsToExport = '*' - FunctionsToExport = '*' - AliasesToExport = '*' - PrivateData = @{ - PSData = @{ - # For dev test set Prerelease to preview. This will ensure devtest module get all preview ECS features. - Prerelease = 'preview' - Tags = '' - LicenseUri = '' - ProjectUri = '' - ReleaseNotes = '' - } - } -} - -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBktHhsDTXfF+ev -# CEOifc2ZOGc/dSGpB/zVLNO52F9TmKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPut -# cUIVxIBB0ImJ9vNQxSoMsyFmk7rGJjFLPFygEQ4fMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAsxdF6ENPMlJBY2pbMZwVrEjJbJIGoUXtTffs -# m5VHACdQcbJJtDlfJ8MZ53d5semg0/AHj917b4LWkILIhdFYVsZ3RuwM1aIFEzBw -# xrAM77PTv+cFXmVrYlif65+8R3tflJk2wyayruH4+qtkjjkMcW6OHQaEDWLpcwUW -# 6tk6ltgpusJebP2I9xWL5gG4oIn4XLS+FYDsizxXOTcGdaByLhMrdJxCSA003066 -# VEMapPs6sosMDnFWi37qHCbTdXYweq52x8zvOQINOclOxOucJhxoB/1BWI8ADhZ2 -# agohjS9bFJtBG6oic2iY8l+p8akRPQwHVQTrsGgmku1OFw3nSKGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCJwUibtIbzfPo/UBmxGxTeOcZrF+LqIi5L -# oeQGKL82VgIGaKOxdLnYGBMyMDI1MTAwMTA4MzMwMy4wNThaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo -# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 -# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 -# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 -# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT -# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT -# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX -# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B -# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya -# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb -# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn -# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq -# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk -# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze -# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT -# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR -# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR -# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ -# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz -# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD -# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F -# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ -# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 -# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA -# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU -# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O -# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 -# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H -# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ -# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgFlZ2O/GRfAXYA5v3qpRwM4QCr0GSQZI0ycmuzAREOxgwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs -# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /tCowns0IQsBAAEAAAH+MCIEIHl8bRCAEGD1nFgaXp67WN1I3z8m7ZUmowEzGTjb -# iSIqMA0GCSqGSIb3DQEBCwUABIICACKy7a3MJz+G2ukx3dDkAruMy/tF7Qgp7Xze -# fAp1nlXD5YHYePeCwWXd5Fke7/UtQhxW0xASRhCDMYmzhp3iHDj/OG87bvtUyi09 -# eVcw483MQttaqYkNQN/ICV9PBS/dmUPI/Kpi4iac1ADHTlt7COB21FGzVftfvotj -# UlveOmScT4sjAGLOcAbVZ1M5GolWEKQJ9J3GvtnMuoC1ZIupmw99AFaPmmuS9N62 -# mvaDOLnOqPi9FBg0cVS31kUNzNbePAU2dSuLLKyMy1auel/oSYFSiTPu7AVPm2hd -# 6DM98XJSfLVFIH6N1GBFGI6pmlstAw7+ZhRFRUwvJcKSTPyu9Xx2nsM7HQ3uPeGW -# D0VXVJAAj0vgBF/eUkadua5hUfRiSEzThlXyea7swcRZejZC4Lj9RW6D/q2y0bt9 -# E4h0e85IT2c5G7z3S9ZdmYsqZ9KebZoYd4UFCKQCrkP77v1JNu8oedia4hN0CiFW -# Cr2HB6eidHjjb++hXUzyUfggkmP3hFIbjw8rVojGABTveG5SiamGwwS5fUnwntah -# UOKilkF9PTI9IyppeXwTnCKnm95dbnO/eKQ0wrI+Fgq6v20GZcOOq8JtsExxrjmv -# V9JMkBOo+Gzky3qjiW7VYFAccQSG+x2emQ7yYeHccbWdMLpcZX5To3L9y6jgRu8c -# ZS80/H7S -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 deleted file mode 100644 index cf8c5fc5721f2..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.ConfigAPI.Cmdlets.psm1 +++ /dev/null @@ -1,268 +0,0 @@ -# region Generated - # Load the private module dll - $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll') - - # Get the private module's instance - $instance = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Module]::Instance - - # Load the custom module - $customModulePath = Join-Path $PSScriptRoot './custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1' - if(Test-Path $customModulePath) { - $null = Import-Module -Name $customModulePath - } - - # Export nothing to clear implicit exports - Export-ModuleMember - - # Export proxy cmdlet scripts - $exportsPath = Join-Path $PSScriptRoot './exports' - $directories = Get-ChildItem -Directory -Path $exportsPath - $profileDirectory = $null - if($instance.ProfileName) { - if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { - $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } - } else { - # Don't export anything if the profile doesn't exist for the module - $exportsPath = $null - Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." - } - } elseif(($directories | Measure-Object).Count -gt 0) { - # Load the last folder if no profile is selected - $profileDirectory = $directories | Select-Object -Last 1 - } - - if($profileDirectory) { - Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" - $exportsPath = $profileDirectory.FullName - } - - if($exportsPath) { - Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } - $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath - #Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) - } - - # Finalize initialization of this module - $instance.Init(); - Export-ModuleMember -Function $instance.FunctionsToExport.Split(",") - Write-Information "Loaded Module '$($instance.Name)'" -# endregion - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCA11zYyqhtEZno0 -# vnR835d32vg185cJKudkjxJ9lgIViKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIL/X -# KtNBJBHJGGbe7wFtIYIfMWxPHreyoYsrh/7+1ayVMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAjLRSPEgl+jV1neYu3nTNYAt12NPx9CSBS0in -# W3lTJ3li3JivLsglZyHAkpOry8UCfN85dJPmCcuA1ZaTOCb+tWpbGX391ZQki5mu -# m4278BFouVx3+kiDDClF4PoDwkUT80GSCUnkbLw4DeTuY4GdiLb+0sTv9RMcKPAn -# gdirrxrAsuUOqgJHrIxoQMQQd4xkF3Zwjdx78hYDd6aX0d1aPjlRTdEd/Op4GXN5 -# f0ogHVMc6dBNMAH1Mf7U7pDK4OfAB59j9OWRo96m9CwFfJBxVqtEr4VDq/2xQgPD -# 9eMyf6nIc/MQ9p6gQDaJbVyUbotuRcofvthfqaw+yx7cqLav+6GCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBtQ25Wdua/9MRhw3iNu1aZ/OELMsRHLdxZ -# y8rLeBbzfAIGaKOvjL6AGBMyMDI1MTAwMTA4MzMwMi4zMDNaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n -# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO -# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW -# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 -# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 -# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN -# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 -# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D -# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby -# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV -# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 -# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG -# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt -# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 -# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui -# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U -# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y -# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI -# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc -# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B -# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz -# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK -# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 -# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA -# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw -# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I -# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c -# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX -# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO -# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgn933r4y0jU2arKizHfLHMs2a9X1exP9Cl7jLD/ABcBAwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve -# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc -# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAB+4x6ZA5QY+bna8YicpD0DzAulLDQnL -# Hb4OxW/6OyHwQyt4vSzjsPVDcItAdm/hdII9pmhyz7jqBSMbkj1WR5K3YXKE0aUf -# V9AX4DzXE0Ea1vgwmLPTAwbF1+18An3px43SmkA3GQU9bU+XFQEreW5O0LdYHYnM -# MFk0tqMk0WU79Hc2976GrAOhNvcgrj2Rt89BE149XuOmyYLQmezqGpeH+opJXOrt -# 1SnW7LX9hl22GKO4aMsqRk/vWh+2zZZ5Htlv8uHj/Adc1VFTY9CI2FX2bQ7NPD66 -# dbtAKNPWH+OxO34MMFyXPHAMwvUTMz7cWY+t7sYf078aww/v87Du0Gd3p60fIoDF -# 5J/8L++LdHOWhGjUS6hrvqOlMxXToj/F8Yv4bqllkDUjLHTY+1MYECDnzfLzVjEe -# Bvnm7oKM5cBMeSIGg/9yJOOhbd8UdQN0D3QAfTNWeFg6CPEh1uCRj4+rv3wwTRlh -# J7H5PugpLfO2z590YxbAd4rzHQI91jZFWt+Pbz/haTCb17KbdCxKPYvg47HfZtJS -# z5/CgEfdcMRLTR8mTPHotQft0P41P9/17d9xI1hAAuqywhPEmN64ePMfRmRcISf/ -# 6NMnb7aXJuHLsdDkggrs74QqE+CbY/0tsdGUX1o7w7T4VyxYguINJy/OcMTweJ05 -# W4s9oCZxKCr3 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml deleted file mode 100644 index 3599bf890d9d6..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - 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 deleted file mode 100644 index fad03a18d6b6e..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml deleted file mode 100644 index 08e10ad35582c..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml +++ /dev/null @@ -1,251 +0,0 @@ - - - - - TeamsAppPolicyConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.TeamsAppPolicyConfiguration - - - - - - - - - Identity - - - - AppCatalogUri - - - - ResourceUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml deleted file mode 100644 index 6e9a622bf6bca..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml deleted file mode 100644 index ef3228e9efb1a..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsMigrationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.TeamsMigrationConfiguration - - - - - - - - - Identity - - - - EnableLegacyClientInterop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml deleted file mode 100644 index 600c432100939..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsMultiTenantOrganizationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.TeamsMultiTenantOrganizationConfiguration - - - - - - - - - Identity - - - - CopilotFromHomeTenant - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml deleted file mode 100644 index 36f60c0bfc9e8..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml +++ /dev/null @@ -1,300 +0,0 @@ - - - - - TeamsRoutingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.TeamsRoutingConfiguration - - - - - - - - - Identity - - - - VoiceGatewayFqdn - - - - EnableMessagingGatewayProxy - - - - MessagingConversationRequestUrl - - - - MessagingConversationResponseUrl - - - - MgwRedirectUrlTemplate - - - - EnablePoollessTeamsOnlyUserFlighting - - - - EnablePoollessTeamsOnlyCallingFlighting - - - - EnablePoollessTeamsOnlyMessagingFlighting - - - - EnablePoollessTeamsOnlyConferencingFlighting - - - - EnablePoollessTeamsOnlyPresenceFlighting - - - - HybridEdgeFqdn - - - - DisableTeamsOnlyUsersConfCreateFlighting - - - - TenantDisabledForTeamsOnlyUsersConfCreate - - - - EnableTenantLevelPolicyCheck - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/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 deleted file mode 100644 index 234bed9e33a64..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/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 deleted file mode 100644 index 94f3e54828092..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml deleted file mode 100644 index 0b8baea0d3781..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - OnlineVoicemailValidationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.OnlineVoicemailValidationConfiguration - - - - - - - - - Identity - - - - AudioFileValidationEnabled - - - - AudioFileValidationUri - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml deleted file mode 100644 index 7aed5a7029b59..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml +++ /dev/null @@ -1,7666 +0,0 @@ - - - - - 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 - - - - - - - - - Identity - - - - ConversationRoles - - - - - - - - ConversationRoleView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRole - - - - - - - - - Identity - - - - Permissions - - - - Id - - - - Name - - - - IsAssignable - - - - CreatedAt - - - - UpdatedAt - - - - - - - - ConversationRolePermissionsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ConversationRolePermissions - - - - - - - - - Chat - - - - Calling - - - - - - - - ChatPermissionsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ChatPermissions - - - - - - - - - AddParticipants - - - - RemoveSelf - - - - RemoveParticipants - - - - ListParticipants - - - - GetOwnDetails - - - - GetOthersDetails - - - - UpdateOwnDetails - - - - UpdateOthersDetails - - - - ShareHistory - - - - GetChatThreadProperties - - - - UpdateChatThreadProperties - - - - DeleteChatThread - - - - SendMessage - - - - ReceiveMessage - - - - EditOwnMessage - - - - EditOthersMessage - - - - DeleteOwnMessage - - - - DeleteOthersMessage - - - - - - - - CallingPermissionsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CallingPermissions - - - - - - - - - AddParticipants - - - - AddPhoneNumbers - - - - RemoveParticipants - - - - SendVideo - - - - RestrictOthersVideo - - - - SendAudio - - - - RestrictOthersAudio - - - - ShareScreen - - - - MuteSelf - - - - UnmuteSelf - - - - MuteOthers - - - - SpotlightParticipants - - - - RemoveSpotlights - - - - - - - - ExternalAccessPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalAccessPolicy - - - - - - - - - Identity - - - - AllowedExternalDomains - - - - BlockedExternalDomains - - - - Description - - - - EnableFederationAccess - - - - EnableXmppAccess - - - - EnablePublicCloudAudioVideoAccess - - - - EnableTeamsSmsAccess - - - - EnableOutsideAccess - - - - EnableAcsFederationAccess - - - - EnableTeamsConsumerAccess - - - - EnableTeamsConsumerInbound - - - - RestrictTeamsConsumerAccessToExternalUserProfiles - - - - FederatedBilateralChats - - - - CommunicationWithExternalOrgs - - - - - - - - HostedVoicemailPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HostedVoicemailPolicy - - - - - - - - - Identity - - - - Description - - - - Destination - - - - Organization - - - - BusinessVoiceEnabled - - - - NgcEnabled - - - - - - - - LocationPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.LocationPolicy - - - - - - - - - Identity - - - - EmergencyNumbers - - - - Description - - - - EnhancedEmergencyServicesEnabled - - - - LocationRequired - - - - UseLocationForE911Only - - - - PstnUsage - - - - EmergencyDialString - - - - EmergencyDialMask - - - - NotificationUri - - - - ConferenceUri - - - - ConferenceMode - - - - LocationRefreshInterval - - - - EnhancedEmergencyServiceDisclaimer - - - - UseHybridVoiceForE911 - - - - EnablePlusPrefix - - - - AllowEmergencyCallsWithoutLineURI - - - - - - - - EmergencyNumberView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.EmergencyNumber - - - - - - - - - DialString - - - - DialMask - - - - - - - - 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 - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.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 - - - - - - - - NgcBvMigrationPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NgcBvMigrationPolicy - - - - - - - - - Identity - - - - Description - - - - PstnOut - - - - - - - - OnlineAudioConferencingRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineAudioConferencingRoutingPolicy - - - - - - - - - Identity - - - - OnlinePstnUsages - - - - Description - - - - RouteType - - - - - - - - OnlinePstnUsagesView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnUsages - - - - - - - - - Identity - - - - Usage - - - - - - - - OnlineDialOutPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialOutPolicy - - - - - - - - - Identity - - - - AllowPSTNConferencingDialOutType - - - - AllowPSTNOutboundCallingType - - - - - - - - OnlineRouteView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineRoute - - - - - - - - - Identity - - - Priority - - - - Description - - - - NumberPattern - - - - OnlinePstnUsages - - - - OnlinePstnGatewayList - - - - BridgeSourcePhoneNumber - - - - Name - - - - - - - - OnlinePstnRoutingSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlinePstnRoutingSettings - - - - - - - - - Identity - - - - OnlineRoute - - - - - - - - OnlineVoiceRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoiceRoutingPolicy - - - - - - - - - Identity - - - - OnlinePstnUsages - - - - Description - - - - RouteType - - - - - - - - PstnUsagesView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PstnUsages - - - - - - - - - Identity - - - - Usage - - - - - - - - TeamsAppPermissionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPermissionPolicy - - - - - - - - - Identity - - - - DefaultCatalogApps - - - - GlobalCatalogApps - - - - PrivateCatalogApps - - - - Description - - - - DefaultCatalogAppsType - - - - GlobalCatalogAppsType - - - - PrivateCatalogAppsType - - - - - - - - DefaultCatalogAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - GlobalCatalogAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - PrivateCatalogAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - TeamsAppSetupPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppSetupPolicy - - - - - - - - - Identity - - - - AppPresetList - - - - PinnedAppBarApps - - - - PinnedMessageBarApps - - - - AppPresetMeetingList - - - - AdditionalCustomizationApps - - - - PinnedCallingBarApps - - - - Description - - - - AllowSideLoading - - - - AllowUserPinning - - - - - - - - AppPresetView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - PinnedAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - Order - - - - - - - - PinnedMessageBarAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - Order - - - - - - - - AppPresetMeetingView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPresetMeeting - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - AdditionalCustomizationAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalCustomizationApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - AdditionalCustomizationId - - - - - - - - PinnedCallingBarAppView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp - - - - - - - - - Identity - - - Priority - - - - Id - - - - - - - - TeamsBranchSurvivabilityPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsBranchSurvivabilityPolicy - - - - - - - - - Identity - - - - BranchApplianceFqdns - - - - - - - - TeamsCallHoldPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldPolicy - - - - - - - - - Identity - - - - Description - - - - AudioFileId - - - - StreamingSourceUrl - - - - StreamingSourceAuthType - - - - - - - - TeamsCallingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallingPolicy - - - - - - - - - Identity - - - - Description - - - - AllowPrivateCalling - - - - AllowWebPSTNCalling - - - - AllowSIPDevicesCalling - - - - AllowVoicemail - - - - AllowCallGroups - - - - AllowDelegation - - - - AllowCallForwardingToUser - - - - AllowCallForwardingToPhone - - - - PreventTollBypass - - - - BusyOnBusyEnabledType - - - - MusicOnHoldEnabledType - - - - AllowCloudRecordingForCalls - - - - ExplicitRecordingConsent - - - - AllowTranscriptionForCalling - - - - PopoutForIncomingPstnCalls - - - - PopoutAppPathForIncomingPstnCalls - - - - LiveCaptionsEnabledTypeForCalling - - - - AutoAnswerEnabledType - - - - SpamFilteringEnabledType - - - - CallRecordingExpirationDays - - - - AllowCallRedirect - - - - InboundPstnCallRoutingTreatment - - - - InboundFederatedCallRoutingTreatment - - - - EnableWebPstnMediaBypass - - - - EnableSpendLimits - - - - CallingSpendUserLimit - - - - Copilot - - - - ShowTeamsCallsInCallLog - - - - RealTimeText - - - - AIInterpreter - - - - VoiceSimulationInInterpreter - - - - - - - - TeamsCallParkPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallParkPolicy - - - - - - - - - Identity - - - - Description - - - - AllowCallPark - - - - PickupRangeStart - - - - PickupRangeEnd - - - - ParkTimeoutSeconds - - - - - - - - TeamsCarrierEmergencyCallRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCarrierEmergencyCallRoutingPolicy - - - - - - - - - Identity - - - - LocationPolicyId - - - - Description - - - - - - - - TeamsChannelsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsChannelsPolicy - - - - - - - - - Identity - - - - Description - - - - AllowOrgWideTeamCreation - - - - EnablePrivateTeamDiscovery - - - - AllowPrivateChannelCreation - - - - AllowSharedChannelCreation - - - - AllowChannelSharingToExternalUser - - - - AllowUserToParticipateInExternalSharedChannel - - - - ThreadedChannelCreation - - - - - - - - TeamsComplianceRecordingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsComplianceRecordingPolicy - - - - - - - - - Identity - - - - ComplianceRecordingApplications - - - - Enabled - - - - WarnUserOnRemoval - - - - DisableComplianceRecordingAudioNotificationForCalls - - - - Description - - - - RecordReroutedCalls - - - - CustomPromptsEnabled - - - - CustomPromptsPackageId - - - - CustomBanner - - - - - - - - ComplianceRecordingApplicationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingApplication - - - - - - - - - Identity - - - Priority - - - - ComplianceRecordingPairedApplications - - - - Id - - - - RequiredBeforeMeetingJoin - - - - RequiredBeforeCallEstablishment - - - - RequiredDuringMeeting - - - - RequiredDuringCall - - - - ConcurrentInvitationCount - - - - - - - - ComplianceRecordingPairedApplicationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ComplianceRecordingPairedApplication - - - - - - - - - Id - - - - - - - - TeamsCortanaPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCortanaPolicy - - - - - - - - - Identity - - - - Description - - - - CortanaVoiceInvocationMode - - - - AllowCortanaVoiceInvocation - - - - AllowCortanaAmbientListening - - - - AllowCortanaInContextSuggestions - - - - - - - - TeamsEducationAssignmentsAppPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationAssignmentsAppPolicy - - - - - - - - - Identity - - - - ParentDigestEnabledType - - - - MakeCodeEnabledType - - - - TurnItInEnabledType - - - - TurnItInApiUrl - - - - TurnItInApiKey - - - - - - - - TeamsEmergencyCallingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingPolicy - - - - - - - - - Identity - - - - ExtendedNotifications - - - - NotificationGroup - - - - NotificationDialOutNumber - - - - ExternalLocationLookupMode - - - - NotificationMode - - - - EnhancedEmergencyServiceDisclaimer - - - - Description - - - - - - - - TeamsEmergencyCallingExtendedNotificationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification - - - - - - - - - EmergencyDialString - - - - NotificationGroup - - - - NotificationDialOutNumber - - - - NotificationMode - - - - - - - - TeamsEmergencyCallRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallRoutingPolicy - - - - - - - - - Identity - - - - EmergencyNumbers - - - - AllowEnhancedEmergencyServices - - - - Description - - - - - - - - TeamsEmergencyNumberView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyNumber - - - - - - - - - EmergencyDialString - - - - EmergencyDialMask - - - - OnlinePSTNUsage - - - - - - - - TeamsEnhancedEncryptionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEnhancedEncryptionPolicy - - - - - - - - - Identity - - - - CallingEndtoEndEncryptionEnabledType - - - - MeetingEndToEndEncryption - - - - Description - - - - - - - - TeamsEventsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEventsPolicy - - - - - - - - - Identity - - - - AllowWebinars - - - - EventAccessType - - - - AllowTownhalls - - - - TownhallEventAttendeeAccess - - - - AllowEmailEditing - - - - AllowedQuestionTypesInRegistrationForm - - - - AllowEventIntegrations - - - - AllowedWebinarTypesForRecordingPublish - - - - AllowedTownhallTypesForRecordingPublish - - - - RecordingForTownhall - - - - RecordingForWebinar - - - - TranscriptionForTownhall - - - - TranscriptionForWebinar - - - - TownhallChatExperience - - - - BroadcastPremiumApps - - - - UseMicrosoftECDN - - - - ImmersiveEvents - - - - MaxResolutionForTownhall - - - - HighBitrateForTownhall - - - - Description - - - - - - - - TeamsFeedbackPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFeedbackPolicy - - - - - - - - - Identity - - - - UserInitiatedMode - - - - ReceiveSurveysMode - - - - AllowScreenshotCollection - - - - AllowEmailCollection - - - - AllowLogCollection - - - - EnableFeatureSuggestions - - - - - - - - TeamsFilesPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFilesPolicy - - - - - - - - - Identity - - - - NativeFileEntryPoints - - - - SPChannelFilesTab - - - - DefaultFileUploadAppId - - - - FileSharingInChatswithExternalUsers - - - - - - - - TeamsInteropPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsInteropPolicy - - - - - - - - - Identity - - - - AllowEndUserClientOverride - - - - CallingDefaultClient - - - - ChatDefaultClient - - - - - - - - TeamsIPPhonePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsIPPhonePolicy - - - - - - - - - Identity - - - - Description - - - - SignInMode - - - - SearchOnCommonAreaPhoneMode - - - - AllowHomeScreen - - - - AllowBetterTogether - - - - AllowHotDesking - - - - HotDeskingIdleTimeoutInMinutes - - - - - - - - TeamsMediaLoggingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMediaLoggingPolicy - - - - - - - - - Identity - - - - Description - - - - AllowMediaLogging - - - - - - - - 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 - - - - - - - - TeamsMeetingBroadcastPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastPolicy - - - - - - - - - Identity - - - - Description - - - - AllowBroadcastScheduling - - - - AllowBroadcastTranscription - - - - BroadcastAttendeeVisibilityMode - - - - BroadcastRecordingMode - - - - - - - - TeamsMeetingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingPolicy - - - - - - - - - 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 - - - - AllowedUsersForMeetingDetails - - - - SmsNotifications - - - - CaptchaVerificationForMeetingJoin - - - - UsersCanAdmitFromLobby - - - - LobbyChat - - - - AnonymousUserAuthenticationMethod - - - - NoiseSuppressionForDialInParticipants - - - - RealTimeText - - - - AIInterpreter - - - - VoiceSimulationInInterpreter - - - - ParticipantSlideControl - - - - - - - - TeamsMeetingTemplatePermissionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplatePermissionPolicy - - - - - - - - - Identity - - - - HiddenMeetingTemplates - - - - Description - - - - - - - - HiddenMeetingTemplateView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenMeetingTemplate - - - - - - - - - Id - - - - - - - - TeamsMessagingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingPolicy - - - - - - - - - Identity - - - - Description - - - - AllowUrlPreviews - - - - AllowOwnerDeleteMessage - - - - AllowUserEditMessage - - - - AllowUserDeleteMessage - - - - UsersCanDeleteBotMessages - - - - AllowUserDeleteChat - - - - AllowUserChat - - - - AllowRemoveUser - - - - AllowGiphy - - - - GiphyRatingType - - - - AllowGiphyDisplay - - - - AllowPasteInternetImage - - - - AllowMemes - - - - AllowImmersiveReader - - - - AllowStickers - - - - AllowUserTranslation - - - - ReadReceiptsEnabledType - - - - AllowPriorityMessages - - - - AllowSmartReply - - - - AllowSmartCompose - - - - ChannelsInChatListEnabledType - - - - AudioMessageEnabledType - - - - ChatPermissionRole - - - - AllowFullChatPermissionUserToDeleteAnyMessage - - - - AllowFluidCollaborate - - - - AllowVideoMessages - - - - AllowCommunicationComplianceEndUserReporting - - - - AllowChatWithGroup - - - - AllowSecurityEndUserReporting - - - - InOrganizationChatControl - - - - AllowGroupChatJoinLinks - - - - CreateCustomEmojis - - - - UseB2BInvitesToAddExternalUsers - - - - DeleteCustomEmojis - - - - AutoShareFilesInExternalChats - - - - DesignerForBackgroundsAndImages - - - - AllowCustomGroupChatAvatars - - - - - - - - TeamsMobilityPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMobilityPolicy - - - - - - - - - Identity - - - - Description - - - - IPVideoMobileMode - - - - IPAudioMobileMode - - - - MobileDialerPreference - - - - - - - - TeamsNetworkRoamingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNetworkRoamingPolicy - - - - - - - - - Identity - - - - AllowIPVideo - - - - MediaBitRateKb - - - - Description - - - - - - - - TeamsNotificationAndFeedsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsNotificationAndFeedsPolicy - - - - - - - - - Identity - - - - Description - - - - SuggestedFeedsEnabledType - - - - TrendingFeedsEnabledType - - - - - - - - TeamsOwnersPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsOwnersPolicy - - - - - - - - - Identity - - - - Description - - - - AllowPrivateTeams - - - - AllowOrgwideTeams - - - - AllowPublicTeams - - - - - - - - TeamsRoomVideoTeleConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoomVideoTeleConferencingPolicy - - - - - - - - - Identity - - - - Description - - - - Enabled - - - - AreaCode - - - - ReceiveExternalCalls - - - - ReceiveInternalCalls - - - - PlaceExternalCalls - - - - PlaceInternalCalls - - - - - - - - TeamsSharedCallingRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSharedCallingRoutingPolicy - - - - - - - - - Identity - - - - EmergencyNumbers - - - - ResourceAccount - - - - Description - - - - - - - - TeamsShiftsAppPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsAppPolicy - - - - - - - - - Identity - - - - AllowTimeClockLocationDetection - - - - - - - - TeamsShiftsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsShiftsPolicy - - - - - - - - - Identity - - - - ShiftNoticeFrequency - - - - ShiftNoticeMessageType - - - - ShiftNoticeMessageCustom - - - - AccessType - - - - AccessGracePeriodMinutes - - - - EnableScheduleOwnerPermissions - - - - - - - - TeamsSyntheticAutomatedCallPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSyntheticAutomatedCallPolicy - - - - - - - - - Identity - - - - Description - - - - SyntheticAutomatedCallsMode - - - - - - - - TeamsTargetingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTargetingPolicy - - - - - - - - - Identity - - - - Description - - - - ManageTagsPermissionMode - - - - TeamOwnersEditWhoCanManageTagsMode - - - - SuggestedPresetTags - - - - CustomTagsMode - - - - ShiftBackedTagsMode - - - - AutomaticTagsMode - - - - - - - - TeamsTasksPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTasksPolicy - - - - - - - - - Identity - - - - TasksMode - - - - AllowActivityWhenTasksPublished - - - - - - - - TeamsTemplatePermissionPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTemplatePermissionPolicy - - - - - - - - - Identity - - - - HiddenTemplates - - - - Description - - - - - - - - HiddenTemplateView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate - - - - - - - - - Id - - - - - - - - TeamsUpdateManagementPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpdateManagementPolicy - - - - - - - - - Identity - - - - DisabledInProductMessages - - - - Description - - - - AllowManagedUpdates - - - - AllowPreview - - - - UpdateDayOfWeek - - - - UpdateTime - - - - $_.UpdateTimeOfDay.ToShortTimeString() - - - - AllowPublicPreview - - - - UseNewTeamsClient - - - - OCDIRedirect - - - - BlockLegacyAuthorization - - - - - - - - TeamsUpgradeOverridePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeOverridePolicy - - - - - - - - - Identity - - - - Description - - - - ProvisionedAsTeamsOnly - - - - SkypePoolMode - - - - Action - - - - Enabled - - - - - - - - TeamsUpgradePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradePolicy - - - - - - - - - Identity - - - - Description - - - - Mode - - - - NotifySfbUsers - - - - Action - - - - - - - - TeamsVdiPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVdiPolicy - - - - - - - - - Identity - - - - DisableCallsAndMeetings - - - - DisableAudioVideoInCallsAndMeetings - - - - VDI2Optimization - - - - - - - - TeamsVerticalPackagePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVerticalPackagePolicy - - - - - - - - - Identity - - - - PackageIncludedPolices - - - - Description - - - - PackageId - - - - FirstRunExperienceId - - - - - - - - PolicyTypeToPolicyInstanceView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PolicyTypeToPolicyInstance - - - - - - - - - PolicyType - - - - PolicyName - - - - - - - - TeamsVideoInteropServicePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsVideoInteropServicePolicy - - - - - - - - - Identity - - - - Description - - - - ProviderName - - - - Enabled - - - - - - - - TeamsVoiceApplicationsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.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 - - - - AllowCallQueueNoAgentSharedVoicemailGreetingChange - - - - RealTimeAutoAttendantMetricsPermission - - - - RealTimeCallQueueMetricsPermission - - - - RealTimeAgentMetricsPermission - - - - HistoricalAutoAttendantMetricsPermission - - - - HistoricalCallQueueMetricsPermission - - - - HistoricalAgentMetricsPermission - - - - - - - - TeamsWatermarkPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWatermarkPolicy - - - - - - - - - Identity - - - - AllowForScreenSharing - - - - AllowForCameraVideo - - - - Description - - - - - - - - TeamsWorkLoadPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsWorkLoadPolicy - - - - - - - - - Identity - - - - Description - - - - AllowMeeting - - - - AllowMeetingPinned - - - - AllowMessaging - - - - AllowMessagingPinned - - - - AllowCalling - - - - AllowCallingPinned - - - - - - - - TenantBlockedCallingNumbersView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantBlockedCallingNumbers - - - - - - - - - Identity - - - - InboundBlockedNumberPatterns - - - - InboundExemptNumberPatterns - - - - Enabled - - - - Name - - - - - - - - InboundBlockedNumberPatternView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundBlockedNumberPattern - - - - - - - - - Identity - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - InboundExemptNumberPatternView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.InboundExemptNumberPattern - - - - - - - - - Identity - - - - Name - - - - Enabled - - - - Description - - - - Pattern - - - - - - - - TenantDialPlanView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantDialPlan - - - - - - - - - Identity - - - - Description - - - - NormalizationRules - - - - ExternalAccessPrefix - - - - SimpleName - - - - OptimizeDeviceDialing - - - - - - - - VoicePolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicePolicy - - - - - - - - - Identity - - - - PstnUsages - - - - CustomCallForwardingSimulRingUsages - - - - Description - - - - AllowSimulRing - - - - AllowCallForwarding - - - - AllowPSTNReRouting - - - - Name - - - - EnableDelegation - - - - EnableTeamCall - - - - EnableCallTransfer - - - - EnableCallPark - - - - EnableBusyOptions - - - - EnableMaliciousCallTracing - - - - EnableBWPolicyOverride - - - - PreventPSTNTollBypass - - - - EnableFMC - - - - CallForwardingSimulRingUsageType - - - - VoiceDeploymentMode - - - - EnableVoicemailEscapeTimer - - - - PSTNVoicemailEscapeTimer - - - - TenantAdminEnabled - - - - BusinessVoiceEnabled - - - - - - - - VoiceRoutingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceRoutingPolicy - - - - - - - - - Identity - - - - PstnUsages - - - - Description - - - - Name - - - - AllowInternationalCalls - - - - HybridPSTNSiteIndex - - - - - - - - TeamsAcsFederationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAcsFederationConfiguration - - - - - - - - - Identity - - - - AllowedAcsResources - - - - EnableAcsUsers - - - - RequireAcsFederationForMeeting - - - - LabelForAllowedAcsUsers - - - - HideBannerForAllowedAcsUsers - - - - - - - - DialInConferencingDtmfConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingDtmfConfiguration - - - - - - - - - Identity - - - - CommandCharacter - - - - MuteUnmuteCommand - - - - AudienceMuteCommand - - - - LockUnlockConferenceCommand - - - - HelpCommand - - - - PrivateRollCallCommand - - - - EnableDisableAnnouncementsCommand - - - - AdmitAll - - - - OperatorLineUri - - - - - - - - DialInConferencingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingConfiguration - - - - - - - - - Identity - - - - EntryExitAnnouncementsType - - - - BatchToneAnnouncements - - - - EnableNameRecording - - - - EntryExitAnnouncementsEnabledByDefault - - - - UsePinAuth - - - - PinAuthType - - - - EnableInterpoolTransfer - - - - EnableAccessibilityOptions - - - - EnableAnnouncementServiceTransfer - - - - - - - - DialInConferencingLanguageListView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DialInConferencingLanguageList - - - - - - - - - Identity - - - - Languages - - - - - - - - TenantFederationSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantFederationSettings - - - - - - - - - Identity - - - - AllowedDomains - - - - BlockedDomains - - - - AllowedTrialTenantDomains - - - - AllowFederatedUsers - - - - AllowTeamsSms - - - - AllowTeamsConsumer - - - - AllowTeamsConsumerInbound - - - - TreatDiscoveredPartnersAsUnverified - - - - SharedSipAddressSpace - - - - RestrictTeamsConsumerToExternalUserProfiles - - - - BlockAllSubdomains - - - - ExternalAccessWithTrialTenants - - - - DomainBlockingForMDOAdminsInTeams - - - - - - - - AllowedDomainsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowedDomains - - - - - - - - - AllowedDomainsChoice - - - - - - - - AllowListView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowList - - - - - - - - - AllowedDomain - - - - - - - - DomainPatternView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DomainPattern - - - - - - - - - Domain - - - - - - - - AllowedDomainView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AllowedDomain - - - - - - - - - Identity - - - - Domain - - - - ProxyFqdn - - - - VerificationLevel - - - - Comment - - - - MarkForMonitoring - - - - - - - - BlockedDomainView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.BlockedDomain - - - - - - - - - Identity - - - - Domain - - - - Comment - - - - - - - - AdditionalInternalDomainView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AdditionalInternalDomain - - - - - - - - - Identity - - - - Domain - - - - - - - - MediaRelaySettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.MediaRelaySettings - - - - - - - - - Identity - - - - MaxTokenLifetime - - - - MaxBandwidthPerUserKb - - - - MaxBandwidthPerPortKb - - - - PermissionListIgnoreSeconds - - - - MaxAverageConnPps - - - - MaxPeakConnPps - - - - TRAPUrl - - - - TRAPCallDistribution - - - - TRAPHttpclientRetryCount - - - - TRAPHttpclientTimeoutInMilliSeconds - - - - HideMrasInternalFqdnForClientRequest - - - - - - - - OnlineDialinPageConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinPageConfiguration - - - - - - - - - Identity - - - - MaximumConcurrentBvdGetSipResourceRequests - - - - MaximumConcurrentBvdGetBridgeRequests - - - - EnablePinServicesUserLookup - - - - EnableRedirectToAzureDialinPage - - - - AzureDialinPageUrl - - - - - - - - OnlineDialinConferencingTenantConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingTenantConfiguration - - - - - - - - - Identity - - - - Status - - - - EnableCustomTrunking - - - - ThirdPartyNumberStatus - - - - - - - - SharedResourcesConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.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 - - - - - - - - OnlineDialinConferencingServiceConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingServiceConfiguration - - - - - - - - - Identity - - - - AnonymousCallerGracePeriod - - - - AnonymousCallerMeetingRuntime - - - - AuthenticatedCallerMeetingRuntime - - - - - - - - OnlineDialInConferencingNumberMapView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingNumberMap - - - - - - - - - Identity - - - Priority - - - - Geocodes - - - - Name - - - - Shared - - - - - - - - OnlineDialInConferencingMarketProfileView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingMarketProfile - - - - - - - - - Identity - - - Priority - - - - NumberMaps - - - - Name - - - - Code - - - - Region - - - - DefaultBridgeGeocode - - - - - - - - OnlineDialinConferencingDefaultLanguageView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencingDefaultLanguage - - - - - - - - - Identity - - - - DefaultLanguages - - - - - - - - DefaultLanguageEntryView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultLanguageEntry - - - - - - - - - SecondaryLanguages - - - - Geocode - - - - PrimaryLanguage - - - - - - - - OnlineDialInConferencingTenantSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingTenantSettings - - - - - - - - - Identity - - - - AllowedDialOutExternalDomains - - - - EnableEntryExitNotifications - - - - EntryExitAnnouncementsType - - - - EnableNameRecording - - - - IncludeTollFreeNumberInMeetingInvites - - - - MaskPstnNumbersType - - - - PinLength - - - - AllowPSTNOnlyMeetingsByDefault - - - - AutomaticallySendEmailsToUsers - - - - SendEmailFromOverride - - - - SendEmailFromAddress - - - - SendEmailFromDisplayName - - - - AutomaticallyReplaceAcpProvider - - - - UseUniqueConferenceIds - - - - AutomaticallyMigrateUserMeetings - - - - MigrateServiceNumbersOnCrossForestMove - - - - EnableDialOutJoinConfirmation - - - - AllowFederatedUsersToDialOutToSelf - - - - AllowFederatedUsersToDialOutToThirdParty - - - - - - - - OnlineDialInConferencingAllowedDomainView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialInConferencingAllowedDomain - - - - - - - - - Identity - - - - Domain - - - - - - - - PlatformApplicationsConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PlatformApplicationsConfiguration - - - - - - - - - Identity - - - - PublicApplicationList - - - - PublicApplicationListMode - - - - - - - - ApplicationMeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ApplicationMeetingConfiguration - - - - - - - - - Identity - - - - AllowRemoveParticipantAppIds - - - - - - - - TeamsAudioConferencingCustomPromptsConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAudioConferencingCustomPromptsConfiguration - - - - - - - - - Identity - - - - Prompts - - - - Packages - - - - - - - - CustomPromptView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomPrompt - - - - - - - - - Id - - - - Name - - - - AudioPrompt - - - - TextPrompt - - - - Type - - - - Locale - - - - - - - - CustomPromptPackageView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomPromptPackage - - - - - - - - - InboundStartRecordingPrompt - - - - InboundEndRecordingPrompt - - - - OutboundStartRecordingPrompt - - - - OutboundEndRecordingPrompt - - - - MeetingStartRecordingPrompt - - - - MeetingEndRecordingPrompt - - - - Id - - - - Name - - - - DefaultLocale - - - - - - - - TeamsConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsConfiguration - - - - - - - - - Identity - - - - EnabledForVoice - - - - EnabledForMessaging - - - - - - - - TeamsUpgradeConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsUpgradeConfiguration - - - - - - - - - Identity - - - - DownloadTeams - - - - SfBMeetingJoinUx - - - - BlockLegacyAuthorization - - - - - - - - TeamsClientConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsClientConfiguration - - - - - - - - - Identity - - - - AllowEmailIntoChannel - - - - RestrictedSenderList - - - - AllowDropBox - - - - AllowBox - - - - AllowGoogleDrive - - - - AllowShareFile - - - - AllowEgnyte - - - - AllowOrganizationTab - - - - AllowSkypeBusinessInterop - - - - ContentPin - - - - AllowResourceAccountSendMessage - - - - ResourceAccountContentAccess - - - - AllowGuestUser - - - - AllowScopedPeopleSearchandAccess - - - - AllowRoleBasedChatPermissions - - - - ExtendedWorkInfoInPeopleSearch - - - - - - - - TeamsGuestMessagingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestMessagingConfiguration - - - - - - - - - Identity - - - - AllowUserEditMessage - - - - AllowUserDeleteMessage - - - - UsersCanDeleteBotMessages - - - - AllowUserDeleteChat - - - - AllowUserChat - - - - AllowGiphy - - - - GiphyRatingType - - - - AllowMemes - - - - AllowImmersiveReader - - - - AllowStickers - - - - - - - - TeamsGuestMeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestMeetingConfiguration - - - - - - - - - Identity - - - - AllowIPVideo - - - - ScreenSharingMode - - - - AllowMeetNow - - - - LiveCaptionsEnabledType - - - - AllowTranscription - - - - AllowParticipantGiveRequestControl - - - - AllowExternalParticipantGiveRequestControl - - - - - - - - TeamsGuestCallingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsGuestCallingConfiguration - - - - - - - - - Identity - - - - AllowPrivateCalling - - - - - - - - TeamsMeetingBroadcastConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingBroadcastConfiguration - - - - - - - - - Identity - - - - SupportURL - - - - AllowSdnProviderForBroadcastMeeting - - - - - - - - TeamsEffectiveMeetingSurveyConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEffectiveMeetingSurveyConfiguration - - - - - - - - - Identity - - - - Survey - - - - DefaultOrganizerMode - - - - - - - - TeamsCallHoldValidationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsCallHoldValidationConfiguration - - - - - - - - - Identity - - - - AudioFileValidationEnabled - - - - AudioFileValidationUri - - - - - - - - TeamsEducationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEducationConfiguration - - - - - - - - - Identity - - - - ParentGuardianPreferredContactMethod - - - - EduGenerativeAIEnhancements - - - - UpdateParentInformation - - - - - - - - TeamsMeetingTemplateConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplateConfiguration - - - - - - - - - Identity - - - - TeamsMeetingTemplates - - - - Description - - - - - - - - TeamsMeetingTemplateTypeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingTemplateType - - - - - - - - - Identity - - - - TeamsMeetingOptions - - - - Description - - - - Name - - - - Category - - - - - - - - TeamsMeetingOptionView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingOption - - - - - - - - - IsLocked - - - - IsHidden - - - - Value - - - - Name - - - - - - - - TeamsFirstPartyMeetingTemplateConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsFirstPartyMeetingTemplateConfiguration - - - - - - - - - Identity - - - - TeamsMeetingTemplates - - - - Description - - - - - - - - TeamsMessagingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMessagingConfiguration - - - - - - - - - Identity - - - - EnableVideoMessageCaptions - - - - EnableInOrganizationChatControl - - - - CustomEmojis - - - - Storyline - - - - MessagingNotes - - - - FileTypeCheck - - - - UrlReputationCheck - - - - ContentBasedPhishingCheck - - - - ReportIncorrectSecurityDetections - - - - - - - - CustomBannerTextView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CustomBannerText - - - - - - - - - Identity - - - - Id - - - - Text - - - - Description - - - - - - - - TeamsExternalAccessConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsExternalAccessConfiguration - - - - - - - - - Identity - - - - BlockedUsers - - - - BlockExternalUserAccess - - - - - - - - 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 - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsTenantAbuseConfiguration - - - - - - - - - Identity - - - - BlockedTenants - - - - LowSeatLimit - - - - TrialTenantValidation - - - - SkipValidation - - - - CreateThreadThresholdPerSeat - - - - AddMemberThresholdPerSeat - - - - SendMessageThresholdPerSeat - - - - CreateThreadThresholdForTrialTenants - - - - AddMemberThresholdForTrialTenants - - - - SendMessageThresholdForTrialTenants - - - - - - - - TenantMigrationConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantMigrationConfiguration - - - - - - - - - Identity - - - - MeetingMigrationEnabled - - - - - - - - TenantNetworkConfigurationSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantNetworkConfigurationSettings - - - - - - - - - Identity - - - - NetworkRegions - - - - NetworkSites - - - - Subnets - - - - PostalCodes - - - - - - - - NetworkRegionTypeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NetworkRegionType - - - - - - - - - Identity - - - - Description - - - - CentralSite - - - - NetworkRegionID - - - - - - - - NetworkSiteTypeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NetworkSiteType - - - - - - - - - Identity - - - - Description - - - - NetworkRegionID - - - - LocationPolicyID - - - - SiteAddress - - - - NetworkSiteID - - - - OnlineVoiceRoutingPolicyTagID - - - - EnableLocationBasedRouting - - - - EmergencyCallRoutingPolicyTagID - - - - EmergencyCallingPolicyTagID - - - - NetworkRoamingPolicyTagID - - - - EmergencyCallRoutingPolicyName - - - - EmergencyCallingPolicyName - - - - NetworkRoamingPolicyName - - - - - - - - SubnetTypeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.SubnetType - - - - - - - - - Identity - - - - Description - - - - NetworkSiteID - - - - MaskBits - - - - SubnetID - - - - - - - - PostalCodeTypeView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PostalCodeType - - - - - - - - - Identity - - - - Description - - - - NetworkSiteID - - - - PostalCode - - - - CountryCode - - - - - - - - TrustedIPView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TrustedIP - - - - - - - - - Identity - - - - MaskBits - - - - Description - - - - IPAddress - - - - - - - - VideoInteropServiceProviderView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VideoInteropServiceProvider - - - - - - - - - Identity - - - - Name - - - - AadApplicationIds - - - - TenantKey - - - - InstructionUri - - - - AllowAppGuestJoinsAsAuthenticated - - - - - - - - UcPhoneSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.UcPhoneSettings - - - - - - - - - Identity - - - - CalendarPollInterval - - - - EnforcePhoneLock - - - - PhoneLockTimeout - - - - MinPhonePinLength - - - - SIPSecurityMode - - - - VoiceDiffServTag - - - - Voice8021p - - - - LoggingLevel - - - - - - - - UnassignedNumberTreatmentView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.UnassignedNumberTreatment - - - - - - - - - Identity - - - - TreatmentId - - - - Pattern - - - - TargetType - - - - Target - - - - TreatmentPriority - - - - Description - - - - - - - - UserServicesSettingsView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.UserServicesSettings - - - - - - - - - Identity - - - - PresenceProviders - - - - $_.MaintenanceTimeOfDay.ToShortTimeString() - - - - MinSubscriptionExpiration - - - - MaxSubscriptionExpiration - - - - DefaultSubscriptionExpiration - - - - AnonymousUserGracePeriod - - - - DeactivationGracePeriod - - - - MaxScheduledMeetingsPerOrganizer - - - - AllowNonRoomSystemNotification - - - - MaxSubscriptions - - - - MaxContacts - - - - MaxPersonalNotes - - - - SubscribeToCollapsedDG - - - - StateReplicationFlag - - - - TestFeatureList - - - - TestParameterList - - - - - - - - PresenceProviderView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PresenceProvider - - - - - - - - - Identity - - - - Fqdn - - - - - - - - PrivacyConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivacyConfiguration - - - - - - - - - Identity - - - - EnablePrivacyMode - - - - AutoInitiateContacts - - - - PublishLocationDataDefault - - - - DisplayPublishedPhotoDefault - - - - - - - - MeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.MeetingConfiguration - - - - - - - - - Identity - - - - PstnCallersBypassLobby - - - - EnableAssignedConferenceType - - - - DesignateAsPresenter - - - - AssignedConferenceTypeByDefault - - - - AdmitAnonymousUsersByDefault - - - - RequireRoomSystemsAuthorization - - - - LogoURL - - - - LegalURL - - - - HelpURL - - - - CustomFooterText - - - - AllowConferenceRecording - - - - AllowCloudRecordingService - - - - EnableMeetingReport - - - - UserUriFormatForStUser - - - - - - - - RoutingDataSyncAgentConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.RoutingDataSyncAgentConfiguration - - - - - - - - - Identity - - - - Enabled - - - - BatchesPerTransaction - - - - - - - - UserStoreConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.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 - - - - - - - - BroadcastMeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.BroadcastMeetingConfiguration - - - - - - - - - Identity - - - - EnableBroadcastMeeting - - - - EnableOpenBroadcastMeeting - - - - EnableBroadcastMeetingRecording - - - - EnableAnonymousBroadcastMeeting - - - - EnforceBroadcastMeetingRecording - - - - BroadcastMeetingSupportUrl - - - - EnableSdnProviderForBroadcastMeeting - - - - SdnFallbackAttendeeThresholdCountForBroadcastMeeting - - - - EnableTechPreviewFeatures - - - - - - - - CloudMeetingConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingConfiguration - - - - - - - - - Identity - - - - EnableAutoSchedule - - - - - - - - CloudVideoInteropConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudVideoInteropConfiguration - - - - - - - - - Identity - - - - EnableCloudVideoInterop - - - - AllowLobbyBypass - - - - - - - - CloudMeetingServiceConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.CloudMeetingServiceConfiguration - - - - - - - - - Identity - - - - SchedulingUrl - - - - DiscoveryUrl - - - - - - - - TestConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.TestConfiguration - - - - - - - - - Identity - - - - Name - - - - DialedNumber - - - - TargetDialplan - - - - TargetVoicePolicy - - - - ExpectedTranslatedNumber - - - - ExpectedUsage - - - - ExpectedRoute - - - - - - - - VoiceConfigurationView - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoiceConfiguration - - - - - - - - - Identity - - - - VoiceTestConfigurations - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 deleted file mode 100644 index 47d429e8c11da..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1 +++ /dev/null @@ -1,579 +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 = '21.4.4' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '048c99d9-471a-4935-a810-542687c5f950' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams OCE cmdlets module for Policy Administration' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = '*' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'New-CsTeamsAppSetupPolicy', - 'Get-CsTeamsAppSetupPolicy', - 'Remove-CsTeamsAppSetupPolicy', - 'Set-CsTeamsAppSetupPolicy', - 'Grant-CsTeamsAppSetupPolicy', - - - 'New-CsTeamsAppPermissionPolicy', - 'Get-CsTeamsAppPermissionPolicy', - 'Remove-CsTeamsAppPermissionPolicy', - 'Set-CsTeamsAppPermissionPolicy', - 'Grant-CsTeamsAppPermissionPolicy', - - 'New-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', - 'Get-CsTeamsMessagingPolicy', - 'Remove-CsTeamsMessagingPolicy', - - 'New-CsTeamsChannelsPolicy', - 'Get-CsTeamsChannelsPolicy', - 'Remove-CsTeamsChannelsPolicy', - 'Set-CsTeamsChannelsPolicy', - - 'New-CsTeamsUpdateManagementPolicy', - 'Get-CsTeamsUpdateManagementPolicy', - 'Remove-CsTeamsUpdateManagementPolicy', - 'Set-CsTeamsUpdateManagementPolicy', - - 'Get-CsTeamsUpgradeConfiguration', - 'Set-CsTeamsUpgradeConfiguration', - - 'New-CsTeamsMeetingPolicy', - 'Get-CsTeamsMeetingPolicy', - 'Remove-CsTeamsMeetingPolicy', - 'Set-CsTeamsMeetingPolicy', - - 'Get-CsOnlineVoicemailPolicy', - 'New-CsOnlineVoicemailPolicy', - 'Remove-CsOnlineVoicemailPolicy', - 'Set-CsOnlineVoicemailPolicy', - - 'Get-CsOnlineVoicemailValidationConfiguration', - 'Set-CsOnlineVoicemailValidationConfiguration', - - 'New-CsTeamsFeedbackPolicy', - 'Get-CsTeamsFeedbackPolicy', - 'Remove-CsTeamsFeedbackPolicy', - 'Set-CsTeamsFeedbackPolicy', - - 'New-CsTeamsMeetingBrandingPolicy', - 'Get-CsTeamsMeetingBrandingPolicy', - 'Remove-CsTeamsMeetingBrandingPolicy', - 'Set-CsTeamsMeetingBrandingPolicy', - 'Grant-CsTeamsMeetingBrandingPolicy' - - 'New-CsTeamsMeetingBrandingTheme', - 'New-CsTeamsMeetingBackgroundImage', - 'New-CsTeamsNdiAssuranceSlate', - - 'New-CsTeamsEmergencyCallingPolicy', - 'Get-CsTeamsEmergencyCallingPolicy', - 'Remove-CsTeamsEmergencyCallingPolicy', - 'Set-CsTeamsEmergencyCallingPolicy', - 'New-CsTeamsEmergencyCallingExtendedNotification', - - 'New-CsTeamsCallHoldPolicy', - 'Get-CsTeamsCallHoldPolicy', - 'Remove-CsTeamsCallHoldPolicy', - 'Set-CsTeamsCallHoldPolicy', - - 'Get-CsOnlineVoicemailValidationConfiguration', - 'Set-CsOnlineVoicemailValidationConfiguration', - 'Get-CsTeamsMessagingConfiguration', - 'Set-CsTeamsMessagingConfiguration', - - 'New-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsVoiceApplicationsPolicy', - 'Remove-CsTeamsVoiceApplicationsPolicy', - 'Set-CsTeamsVoiceApplicationsPolicy', - - 'New-CsTeamsHiddenMeetingTemplate', - - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', - - "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", - "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", - "New-CsCustomPrompt", - "New-CsCustomPromptPackage", - - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', - - 'New-CsTeamsEventsPolicy', - 'Get-CsTeamsEventsPolicy', - 'Remove-CsTeamsEventsPolicy', - 'Set-CsTeamsEventsPolicy', - 'Grant-CsTeamsEventsPolicy', - - 'New-CsTeamsCallingPolicy', - 'Get-CsTeamsCallingPolicy', - 'Remove-CsTeamsCallingPolicy', - 'Set-CsTeamsCallingPolicy', - 'Grant-CsTeamsCallingPolicy', - - 'New-CsTeamsPersonalAttendantPolicy', - 'Get-CsTeamsPersonalAttendantPolicy', - 'Remove-CsTeamsPersonalAttendantPolicy', - 'Set-CsTeamsPersonalAttendantPolicy', - 'Grant-CsTeamsPersonalAttendantPolicy', - - 'New-CsExternalAccessPolicy', - 'Get-CsExternalAccessPolicy', - 'Remove-CsExternalAccessPolicy', - 'Set-CsExternalAccessPolicy', - 'Grant-CsExternalAccessPolicy', - - 'Get-CsTeamsMultiTenantOrganizationConfiguration', - 'Set-CsTeamsMultiTenantOrganizationConfiguration', - - 'New-CsLocationPolicy', - 'Get-CsLocationPolicy', - 'Remove-CsLocationPolicy', - 'Set-CsLocationPolicy', - - 'New-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Get-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Set-CsTeamsCarrierEmergencyCallRoutingPolicy', - 'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy', - - 'Get-CsTenantConfiguration', - 'Set-CsTenantConfiguration', - - 'Get-CsTenantNetworkSite', - - 'New-CsTeamsShiftsPolicy', - 'Get-CsTeamsShiftsPolicy', - 'Remove-CsTeamsShiftsPolicy', - 'Set-CsTeamsShiftsPolicy', - 'Grant-CsTeamsShiftsPolicy', - - 'New-CsTeamsHiddenTemplate', - - 'New-CsTeamsTemplatePermissionPolicy', - 'Get-CsTeamsTemplatePermissionPolicy', - 'Remove-CsTeamsTemplatePermissionPolicy', - 'Set-CsTeamsTemplatePermissionPolicy', - - 'Get-CsTeamsAppPolicyConfiguration', - 'Set-CsTeamsAppPolicyConfiguration', - - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - - 'New-CsTeamsVirtualAppointmentsPolicy', - 'Get-CsTeamsVirtualAppointmentsPolicy', - 'Remove-CsTeamsVirtualAppointmentsPolicy', - 'Set-CsTeamsVirtualAppointmentsPolicy', - 'Grant-CsTeamsVirtualAppointmentsPolicy', - - 'New-CsTeamsComplianceRecordingPolicy', - 'Get-CsTeamsComplianceRecordingPolicy', - 'Remove-CsTeamsComplianceRecordingPolicy', - 'Set-CsTeamsComplianceRecordingPolicy', - - 'New-CsTeamsComplianceRecordingApplication', - 'Get-CsTeamsComplianceRecordingApplication', - 'Remove-CsTeamsComplianceRecordingApplication', - 'Set-CsTeamsComplianceRecordingApplication', - - 'New-CsTeamsComplianceRecordingPairedApplication', - - 'New-CsTeamsSharedCallingRoutingPolicy', - 'Get-CsTeamsSharedCallingRoutingPolicy', - 'Remove-CsTeamsSharedCallingRoutingPolicy', - 'Set-CsTeamsSharedCallingRoutingPolicy', - 'Grant-CsTeamsSharedCallingRoutingPolicy', - - 'New-CsTeamsVdiPolicy', - 'Get-CsTeamsVdiPolicy', - 'Remove-CsTeamsVdiPolicy', - 'Set-CsTeamsVdiPolicy', - 'Grant-CsTeamsVdiPolicy', - - 'Get-CsTeamsMeetingConfiguration', - 'Set-CsTeamsMeetingConfiguration', - - 'New-CsTeamsCustomBannerText', - 'Get-CsTeamsCustomBannerText', - 'Set-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', - - 'Get-CsTeamsEducationConfiguration', - 'Set-CsTeamsEducationConfiguration', - - 'New-CsTeamsWorkLocationDetectionPolicy', - 'Get-CsTeamsWorkLocationDetectionPolicy', - 'Remove-CsTeamsWorkLocationDetectionPolicy', - 'Set-CsTeamsWorkLocationDetectionPolicy', - 'Grant-CsTeamsWorkLocationDetectionPolicy', - - 'New-CsTeamsMediaConnectivityPolicy', - 'Get-CsTeamsMediaConnectivityPolicy', - 'Remove-CsTeamsMediaConnectivityPolicy', - 'Set-CsTeamsMediaConnectivityPolicy', - 'Grant-CsTeamsMediaConnectivityPolicy', - - 'New-CsTeamsRecordingRollOutPolicy', - 'Get-CsTeamsRecordingRollOutPolicy', - 'Remove-CsTeamsRecordingRollOutPolicy', - 'Set-CsTeamsRecordingRollOutPolicy', - 'Grant-CsTeamsRecordingRollOutPolicy', - - 'New-CsTeamsFilesPolicy', - 'Get-CsTeamsFilesPolicy', - 'Remove-CsTeamsFilesPolicy', - 'Set-CsTeamsFilesPolicy', - 'Grant-CsTeamsFilesPolicy', - - 'Get-CsTeamsExternalAccessConfiguration', - 'Set-CsTeamsExternalAccessConfiguration', - - 'New-CsConversationRole', - 'Remove-CsConversationRole', - 'Get-CsConversationRole', - 'Set-CsConversationRole', - - 'Get-CsConversationRolesSetting', - 'Set-CsConversationRolesSetting', - - 'Get-CsTeamsAIPolicy', - 'Set-CsTeamsAIPolicy', - 'New-CsTeamsAIPolicy', - 'Remove-CsTeamsAIPolicy', - 'Grant-CsTeamsAIPolicy', - - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', - - 'Get-CsTeamsTenantAbuseConfiguration', - 'Set-CsTeamsTenantAbuseConfiguration', - - 'Get-CsTeamsEducationAssignmentsAppPolicy', - 'Set-CsTeamsEducationAssignmentsAppPolicy', - - 'Get-CsPrivacyConfiguration', - 'Set-CsPrivacyConfiguration', - - 'Get-CsTeamsNotificationAndFeedsPolicy', - 'Set-CsTeamsNotificationAndFeedsPolicy', - 'Remove-CsTeamsNotificationAndFeedsPolicy' - - 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration', - - 'Get-CsTeamsAcsFederationConfiguration', - 'Set-CsTeamsAcsFederationConfiguration' -) - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{} - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoRgYJKoZIhvcNAQcCoIIoNzCCKDMCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDDXuHz1JaXPYkJ -# QDhNbRvXPHHPibt4v/Y646nlvU08sqCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy -# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi -# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ -# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ -# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe -# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk -# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj -# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS -# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns -# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO -# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 -# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 -# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk -# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm -# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn -# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo -# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBdiKccaQG4X/u061i5uhu0n -# Ywb27AT8bsv5He1eQ2r7MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAKuf/iSExCIw3oJlOtgwtA37Krdnwlp+UcXjIdx1TQwZylQYJqQVVQSqX -# F9TL1JkJLzxCJCAirAkdnbi9QFM9ta3LZWDeT7lJ+6wNwiHTnLh5b/GcOfA6ELiY -# oWDdRwxGtEnzUVm6AVKrJzy2dpE6j6gh+xfZfArdBH40PwwSu4nx4mNCLaiVA9KI -# UgjvhgPlBCC73fkpD+5HyYncGISj7cjFVw4rfUcVJyGUj1HkwTZ6QJHHUdS2rjaG -# 6OJpTMS2uVr/p9IxF33VpdFE8jGpTicuXUgShEqdDy0S0cmgVu3iGfxcYddbc0Gy -# DBcPBtTYmPXYAhQD81DlfcEK7KIogqGCF7AwghesBgorBgEEAYI3AwMBMYIXnDCC -# F5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFaBgsq -# hkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBhv5RIaqJJyUFCk1NBe+Z7LNL5oc9PS5qo577DdQkVNwIGaKOvjL6J -# GBMyMDI1MTAwMTA4MzMwMi40ODZaMASAAgH0oIHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9njXWrpPGxAAEAAAH5MA0G -# CSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTI0 -# MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9w -# ZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjJBMUEt -# MDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtD1MH3yAHWHNVslC+CBT -# j/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BOJUiYg7fDJ2AxGVGyovUt -# gGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONWy6lOyGZwZpxfV2EX4qAh -# 6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2ps8Nc1xr41N8Qi3KVJLY -# X0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2KDJ2sQRFFF/egCxKgogd -# F3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN8hiMc8Z47RRJuIWCOeyI -# J1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57ITXsD9DPOob8tjtsefPc -# QJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5DHM4ovCmD3lifgYnzjOry -# 4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby44kGVK8MzY9s32Dy1THn -# Jg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRVUx2G/0Tr7Dk3fpCU8u+5 -# olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1HvNIBpSNNuTBQk7FBvu+ -# Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0GA1UdDgQWBBSJ7aO6nJXJ -# I9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBf -# BgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmww -# bAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29m -# dC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0El -# MjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUF -# BwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAZiAJgFbkf7jf -# hx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG2CcdoXaq7VgpVkNf1uvI -# hrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0ktH+EkEuGXs9DBLyt71iut -# Vkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2q5TjmrgEKyPe3TApAio8 -# cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/uizP1NuHSxF/V1ks/2tCEo -# riicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+Ud9Va3Iw9Bs4ccrkgBjLt -# g3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y6Si3AaNINt/pOMKU6l4A -# W0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qIVBZJ2XQpnhEuRbh+Agpm -# Rn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhncFetJ0ZK36wxAa3FiPgBe -# bRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B0s8RiFBMf/W7+O7EPZ+w -# MH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojzuCEahSAcq86yjwQeTPN9 -# YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaADAgECAhMzAAAAFcXna54C -# m0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UE -# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z -# b2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZp -# Y2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMy -# MjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH -# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV -# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0B -# AQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51 -# yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY -# 6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9 -# cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN -# 7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDua -# Rr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74 -# kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2 -# K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5 -# TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZk -# i1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q -# BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3Pmri -# Lq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUC -# BBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJl -# pxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIB -# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y -# eS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUA -# YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -# 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny -# bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw -# MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w -# Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/yp -# b+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulm -# ZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM -# 9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECW -# OKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4 -# FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3Uw -# xTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPX -# fx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVX -# VAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGC -# onsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU -# 5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG -# ahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHWMIHTMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJl -# bGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVT -# TjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg -# U2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAKmIcdwhqgZvyp6UaggYMw -# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsF -# AAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1MTAwMTIyMzgxN1owdzA9 -# BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEAAgInWgIB/zAHAgEAAgIS -# RDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAow -# CAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQA0HygGCzYY -# EljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztwxcaklxi1JIufA2sghpxf -# O1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4Ih4F80N3N244nRix969BP -# nYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1cEzI5Hypvq/WH0ZzZF7BS -# Pu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoXxW6kWpyX51pxERwDxHfe -# YKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQOhyj/efZBnp2gn+TMH95Q -# 84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m -# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB -# IDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZIAWUDBAIBBQCgggFKMBoG -# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgdt9mntJj -# RBBWyP56rXOrvH2NmW5HQz5/jRtbgga5YPUwgfoGCyqGSIb3DQEJEAIvMYHqMIHn -# MIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8VeCO5SbGLYEDCBmDCBgKR+ -# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS -# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT -# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB+R9njXWrpPGxAAEA -# AAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6OcpV+4JnCfMA0GCSqGSIb3 -# DQEBCwUABIICAFjI+sbIrIaktP9RfROriM1eSOHmoZ05V5eKCM48uBgqw1KEomYa -# d2cgcf0RVoKwNEl4X5t+DCIdzNFL30Hfw9WvPkcBuoiEisCL7edhiENRVEGYEqXg -# ACQj64vM7zwyP4IHiPJZmsp6QCzO2kMbzyBNUkR86nW76L/6D3WhAmdTkdZDaPSJ -# MR7ZSIQnM3UowGho2xJbb75nslbQuxFyafeePjS82nT5NIjXuMJZ/SBD95oXBG3U -# AGL8hMe5S5gL1+xlrQm88LBKj3GMUUNotJGHjpxbIeInCZDi63LPwp/AY/w2UOtN -# MbJXwZaiSglyHxzXD8fD3gewJElRz7oxwmw6n8hEEtyTwiC1npgOJIb03Ha1ziDs -# 0rKGbrWKPgs27vcI3QFnMhWVYx2M5SywMy5DBLGttnS0ZA0xfHHo9abRAw/oZ0X9 -# mCub1465EFSW6l5ZxqGRfIDW0p9U5jKLeF9x4OP7vtMeaRz5/FlpC7cHhrJmD3uh -# xH5CZCK8p5/Rb7kD1kzf166XIB5Xt0Jdd8x900lANSY7wDuSaVWk7iWTfrzzOLiD -# nnPBoOEsGJ1hEEZlPIisXL04A4mkVxzsx7Rod8J8IgDXw9Zl8yqOt2Xh8F5zbXfB -# Ch5Yj/mLAW1CeMCNaTZHUKfmj54J+lnHmC7vXXiuVz/sdC71uegGlaMF -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 deleted file mode 100644 index 3e77a59da4b9d..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1 +++ /dev/null @@ -1,536 +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 = '21.4.4' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '048c99d9-471a-4935-a810-542687c5f950' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams preview cmdlets module for Policy Administration' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = '*' - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'New-CsTeamsAppSetupPolicy', - 'Get-CsTeamsAppSetupPolicy', - 'Remove-CsTeamsAppSetupPolicy', - 'Set-CsTeamsAppSetupPolicy', - 'Grant-CsTeamsAppSetupPolicy', - - 'New-CsTeamsAppPermissionPolicy', - 'Get-CsTeamsAppPermissionPolicy', - 'Remove-CsTeamsAppPermissionPolicy', - 'Set-CsTeamsAppPermissionPolicy', - 'Grant-CsTeamsAppPermissionPolicy', - - 'New-CsTeamsMessagingPolicy', - 'Get-CsTeamsMessagingPolicy', - 'Remove-CsTeamsMessagingPolicy', - 'Set-CsTeamsMessagingPolicy', - - 'New-CsTeamsChannelsPolicy', - 'Get-CsTeamsChannelsPolicy', - 'Remove-CsTeamsChannelsPolicy', - 'Set-CsTeamsChannelsPolicy', - - 'New-CsTeamsUpdateManagementPolicy', - 'Get-CsTeamsUpdateManagementPolicy', - 'Remove-CsTeamsUpdateManagementPolicy', - 'Set-CsTeamsUpdateManagementPolicy', - - 'Get-CsTeamsUpgradeConfiguration', - 'Set-CsTeamsUpgradeConfiguration', - - 'Get-CsTeamsSipDevicesConfiguration', - 'Set-CsTeamsSipDevicesConfiguration', - - 'New-CsTeamsMeetingPolicy', - 'Get-CsTeamsMeetingPolicy', - 'Remove-CsTeamsMeetingPolicy', - 'Set-CsTeamsMeetingPolicy', - - 'New-CsOnlineVoicemailPolicy', - 'Get-CsOnlineVoicemailPolicy', - 'Remove-CsOnlineVoicemailPolicy', - 'Set-CsOnlineVoicemailPolicy', - - 'New-CsTeamsFeedbackPolicy', - 'Get-CsTeamsFeedbackPolicy', - 'Remove-CsTeamsFeedbackPolicy', - 'Set-CsTeamsFeedbackPolicy', - - 'New-CsTeamsMeetingBrandingPolicy', - 'Get-CsTeamsMeetingBrandingPolicy', - 'Remove-CsTeamsMeetingBrandingPolicy', - 'Set-CsTeamsMeetingBrandingPolicy', - 'Grant-CsTeamsMeetingBrandingPolicy' - - 'New-CsTeamsMeetingBrandingTheme', - 'New-CsTeamsMeetingBackgroundImage', - 'New-CsTeamsNdiAssuranceSlate', - - 'New-CsTeamsEmergencyCallingPolicy', - 'Get-CsTeamsEmergencyCallingPolicy', - 'Remove-CsTeamsEmergencyCallingPolicy', - 'Set-CsTeamsEmergencyCallingPolicy', - 'New-CsTeamsEmergencyCallingExtendedNotification', - - 'New-CsTeamsCallHoldPolicy', - 'Get-CsTeamsCallHoldPolicy', - 'Remove-CsTeamsCallHoldPolicy', - 'Set-CsTeamsCallHoldPolicy', - - 'Get-CsTeamsMessagingConfiguration', - 'Set-CsTeamsMessagingConfiguration', - - 'New-CsTeamsVoiceApplicationsPolicy', - 'Get-CsTeamsVoiceApplicationsPolicy', - 'Remove-CsTeamsVoiceApplicationsPolicy', - 'Set-CsTeamsVoiceApplicationsPolicy', - - "Get-CsTeamsAudioConferencingCustomPromptsConfiguration", - "Set-CsTeamsAudioConferencingCustomPromptsConfiguration", - "New-CsCustomPrompt", - "New-CsCustomPromptPackage", - - 'New-CsTeamsEventsPolicy', - 'Get-CsTeamsEventsPolicy', - 'Remove-CsTeamsEventsPolicy', - 'Set-CsTeamsEventsPolicy', - 'Grant-CsTeamsEventsPolicy', - - 'New-CsTeamsCallingPolicy', - 'Get-CsTeamsCallingPolicy', - 'Remove-CsTeamsCallingPolicy', - 'Set-CsTeamsCallingPolicy', - 'Grant-CsTeamsCallingPolicy', - - 'New-CsTeamsPersonalAttendantPolicy', - 'Get-CsTeamsPersonalAttendantPolicy', - 'Remove-CsTeamsPersonalAttendantPolicy', - 'Set-CsTeamsPersonalAttendantPolicy', - 'Grant-CsTeamsPersonalAttendantPolicy', - - 'New-CsExternalAccessPolicy', - 'Get-CsExternalAccessPolicy', - 'Remove-CsExternalAccessPolicy', - 'Set-CsExternalAccessPolicy', - 'Grant-CsExternalAccessPolicy', - - 'Get-CsTeamsMultiTenantOrganizationConfiguration', - 'Set-CsTeamsMultiTenantOrganizationConfiguration', - - 'New-CsTeamsHiddenMeetingTemplate', - - 'New-CsTeamsMeetingTemplatePermissionPolicy', - 'Get-CsTeamsMeetingTemplatePermissionPolicy', - 'Set-CsTeamsMeetingTemplatePermissionPolicy', - 'Remove-CsTeamsMeetingTemplatePermissionPolicy', - 'Grant-CsTeamsMeetingTemplatePermissionPolicy', - - 'Get-CsTeamsMeetingTemplateConfiguration', - 'Get-CsTeamsFirstPartyMeetingTemplateConfiguration', - - 'Get-CsTenantNetworkSite', - - 'New-CsTeamsShiftsPolicy', - 'Get-CsTeamsShiftsPolicy', - 'Remove-CsTeamsShiftsPolicy', - 'Set-CsTeamsShiftsPolicy', - 'Grant-CsTeamsShiftsPolicy', - - 'New-CsTeamsHiddenTemplate', - - 'New-CsTeamsTemplatePermissionPolicy', - 'Get-CsTeamsTemplatePermissionPolicy', - 'Remove-CsTeamsTemplatePermissionPolicy', - 'Set-CsTeamsTemplatePermissionPolicy', - - 'New-CsTeamsVirtualAppointmentsPolicy', - 'Get-CsTeamsVirtualAppointmentsPolicy', - 'Remove-CsTeamsVirtualAppointmentsPolicy', - 'Set-CsTeamsVirtualAppointmentsPolicy', - 'Grant-CsTeamsVirtualAppointmentsPolicy', - - 'New-CsTeamsComplianceRecordingPolicy', - 'Get-CsTeamsComplianceRecordingPolicy', - 'Remove-CsTeamsComplianceRecordingPolicy', - 'Set-CsTeamsComplianceRecordingPolicy', - - 'New-CsTeamsComplianceRecordingApplication', - 'Get-CsTeamsComplianceRecordingApplication', - 'Remove-CsTeamsComplianceRecordingApplication', - 'Set-CsTeamsComplianceRecordingApplication', - - 'New-CsTeamsComplianceRecordingPairedApplication', - - 'New-CsTeamsSharedCallingRoutingPolicy', - 'Get-CsTeamsSharedCallingRoutingPolicy', - 'Remove-CsTeamsSharedCallingRoutingPolicy', - 'Set-CsTeamsSharedCallingRoutingPolicy', - 'Grant-CsTeamsSharedCallingRoutingPolicy', - - 'New-CsTeamsVdiPolicy', - 'Get-CsTeamsVdiPolicy', - 'Remove-CsTeamsVdiPolicy', - 'Set-CsTeamsVdiPolicy', - 'Grant-CsTeamsVdiPolicy', - - - 'Get-CsTeamsMeetingConfiguration', - 'Set-CsTeamsMeetingConfiguration', - - 'New-CsTeamsCustomBannerText', - 'Get-CsTeamsCustomBannerText', - 'Remove-CsTeamsCustomBannerText', - 'Set-CsTeamsCustomBannerText', - - 'New-CsTeamsWorkLocationDetectionPolicy', - 'Get-CsTeamsWorkLocationDetectionPolicy', - 'Remove-CsTeamsWorkLocationDetectionPolicy', - 'Set-CsTeamsWorkLocationDetectionPolicy', - 'Grant-CsTeamsWorkLocationDetectionPolicy', - - 'New-CsTeamsMediaConnectivityPolicy', - 'Get-CsTeamsMediaConnectivityPolicy', - 'Remove-CsTeamsMediaConnectivityPolicy', - 'Set-CsTeamsMediaConnectivityPolicy', - 'Grant-CsTeamsMediaConnectivityPolicy', - - 'New-CsTeamsRecordingRollOutPolicy', - 'Get-CsTeamsRecordingRollOutPolicy', - 'Remove-CsTeamsRecordingRollOutPolicy', - 'Set-CsTeamsRecordingRollOutPolicy', - 'Grant-CsTeamsRecordingRollOutPolicy', - - 'New-CsTeamsFilesPolicy', - 'Get-CsTeamsFilesPolicy', - 'Remove-CsTeamsFilesPolicy', - 'Set-CsTeamsFilesPolicy', - 'Grant-CsTeamsFilesPolicy', - - 'Get-CsTeamsExternalAccessConfiguration', - 'Set-CsTeamsExternalAccessConfiguration', - - 'New-CsConversationRole', - 'Remove-CsConversationRole', - 'Get-CsConversationRole', - 'Set-CsConversationRole', - - 'New-CsTeamsBYODAndDesksPolicy', - 'Get-CsTeamsBYODAndDesksPolicy', - 'Remove-CsTeamsBYODAndDesksPolicy', - 'Set-CsTeamsBYODAndDesksPolicy', - 'Grant-CsTeamsBYODAndDesksPolicy', - - 'Get-CsTeamsAIPolicy', - 'Set-CsTeamsAIPolicy', - 'New-CsTeamsAIPolicy', - 'Remove-CsTeamsAIPolicy', - 'Grant-CsTeamsAIPolicy', - - 'Get-CsTeamsClientConfiguration', - 'Set-CsTeamsClientConfiguration' -) - -# Variables to export from this module -VariablesToExport = @() - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = @() - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{} - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDZT140sYjdx0xT -# /LXVDzxAIHBwkBc+dXfdw3U0HvLrt6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF51 -# 3pH+UdCT12R9jVwu74EHcpGG7d4aN3iDZEQNfgxdMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAH8BBNHdNNVbblxSN/8sHNWXySlnV3pbJtttx -# KRvxL5qNf3TKG03C0WvENi/BakEb8PHJ+RpprPLm5lP6tLN68DXwzifuLhRVM9Xi -# 9b3V+rac09dFPJV6X6e1CjhCKKMHscarPY/yH9dqFQfu28IDTDG5gW1xuTZTKgHx -# 0ubpBYhXGT78QKZsY9U/FG0gtqzWsaC9jPpL2V2xvboE4zwMcjqVb83MdOaBa/Hu -# vhAvvfvNEfPEpfhV7t4D14QAVuDtrftCMmlZ8l4Zh7bk6jpO9bsmJefXBTMex01z -# 3GUDadwSDgZBz5zZTIvy4pkWnlb6vUMlkB+AYgwreajt03Bv7aGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCDXvW2jxcaTJb5RlYetEjiJ1+8nVX5pUDvc -# Lr4K3Oa2YQIGaKOvGf91GBMyMDI1MTAwMTA4MzQwOS43NzRaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 -# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy -# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S -# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK -# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz -# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 -# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk -# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x -# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g -# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH -# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 -# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p -# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK -# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ -# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL -# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS -# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO -# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV -# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R -# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi -# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs -# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK -# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 -# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA -# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ -# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb -# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE -# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB -# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP -# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgzEidHs2UZH6bSpXLsyaY+KDuM3lniHsStSWhmgMVPrcwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l -# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK -# qskwMA0GCSqGSIb3DQEBCwUABIICAJLdXgOEzv43WFXih4PbVrXDZ6C4bv/7+pq0 -# zIXavVhkfixoeCEFixh6cJ6osaLXO4ZLyaDRVX2/nzysxMCarwP9AF1KAt2tmUP/ -# Ldlmu/Z8nvfG9Rx+wPKuXMYtNLfb3Uv0VN8nLICMuaR/J9ebYtOJXrN811qaHNNg -# R9GqIncW1p85rSKmD5+P8zKHvELQB3G/mwX3Wu8yw5GVWbBF+LM5R0Sv/T2nsVsV -# DT3ociqn+UN+E17v2pqUZ9AThTWitba76pyZ2vnvafDEmsKsF7dvgAbeZqTZVYgx -# GAfGI9Lp9Llx29m5mwZkzACbc21LOoM0FTEyRaHjLVmpBi6CQdxKaWRubgIVMbdg -# 1Fs/rdXDdENwvgFt4VVoj/CF8K3vFLgj8SbrZbl63+XMmHFxFlWVgOZiP9HlXUfp -# JVYMtxqc531URNDT6YN43qGiySCL6ErRGoVdH78IcN+kzR0jouKgqaS+7QZMi8wx -# Xnh6twFH4J8smVILUuD9S21wlgCxwVMVcg3x3K6xmOHD3IzERO2yvZoxnBgRzhlr -# wlD3jKON6cqYj4wvbIM3SXjfCNlH1zTgclv6lTDoouuOvxotZH3BJw50Yu5JxKud -# PJZQVglDBV2DefNdegyaas82XCxe1+ZWn1TBuEZM4NLxhAchdZL0RXPe8EV4mrfQ -# hFJJFhX4 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 deleted file mode 100644 index fbe62dc7b4487..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1 +++ /dev/null @@ -1,558 +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 = '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 deleted file mode 100644 index c47ea77902678..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1 +++ /dev/null @@ -1,238 +0,0 @@ -$path = Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll' - -if (test-path $path) -{ - $null = Import-Module -Name $path -} -else -{ - if ($PSEdition -ne 'Desktop') - { - $null = Import-Module -Name (Join-Path $PSScriptRoot 'netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') - } - else - { - $null = Import-Module -Name (Join-Path $PSScriptRoot 'net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll') - } -} - -gci (Join-Path $PSScriptRoot 'Microsoft.Teams.Policy.Administration.Cmdlets.Core.*.ps1xml') | % {Update-FormatData -PrependPath $_ } - -# SIG # Begin signature block -# 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/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml deleted file mode 100644 index 69719455253bb..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core - - - - - 'Applies a PSListModifier to a collection. - The collection either has the items in modifier.Add added and those in modifier.Remove removed, - or is replaced entirely with the items in modifier.Replace. - keyEqualityPredicate is called during a remove operation to determine if an item in the collection - is the same as an item in the modifier - reference equality is not sufficient. - - - - - 'Applies a PSListModifier to a collection. - The collection either has the items in modifier.Add added and those in modifier.Remove removed, - or is replaced entirely with the items in modifier.Replace. - This overload is used then the objects in the collection can be compared correctly with those - in the modifier by calling .Equals(). - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml deleted file mode 100644 index 4858d2a33c165..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml +++ /dev/null @@ -1,260 +0,0 @@ - - - - - TeamsAIPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.TeamsAIPolicy - - - - - - - - - Identity - - - - Description - - - - EnrollFace - - - - EnrollVoice - - - - SpeakerAttributionForBYOD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml deleted file mode 100644 index b9ec3ea423695..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml +++ /dev/null @@ -1,252 +0,0 @@ - - - - - TeamsAudioConferencingPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.TeamsAudioConferencingPolicy - - - - - - - - - Identity - - - - MeetingInvitePhoneNumbers - - - - AllowTollFreeDialin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml deleted file mode 100644 index 83440f7bcb43f..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsBYODAndDesksPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.TeamsBYODAndDesksPolicy - - - - - - - - - Identity - - - - DeviceDataCollection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml deleted file mode 100644 index c38cc9747d744..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsMediaConnectivityPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.TeamsMediaConnectivityPolicy - - - - - - - - - Identity - - - - DirectConnection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml deleted file mode 100644 index 4ab7d366facdd..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml +++ /dev/null @@ -1,276 +0,0 @@ - - - - - TeamsPersonalAttendantPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.TeamsPersonalAttendantPolicy - - - - - - - - - Identity - - - - PersonalAttendant - - - - CallScreening - - - - CalendarBookings - - - - InboundInternalCalls - - - - InboundFederatedCalls - - - - InboundPSTNCalls - - - - AutomaticTranscription - - - - AutomaticRecording - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml deleted file mode 100644 index a2b5ce7c42be6..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - TeamsRecordingRollOutPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.TeamsRecordingRollOutPolicy - - - - - - - - - Identity - - - - MeetingRecordingOwnership - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml deleted file mode 100644 index cd725d2167a6e..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - TeamsVirtualAppointmentsPolicyView - - Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.TeamsVirtualAppointmentsPolicy - - - - - - - - - Identity - - - - EnableSmsNotifications - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml deleted file mode 100644 index 0931a82b11e9d..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/7.4.0/Microsoft.Teams.Policy.Administration.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 deleted file mode 100644 index 0d82e99848a18..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psd1 +++ /dev/null @@ -1,319 +0,0 @@ -# -# Module manifest for module 'MicrosoftTeamsPolicyAdministration' -# -# Generated by: Microsoft Corporation -# -# Updated on: 1/31/2022 -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './Microsoft.Teams.Policy.Administration.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 = '*' - -# 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 -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAizEF7EthEfKhr -# v64YI3/+SMJkAC9oh3WCsRWG4pdusqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# 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 -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIN0s -# HqoqWu/70zfwRQjHbRI9tcwpjpUnzXMkIHBvxTZHMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAI886RwfaaT8kZaw3qXMyp4W63nmO5MUXdY5A -# gS41vNrTI9mB9OxxyZarmrAnVzWBP0f1bUnzWZjB3B7Ny0ZRFwdtdklKTQ4FSqsZ -# vcGSXJDiv8SxkC9mF3/BfUCSkerw8yWq6At3BmwI9pvp733ZzrYCgNG4FperZanw -# ec2wp2Sz8swhEqf8wlTKcFfhRDRWQWhCWVD2E0UJ1IgHxPpSot6poO3FI6xivTdN -# 2UXMBX6iVv1qARJBCnVxegYeY4ED/5u37weNXkL6HSpoaXHQKJ7C1KzNyTWcYFGo -# dL4IIyQwr+EjtwdbyrekXLByF4Ji5CLCKcJDtVyEEC4NmFD+f6GCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCVdIAtLPSOGpzb8gas4wIWLavonKF3GMvt -# GcIwAuELzQIGaKOxdLn0GBMyMDI1MTAwMTA4MzMwMy43MDdaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/tCo -# wns0IQsBAAEAAAH+MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOFoXDTI1MTAyMjE4MzExOFowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQwMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# vLwhFxWlqA43olsE4PCegZ4mSfsH2YTSKEYv8Gn3362Bmaycdf5T3tQxpP3NWm62 -# YHUieIQXw+0u4qlay4AN3IonI+47Npi9fo52xdAXMX0pGrc0eqW8RWN3bfzXPKv0 -# 7O18i2HjDyLuywYyKA9FmWbePjahf9Mwd8QgygkPtwDrVQGLyOkyM3VTiHKqhGu9 -# BCGVRdHW9lmPMrrUlPWiYV9LVCB5VYd+AEUtdfqAdqlzVxA53EgxSqhp6JbfEKnT -# dcfP6T8Mir0HrwTTtV2h2yDBtjXbQIaqycKOb633GfRkn216LODBg37P/xwhodXT -# 81ZC2aHN7exEDmmbiWssjGvFJkli2g6dt01eShOiGmhbonr0qXXcBeqNb6QoF8jX -# /uDVtY9pvL4j8aEWS49hKUH0mzsCucIrwUS+x8MuT0uf7VXCFNFbiCUNRTofxJ3B -# 454eGJhL0fwUTRbgyCbpLgKMKDiCRub65DhaeDvUAAJT93KSCoeFCoklPavbgQya -# hGZDL/vWAVjX5b8Jzhly9gGCdK/qi6i+cxZ0S8x6B2yjPbZfdBVfH/NBp/1Ln7xb -# eOETAOn7OT9D3UGt0q+KiWgY42HnLjyhl1bAu5HfgryAO3DCaIdV2tjvkJay2qOn -# F7Dgj8a60KQT9QgfJfwXnr3ZKibYMjaUbCNIDnxz2ykCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRvznuJ9SU2g5l/5/b+5CBibbHF3TAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAiT4NUvO2lw+0dDMtsBuxmX2o3lVQqnQkuITAGIGCgI+sl7ZqZOTDd8Lq -# xsH4GWCPTztc3tr8AgBvsYIzWjFwioCjCQODq1oBMWNzEsKzckHxAzYo5Sze7OPk -# MA3DAxVq4SSR8y+TRC2GcOd0JReZ1lPlhlPl9XI+z8OgtOPmQnLLiP9qzpTHwFze -# +sbqSn8cekduMZdLyHJk3Niw3AnglU/WTzGsQAdch9SVV4LHifUnmwTf0i07iKtT -# lNkq3bx1iyWg7N7jGZABRWT2mX+YAVHlK27t9n+WtYbn6cOJNX6LsH8xPVBRYAIR -# VkWsMyEAdoP9dqfaZzwXGmjuVQ931NhzHjjG+Efw118DXjk3Vq3qUI1re34zMMTR -# zZZEw82FupF3viXNR3DVOlS9JH4x5emfINa1uuSac6F4CeJCD1GakfS7D5ayNsaZ -# 2e+sBUh62KVTlhEsQRHZRwCTxbix1Y4iJw+PDNLc0Hf19qX2XiX0u2SM9CWTTjsz -# 9SvCjIKSxCZFCNv/zpKIlsHx7hQNQHSMbKh0/wwn86uiIALEjazUszE0+X6rcObD -# fU4h/O/0vmbF3BMR+45rAZMAETJsRDPxHJCo/5XGhWdg/LoJ5XWBrODL44YNrN7F -# RnHEAAr06sflqZ8eeV3FuDKdP5h19WUnGWwO1H/ZjUzOoVGiV3gwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAhGNHD/a7Q0bQ -# LWVG9JuGxgLRXseggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG3EAwIhgPMjAyNTA5MzAyMjQ2MjRaGA8yMDI1 -# MTAwMTIyNDYyNFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbcQAIBADAHAgEA -# AgI/SzAHAgEAAgISWzAKAgUA7IgtwAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAD/NthVx290gnyfPIhSE9lwc9eWlT8TkCe0jExSnZh8CcFl3AuFYuKzWJU -# agkUZmAXk2Jd0ReNgabW3NtqAlQ1cO/WGUEyp+hizsblzulC1P+pfNfFDfx6IM2O -# aWWzt8xBHA+UwO9ikxd6WQFZlaVCHYPQXYy46lPLvxSpI9Zs3TYkG/6ULP/+y3n2 -# xDYfkKGMl47cDlUd5vSQ/5t7y+RlW5jsOLoMC7R49YQnRf1qeHvYmDcgx6lFbD4H -# H+2Lf1pDKx6V251oLs02QiVMvp+MMErUpGfrSAb09ngYfq47WSLbjLwZWV/n30LZ -# u3592g9gFKouk6SFAmLg3nrQ7hEOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH+0KjCezQhCwEAAQAAAf4wDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgcWvCA7syJSQRcPP6J3M3qUoHDuPVV3NRhh21Dj8LHpEwgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCARhczd/FPInxjR92m2hPWqc+vGOG1+/I0WtkCs -# tyh0eTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /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 deleted file mode 100644 index dac2ec5284fe9..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.psm1 +++ /dev/null @@ -1,248 +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 -# 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/7.4.0/Microsoft.Teams.Policy.Administration.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml deleted file mode 100644 index 22a6afd1c8b0d..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.Policy.Administration.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Microsoft.Teams.Policy.Administration - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml deleted file mode 100644 index 9c5b7f84166a5..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.Module.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Microsoft.Teams.PowerShell.Module - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml deleted file mode 100644 index 33cdaa343deb8..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml +++ /dev/null @@ -1,5742 +0,0 @@ - - - - - Add-TeamChannelUser - Add - TeamChannelUser - - Adds an owner or member to the private channel. - 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 Member into an Owner, first Add-TeamChannelUser -User foo to add them to the members list, then Add-TeamChannelUser -User foo -Role Owner to add them to owner list. - - - - Note: This cmdlet is part of the Public Preview version of Teams PowerShell Module, for more information see Install Teams PowerShell public preview (https://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Add-TeamChannelUser - - GroupId - - GroupId of the parent team - - String - - String - - - None - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - Owner - - String - - String - - - None - - - - - - GroupId - - GroupId of the parent team - - String - - String - - - None - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - Owner - - String - - String - - - None - - - - - - GroupId, DisplayName, User, Role - - - - - - - - - - - - - - - -------------------------- 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. - - - - - - Online Version: - https://docs.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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.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 - - 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 - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Add-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - This example adds a Teams App to Microsoft Teams. - - - - -------------------------- 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" - - This example adds a Teams App to Microsoft Teams with RSC Permissions. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/add-teamsappinstallation - - - - - - Add-TeamUser - Add - TeamUser - - The `Add-TeamUser` adds an owner or member to the team, and to the unified group which backs the team. - - - - This cmdlet adds an owner or member to the team, and to the unified group which backs the team. - > [!Note] > The command will return immediately, but the Teams application will not reflect the update immediately. The change can take between 24 and 48 hours to appear within the Teams client. - - - - Add-TeamUser - - GroupId - - GroupId of the team. - - String - - String - - - None - - - User - - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). - - String - - String - - - None - - - Role - - 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 - - - Member - - - - - - GroupId - - GroupId of the team. - - String - - String - - - None - - - User - - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). - - String - - String - - - None - - - Role - - 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 - - - Member - - - - - - GroupId, User, Role - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Add-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com - - This example adds the user "dmx@example.com" to a group with the id "31f1ff6c-d48c-4f8a-b2e1-abca7fd399df". - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/add-teamuser - - - - - - Get-Team - 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. - - - - 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. - >[!NOTE] >Depending on the number of teams and O365 Groups in your organization and which filters you are using, this cmdlet can take upwards of ten minutes to run. Some of the input parameters are guaranteed unique (e.g. GroupId), and others serve as filters (e.g. -Archived). - - - - Get-Team - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Archived - - 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 - - Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. - - String - - String - - - None - - - GroupId - - Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - Get-Team - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Archived - - 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 - - Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. - - String - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Archived - - 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 - - Filters to return teams with a full match to the provided displayname. As displayname is not unique, this acts as a filter rather than an exact match. Note that this filter value is case-sensitive. - - String - - String - - - None - - - GroupId - - Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - - - UPN, UserID - - - - - - - - - - Team - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> Get-Team -User dmx1@example.com - - Returns all teams that a user (dmx1@example.com) belongs to - - - - -------------------------- Example 2 -------------------------- - PS> Get-Team -Archived $true -Visibility Private - - Returns all teams that are private and have been archived. - - - - -------------------------- Example 3 -------------------------- - PS> Get-Team -MailNickName "BusinessDevelopment" - - Returns the team that matches the specified MailNickName - - - - -------------------------- Example 4 -------------------------- - PS> Get-Team -DisplayName "Sales and Marketing" - - Returns the team that matches the specified DisplayName - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-team - - - New-Team - - - - Set-Team - - - - - - - Get-TeamChannel - Get - TeamChannel - - Get all the channels for a team. - - - - - - - - Get-TeamChannel - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display, Standard or Private (available in private preview) - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display, Standard or Private (available in private preview) - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 - - Get channels of the group. - - - - -------------------------- Example 2 -------------------------- - Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 -MembershipType Private - - Get all private channels of the group. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamchannel - - - - - - Get-TeamChannelUser - Get - TeamChannelUser - - Returns users of a 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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Get-TeamChannelUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Display name of the channel - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Display name of the channel - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamChannelUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Engineering" -Role Owner - - Get owners of channel with display name as "Engineering" - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamchanneluser - - - - - - Get-TeamFunSettings - Get - TeamFunSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's fun settings, run Get-Team. - Gets a team's fun settings. - - - - - - - - Get-TeamFunSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamFunSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamfunsettings - - - - - - Get-TeamGuestSettings - Get - TeamGuestSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's guest settings, run Get-Team. - Gets Team guest settings. - - - - - - - - Get-TeamGuestSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamGuestSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamguestsettings - - - - - - Get-TeamMemberSettings - Get - TeamMemberSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's member settings, run Get-Team. - Gets team member settings. - - - - - - - - Get-TeamMemberSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamMemberSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teammembersettings - - - - - - Get-TeamMessagingSettings - Get - TeamMessagingSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To retrieve a Team's messaging settings, run Get-Team. - Gets team messaging settings. - - - - - - - - Get-TeamMessagingSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamMessagingSettings -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teammessagingsettings - - - - - - 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 Azure Active Directory - - 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 Azure Active Directory - - 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://docs.microsoft.com/powershell/module/teams/get-teamsapp - - - - - - 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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.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 - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - - Get-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - This example gets a Teams App specifying its AppId and the TeamId. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamsappinstallation - - - - - - Get-TeamUser - Get - TeamUser - - Returns users of a team. - - - - Returns an array containing the UPN, UserId, Name and Role of users belonging to an specific GroupId. - - - - Get-TeamUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -Role Owner - - This example returns the UPN, UserId, Name, and Role of the owners of the specified GroupId. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/get-teamuser - - - - - - New-Team - 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://docs.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. - IMPORTANT: Using this cmdlet to create a new team using a template is still in preview. You can install and use the preview module from the PowerShell test gallery. For instructions on installing and using the Teams PowerShell preview module, see Install the pre-release version of the Teams PowerShell module (https://docs.microsoft.com/microsoftteams/install-prerelease-teams-powershell-module). - - - - Creates a new team with user specified settings, and returns a Group object with a GroupID property. Note that Templates are not yet supported in our 1.0 PowerShell release. - - - - 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. - For more details about the naming conventions see here: New-UnifiedGroup (https://docs.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 - - Note: this parameter is not supported in our 1.0 PowerShell release, only in Preview. - 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 - - 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. - - String - - String - - - None - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - True - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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 - - - 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 - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - - SwitchParameter - - - False - - - - New-Team - - Owner - - 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. - - String - - String - - - None - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - True - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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://docs.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). - - String - - String - - - None - - - 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 - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - - SwitchParameter - - - False - - - - - - 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. - For more details about the naming conventions see here: New-UnifiedGroup (https://docs.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 - - Note: this parameter is not supported in our 1.0 PowerShell release, only in Preview. - 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 - - 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. - - String - - String - - - None - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - True - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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://docs.microsoft.com/powershell/module/exchange/get-unifiedgroup?view=exchange-ps). - - 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 - - - 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 - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - GroupId - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-Team -DisplayName "Tech Reads" - - This example creates a team with all parameters with their default values. - - - - -------------------------- Example 2 -------------------------- - New-Team -DisplayName "Tech Reads" -Description "Team to post technical articles and blogs" -Visibility Public - - This example creates a team with a specific description and public visibility. - - - - -------------------------- Example 3 -------------------------- - $group = New-Team -MailNickname "TestTeam" -displayname "Test Teams" -Visibility "private" -Add-TeamUser -GroupId $group.GroupId -User "fred@example.com" -Add-TeamUser -GroupId $group.GroupId -User "john@example.com" -Add-TeamUser -GroupId $group.GroupId -User "wilma@example.com" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Q4 planning" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Exec status" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - - This example creates a team, adds three members to it, and creates three channels within it. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/new-team - - - Remove-Team - - - - Get-Team - - - - Set-Team - - - - - - - New-TeamChannel - New - TeamChannel - - Add a new channel to a team. - - - - > [!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>. - - - - New-TeamChannel - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - Description - - Channel description. Channel description can be up to 1024 characters. - - String - - String - - - None - - - MembershipType (available in private preview) - - Channel membership type, Standard or Private. - - String - - String - - - None - - - Owner (available in private preview) - - UPN of owner that can be specified while creating a private channel. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - Description - - Channel description. Channel description can be up to 1024 characters. - - String - - String - - - None - - - MembershipType (available in private preview) - - Channel membership type, Standard or Private. - - String - - String - - - None - - - Owner (available in private preview) - - UPN of owner that can be specified while creating a private channel. - - String - - String - - - None - - - - - - GroupId, DisplayName, Description, MembershipType, Owner - - - - - - - - - - Id - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Architecture" - - Create a standard channel with display name as "Architecture" - - - - -------------------------- Example 2 -------------------------- - New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Engineering" -MembershipType Private - - Create a private channel with display name as "Engineering" - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/new-teamchannel - - - - - - New-TeamsApp - New - TeamsApp - - Creates a new app in the Teams tenant app store. - - - - Use a Teams app manifest zip file to upload an app to the tenant app store. DistributionMethod specifies that the app should be added to the organization. - - - - New-TeamsApp - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-TeamsApp -DistributionMethod organization -Path c:\Path\SampleApp.zip - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/new-teamsapp - - - - - - Remove-Team - Remove - Team - - This cmdlet deletes a specified Team from Microsoft Teams. - NOTE: The associated Office 365 Unified Group will also be removed. - - - - Removes a specified team via GroupID and all its associated components, like O365 Unified Group... - - - - - Remove-Team - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-Team -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/remove-team - - - New-Team - - - - - - - Remove-TeamChannel - 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. - - - - > [!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 - - Channel name to be deleted - - String - - String - - - 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://docs.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 an 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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Remove-TeamChannelUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - User - - User's UPN (user principal name - 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 UPN (user principal name - 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://docs.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 - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/remove-teamsapp - - - - - - Remove-TeamsAppInstallation - Remove - TeamsAppInstallation - - Removes a Teams App installed 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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Remove-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - - Remove-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - This example removes a Teams App in Microsoft Teams specifying its AppId and TeamId. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/remove-teamsappinstallation - - - - - - Remove-TeamUser - Remove - 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. - - - - - - - - Remove-TeamUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - 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. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Role - - 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. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com -Role Owner - - In this example, the user "dmx" is removed the role Owner but stays as a team member. - - - - -------------------------- Example 2 -------------------------- - Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com - - In this example, the user "dmx" is removed from the team. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/remove-teamuser - - - - - - Set-Team - Set - Team - - This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. - - - - This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. This cmdlet includes all settings that used to be set using the Set-TeamFunSettings, Set-TeamGuestSettings, etc. cmdlets - - - - Set-Team - - 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 - - Team visibility. Valid values are "Private" and "Public" - - String - - String - - - None - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - None - - - AllowChannelMentions - - 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 - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - None - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - None - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - None - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - None - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - None - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - None - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - None - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - None - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - None - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - None - - - 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 - - - None - - - - - - 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 - - Team visibility. Valid values are "Private" and "Public" - - String - - String - - - None - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - None - - - AllowChannelMentions - - 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 - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - None - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - None - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - None - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - None - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - None - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - None - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - None - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - None - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - None - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - None - - - 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 - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-Team -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Updated TeamName" -Visibility Public - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-team - - - Get-Team - - - - New-Team - - - - - - - Set-TeamArchivedState - Set - TeamArchivedState - - This cmdlet is used to freeze all of the team activity, but Teams Administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. - - - - This cmdlet is used to freeze all of the team activity and also specify whether SharePoint site should be marked as Read-Only. Teams administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. - - - - Set-TeamArchivedState - - Archived - - Boolean value that determines whether or not the Team is archived. - - Boolean - - Boolean - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - SetSpoSiteReadOnlyForMembers - - Use this parameter switch to make the SharePoint site read-only for team members. - - Boolean - - Boolean - - - None - - - - - - Archived - - Boolean value that determines whether or not the Team is archived. - - Boolean - - Boolean - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - SetSpoSiteReadOnlyForMembers - - Use this parameter switch to make the SharePoint site read-only for team members. - - Boolean - - Boolean - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true - - This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true -SetSpoSiteReadOnlyForMembers:$true - - This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived and makes the SharePoint site read-only for team members. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$false - - This example unarchives the group with id 105b16e2-dc55-4f37-a922-97551e9e862d. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teamarchivedstate - - - - - - Set-TeamChannel - Set - TeamChannel - - Update Team channels settings. - - - - > [!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>. - - - - Set-TeamChannel - - GroupId - - GroupId of the team - - String - - String - - - None - - - CurrentDisplayName - - Current channel name - - String - - String - - - None - - - NewDisplayName - - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - Description - - Updated Channel description. Channel Description Characters Limit - 1024. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - CurrentDisplayName - - Current channel name - - String - - String - - - None - - - NewDisplayName - - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - Description - - Updated Channel description. Channel Description Characters Limit - 1024. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamChannel -GroupId c58566a6-4bb4-4221-98d4-47677dbdbef6 -CurrentDisplayName TechReads -NewDisplayName "Technical Reads" - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teamchannel - - - - - - Set-TeamFunSettings - Set - TeamFunSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. - Update Giphy, Stickers and Memes settings. - - - - - - - - Set-TeamFunSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowGiphy - - Setting to enable giphy for team - - String - - String - - - None - - - GiphyContentRating - - Settings to set content rating for giphy. Can be "Strict" or "Moderate" - - String - - String - - - None - - - AllowStickersAndMemes - - Enable Stickers and memes - - String - - String - - - None - - - AllowCustomMemes - - Allow custom memes to be uploaded - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowGiphy - - Setting to enable giphy for team - - String - - String - - - None - - - GiphyContentRating - - Settings to set content rating for giphy. Can be "Strict" or "Moderate" - - String - - String - - - None - - - AllowStickersAndMemes - - Enable Stickers and memes - - String - - String - - - None - - - AllowCustomMemes - - Allow custom memes to be uploaded - - String - - String - - - None - - - - - - GroupId, AllowGiphy, GiphyContentRating, AllowStickersAndMemes, AllowCustomMemes - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamFunSettings -GroupId 0ebb500c-f5f3-44dd-b155-cc8c4f383e2d -AllowGiphy true -GiphyContentRating Strict - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teamfunsettings - - - - - - Set-TeamGuestSettings - Set - TeamGuestSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. - Updates team guest settings. - - - - - - - - Set-TeamGuestSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowCreateUpdateChannels - - Settings to create and update channels - - String - - String - - - None - - - AllowDeleteChannels - - Settings to Delete channels - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowCreateUpdateChannels - - Settings to create and update channels - - String - - String - - - None - - - AllowDeleteChannels - - Settings to Delete channels - - String - - String - - - None - - - - - - GroupId - - - - - - - - AllowCreateUpdateChannels - - - - - - - - AllowDeleteChannels - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamGuestSettings -GroupId a61f5a96-a0cf-43db-a7c8-cec05f8a8fc4 -AllowCreateUpdateChannels true - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teamguestsettings - - - - - - Set-TeamMemberSettings - Set - TeamMemberSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. - Updates team member settings. - - - - - - - - Set-TeamMemberSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowCreateUpdateChannels - - Setting to create and update channels - - String - - String - - - None - - - AllowDeleteChannels - - Setting to Delete channels - - String - - String - - - None - - - AllowAddRemoveApps - - Setting to add and remove apps to teams - - String - - String - - - None - - - AllowCreateUpdateRemoveTabs - - Setting to create, update and remove tabs - - String - - String - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting to create, update and remove connectors - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowCreateUpdateChannels - - Setting to create and update channels - - String - - String - - - None - - - AllowDeleteChannels - - Setting to Delete channels - - String - - String - - - None - - - AllowAddRemoveApps - - Setting to add and remove apps to teams - - String - - String - - - None - - - AllowCreateUpdateRemoveTabs - - Setting to create, update and remove tabs - - String - - String - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting to create, update and remove connectors - - String - - String - - - None - - - - - - GroupId - - - - - - - - AllowCreateUpdateChannels - - - - - - - - AllowDeleteChannels - - - - - - - - AllowAddRemoveApps - - - - - - - - AllowCreateUpdateRemoveTabs - - - - - - - - AllowCreateUpdateRemoveConnectors - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamMemberSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowCreateUpdateChannels false - - - - - - -------------------------- Example 2 -------------------------- - Set-TeamMemberSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowDeleteChannels true -AllowAddRemoveApps false - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teammembersettings - - - - - - Set-TeamMessagingSettings - Set - TeamMessagingSettings - - Note: This cmdlet is deprecated as of our 1.0 PowerShell release, and is not supported in our 1.0 release. To set a Team's settings, run Set-Team. - Updates team messaging settings. - - - - - - - - Set-TeamMessagingSettings - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowUserEditMessages - - Setting to allow user to edit messages - - String - - String - - - None - - - AllowUserDeleteMessages - - Setting to allow user to delete messages - - String - - String - - - None - - - AllowOwnerDeleteMessages - - Setting to allow owner to Delete messages - - String - - String - - - None - - - AllowTeamMentions - - Allow @team or @[team name] mentions. This will notify everyone in the team - - String - - String - - - None - - - AllowChannelMentions - - Allow @channel or @[channel name] mentions. This wil notify members who've favorited that channel - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - AllowUserEditMessages - - Setting to allow user to edit messages - - String - - String - - - None - - - AllowUserDeleteMessages - - Setting to allow user to delete messages - - String - - String - - - None - - - AllowOwnerDeleteMessages - - Setting to allow owner to Delete messages - - String - - String - - - None - - - AllowTeamMentions - - Allow @team or @[team name] mentions. This will notify everyone in the team - - String - - String - - - None - - - AllowChannelMentions - - Allow @channel or @[channel name] mentions. This wil notify members who've favorited that channel - - String - - String - - - None - - - - - - GroupId - - - - - - - - AllowUserEditMessages - - - - - - - - AllowUserDeleteMessages - - - - - - - - AllowOwnerDeleteMessages - - - - - - - - AllowTeamMentions - - - - - - - - AllowChannelMentions - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamMessagingSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowUserEditMessages true - - - - - - -------------------------- Example 2 -------------------------- - Set-TeamMessagingSettings -GroupId 4ba546e6-e28d-4645-8cc1-d3575ef9d266 -AllowUserDeleteMessages false -AllowChannelMentions true - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teammessagingsettings - - - - - - Set-TeamPicture - Set - 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. - - - - - - - - Set-TeamPicture - - GroupId - - GroupId of the team - - String - - String - - - None - - - ImagePath - - File path and image ( .png, .gif, .jpg, or .jpeg) - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - ImagePath - - File path and image ( .png, .gif, .jpg, or .jpeg) - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamPicture -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -ImagePath c:\Image\TeamPicture.png - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teampicture - - - - - - Set-TeamsApp - Set - TeamsApp - - Updates an app in the Teams tenant app store. - - - - Use a Teams app manifest zip file to upload an app to the tenant app store. - - - - Set-TeamsApp - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -Path c:\Path\SampleApp.zip - - - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/set-teamsapp - - - - - - Update-TeamsAppInstallation - Update - TeamsAppInstallation - - Update a Teams App in Microsoft Teams. - - - - Update a Teams App 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://docs.microsoft.com/microsoftteams/teams-powershell-install#install-teams-powershell-public-preview) and also see [Microsoft Teams PowerShell Release Notes](https://docs.microsoft.com/microsoftteams/teams-powershell-release-notes). - - - - Update-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - Permissions - - RSC permissions for the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - - Update-TeamsAppInstallation - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - Permissions - - RSC permissions for the Teams App. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - AppId - - Teams App identifier in Microsoft Teams. - - String - - String - - - None - - - AppInstallationId - - Installation identifier of the Teams App. - - String - - String - - - None - - - Permissions - - RSC permissions for the Teams App. - - String - - String - - - None - - - TeamId - - Team identifier in Microsoft Teams. - - String - - String - - - None - - - UserId - - User identifier in Microsoft Teams. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Update-TeamsAppInstallation -AppId b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -TeamId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId. - - - - -------------------------- 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" - - This example updates a Teams App in Microsoft Teams specifying its AppId and TeamId and RSC Permissions. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/teams/update-teamsappinstallation - - - - \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 deleted file mode 100644 index 5f48fd5cf213a..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psd1 +++ /dev/null @@ -1,357 +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.5.6' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = '3dfbed68-91ab-432e-b8bf-affe360d2c2f' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets sub module for Windows PowerShell and PowerShell Core. - -For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @('GetTeamSettings.format.ps1xml') - -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'Add-TeamChannelUser' - ,'Add-TeamUser' - ,'Get-AssociatedTeam' - ,'Get-MultiGeoRegion' - ,'Get-Operation' - ,'Get-SharedWithTeam' - ,'Get-SharedWithTeamUser' - ,'Get-Team' - ,'Get-TeamAllChannel' - ,'Get-TeamChannel' - ,'Get-TeamChannelUser' - ,'Get-TeamIncomingChannel' - ,'Get-TeamsApp' - ,'Get-TeamsArtifacts' - ,'Get-TeamUser' - ,'Get-M365TeamsApp' - ,'Get-AllM365TeamsApps' - ,'Get-M365UnifiedTenantSettings' - ,'Get-M365UnifiedCustomPendingApps' - ,'Get-TenantPrivateChannelMigrationStatus' - ,'New-Team' - ,'New-TeamChannel' - ,'New-TeamsApp' - ,'Remove-SharedWithTeam' - ,'Remove-Team' - ,'Remove-TeamChannel' - ,'Remove-TeamChannelUser' - ,'Remove-TeamsApp' - ,'Remove-TeamUser' - ,'Set-Team' - ,'Set-TeamArchivedState' - ,'Set-TeamChannel' - ,'Set-TeamPicture' - ,'Set-TeamsApp' - ,'Update-M365TeamsApp' - ,'Update-M365UnifiedTenantSettings' - ,'Update-M365UnifiedCustomPendingApp' - ,'Add-TeamsAppInstallation' - ,'Get-TeamsAppInstallation' - ,'Get-TeamTargetingHierarchyStatus' - ,'Remove-TeamsAppInstallation' - ,'Remove-TeamTargetingHierarchy' - ,'Set-TeamTargetingHierarchy' - ,'Update-TeamsAppInstallation' - ,'Get-LicenseReportForChangeNotificationSubscription' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = '*' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} -# SIG # Begin signature block -# MIIoUgYJKoZIhvcNAQcCoIIoQzCCKD8CAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACn9eUplYLXu2e -# 7fBVQlUN4wKwx8YYH35YeUyOD2ECn6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiMwghofAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPWS -# kmHJhyB6ldbqxbegGg+2fHDqHbOC06HJfFp2XPa2MEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAmLjSkS/EXKuMXZ+jVZvo0PxZYambtSg3hD+H -# YD28l4bJFO76hYHVdpQkMzqsgseZQkzv0T4OZzTOVHlMOpOZJ66JTBeDonWUDoCF -# eeUAChDRTa7JrgGGY2hXjYiuNGlXKQEhmm9PJDBPTiaIJAusqurTjSHqzvU5rkBU -# u6QQTJUk47QqatH5Aq2nFwG/hA6wLwG4iRt8MD857UbyJRpO6jLXxypulMpFulMe -# mhsltWanOy12BnIbnB6Iop2YWWFS9Ze2WsiOglUpadH1xPl7G/gGW2gh/KnncJq6 -# hrZ30Y/AlM0VJceiURWUCj/VBd23pj/BbtGO82bkdWs1ZBCaCqGCF60wghepBgor -# BgEEAYI3AwMBMYIXmTCCF5UGCSqGSIb3DQEHAqCCF4YwgheCAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCypOf4C4hBjE9rlokTgfqxG9laaRqmtnJP -# Y3LpveiDogIGaKOvGfXMGBMyMDI1MTAwMTA4MzMwMy40OTJaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEfswggcoMIIFEKADAgECAhMzAAAB/XP5 -# aFrNDGHtAAEAAAH9MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExNloXDTI1MTAyMjE4MzExNlowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjJEMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# oWWs+D+Ou4JjYnRHRedu0MTFYzNJEVPnILzc02R3qbnujvhZgkhp+p/lymYLzkQy -# G2zpxYceTjIF7HiQWbt6FW3ARkBrthJUz05ZnKpcF31lpUEb8gUXiD2xIpo8YM+S -# D0S+hTP1TCA/we38yZ3BEtmZtcVnaLRp/Avsqg+5KI0Kw6TDJpKwTLl0VW0/23sK -# ikeWDSnHQeTprO0zIm/btagSYm3V/8zXlfxy7s/EVFdSglHGsUq8EZupUO8XbHzz -# 7tURyiD3kOxNnw5ox1eZX/c/XmW4H6b4yNmZF0wTZuw37yA1PJKOySSrXrWEh+H6 -# ++Wb6+1ltMCPoMJHUtPP3Cn0CNcNvrPyJtDacqjnITrLzrsHdOLqjsH229Zkvndk -# 0IqxBDZgMoY+Ef7ffFRP2pPkrF1F9IcBkYz8hL+QjX+u4y4Uqq4UtT7VRnsqvR/x -# /+QLE0pcSEh/XE1w1fcp6Jmq8RnHEXikycMLN/a/KYxpSP3FfFbLZuf+qIryFL0g -# EDytapGn1ONjVkiKpVP2uqVIYj4ViCjy5pLUceMeqiKgYqhpmUHCE2WssLLhdQBH -# dpl28+k+ZY6m4dPFnEoGcJHuMcIZnw4cOwixojROr+Nq71cJj7Q4L0XwPvuTHQt0 -# oH7RKMQgmsy7CVD7v55dOhdHXdYsyO69dAdK+nWlyYcCAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBTpDMXA4ZW8+yL2+3vA6RmU7oEKpDAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAY9hYX+T5AmCrYGaH96TdR5T52/PNOG7ySYeopv4flnDWQLhBlravAg+p -# jlNv5XSXZrKGv8e4s5dJ5WdhfC9ywFQq4TmXnUevPXtlubZk+02BXK6/23hM0TSK -# s2KlhYiqzbRe8QbMfKXEDtvMoHSZT7r+wI2IgjYQwka+3P9VXgERwu46/czz8IR/ -# Zq+vO5523Jld6ssVuzs9uwIrJhfcYBj50mXWRBcMhzajLjWDgcih0DuykPcBpoTL -# lOL8LpXooqnr+QLYE4BpUep3JySMYfPz2hfOL3g02WEfsOxp8ANbcdiqM31dm3vS -# heEkmjHA2zuM+Tgn4j5n+Any7IODYQkIrNVhLdML09eu1dIPhp24lFtnWTYNaFTO -# fMqFa3Ab8KDKicmp0AthRNZVg0BPAL58+B0UcoBGKzS9jscwOTu1JmNlisOKkVUV -# kSJ5Fo/ctfDSPdCTVaIXXF7l40k1cM/X2O0JdAS97T78lYjtw/PybuzX5shxBh/R -# qTPvCyAhIxBVKfN/hfs4CIoFaqWJ0r/8SB1CGsyyIcPfEgMo8ceq1w5Zo0JfnyFi -# 6Guo+z3LPFl/exQaRubErsAUTfyBY5/5liyvjAgyDYnEB8vHO7c7Fg2tGd5hGgYs -# +AOoWx24+XcyxpUkAajDhky9Dl+8JZTjts6BcT9sYTmOodk/SgIwggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDVjCCAj4CAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyRDFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAoj0WtVVQUNSK -# oqtrjinRAsBUdoOggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG2eQwIhgPMjAyNTA5MzAyMjM2MjBaGA8yMDI1 -# MTAwMTIyMzYyMFowdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA7IbZ5AIBADAHAgEA -# AgIgyTAHAgEAAgITKzAKAgUA7IgrZAIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor -# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBCwUA -# A4IBAQAmufR59ho6kKb6B6MxWsOHLIcIVkeFSze45Y0exPCewXA8iw/M8LFcBaeQ -# /Oobtf4rOQu4WfVKBaYxB8teo9PGRIhX5lIxnpnVlYgcoLGp1vRELlujDfuqEhkb -# sg/E2EumO3gWJIAG/EVhYLtA1Goo5JKff2mHi8hHixo0ujIH7ySMXPuHLVbzo6rE -# hYI0g8HFS4UsBgIy3v/KYO0JXiXLxtzi0Jhfhnqx1MM4RKvfttKMg/MzA/YkvssB -# SdevnKK72czbS6S+JlH+FF/5j5K+TS2xZrkptJFmH2oRtVep8mgEgbhKJEiERJeP -# EBqIWwTP4s08gtlCGMGQsLSkMh79MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMC -# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV -# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp -# bWUtU3RhbXAgUENBIDIwMTACEzMAAAH9c/loWs0MYe0AAQAAAf0wDQYJYIZIAWUD -# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B -# CQQxIgQgkaMEs6O9ga5mzUDZmkwp1tvB4Gb8MO3yy9/wDS4fIf4wgfoGCyqGSIb3 -# DQEJEAIvMYHqMIHnMIHkMIG9BCCAKEgNyUowvIfx/eDfYSupHkeF1p6GFwjKBs8l -# RB4NRzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u -# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp -# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB -# /XP5aFrNDGHtAAEAAAH9MCIEICOKE9Y+s7jpA8mr/KuDUPYVTcdXrhgkUSP/NDoK -# qskwMA0GCSqGSIb3DQEBCwUABIICADU2mek75KAjLj8j5o0jogSEHX69AgsLuMzE -# LXlcJFJUpGCIs9KEn6Z9OL18AyXFthdYxVTyOxAngLgq/6bo05wBJmQLB9oqeM2D -# WOBDxlea0jOKVwCIpHaPDisTrS04WFj0Peyhjw8HotLyH2Gdkj9iKlKwuworlbfx -# R2w5+9DChGi0FvDw9eKIpnzT/7y1IWkTyFwqnjjQBeq558APfdavyrKklMeyuliv -# 06N2baSYYqm/iiPqHkUwa8tEotB9wE8Q7JkQwJpzNwkXkqlnib/V2BkrOb90oDvm -# TZWob41SxHvNxoq5YjU4GkAh2254PjXTAWktBCIsZU93H3UI3yC45baNbHVd0Giy -# fwc0o+1EEND+yqjzBlx4HM7Eni2KJTN3eDqCVONmwC4T9E5iqO1s65b941w44LjC -# qGrFkE85GAVKcGtT/ZnNCUIgD8uleA/WSkBjrBLoD2pKnp1kDtjiFDtoAHdWnAVf -# SbzU++f3AxdhIfvAweGBrAphGeAODV/wob95+tC96LoJGV9kTj988HrEO9dNkAz5 -# IlxKXKOjv1vkU+ERnxHCBPLxsO/K9qVrV+ZAUOoh2gY4NAO/wncfcy6aZbV868x7 -# +uhBw4TzO7wkCEQq1Eo9r+D6EwZaFcecr38CFzj6OK/jQvMsKbDv33EhJ+VNUgns -# RyAvZ0oW -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 deleted file mode 100644 index d423f0bc17029..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.psm1 +++ /dev/null @@ -1,226 +0,0 @@ -if($PSEdition -ne 'Desktop') -{ - Import-Module $('{0}\netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) -} -else -{ - Import-Module $('{0}\net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll' -f $PSScriptRoot) -} -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCtJNoep0vYvS0u -# zCBbwqBqybUYNuPYHWudLYoWOcLIVqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIF3F -# viB5I/Ax1ZFPXrSiQ9VfQ9tIZcCOZ+89t8Pe2ekmMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEA6TuOvRDRWgSB20of7Bc0HNzscdou+QEljnZy -# iUjzm8nstTBeX8C8ZzHZAW9ZAyyUcc5btohoi/w4sYFbnzUM/4PGcfMnMwWOiO82 -# baFd1/M6EqK6cfN0svpDfF9xlz4D55LpqkHwvSQ1o4/B6qJxZNX3GT9XfXRF+R+7 -# +hEQXWAULWVXLNgr0/wPG36A65VVKzJirMhoeEujWdTe5NxTwM6nPP/s2Kx/5EFb -# wd8owyknEPWGNP6q+QCStKiPHU7yLT2S2Syvva3HkTV4xiONhJPrXrANoHyz7VRs -# ww21m0PSuEb1zk/49ub68VZ1q/sVrnujGl1XEBOPtDvmiqJ0A6GCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCD8tLi1+mhEnfJS/P2mXfQHMUEkPsE6F1S5 -# QTI4uAsUjgIGaKR4CbFTGBMyMDI1MTAwMTA4MzMwNy41MDdaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 -# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA -# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy -# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH -# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot -# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c -# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp -# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgqO2PTggYwTiT3pA4tzgBhRKPPqUxuknOaODh8BQgXVYwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS -# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse -# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAEjZyxTJhvjHoA9iDaTr+1pSztIzKFSG -# 7qjunlzeWxu5AmgMuHBcxawIXI1dWfEax1V1TO4fe02ZOSH3zTNYgV9TOVKRnruW -# pGwb9U85sn2nIE0fCMC2BkYexq2z4L+gacKoTgvvkTL4taEB706HOJpqbuSRWFTH -# 9tStaisprRQRTso2C7I89EwWmgro2SNJlQMU2qP8lr8nSSwCMlnaNyEfv4CIqJJb -# aBA30yHYLgcnChSRUqGeEkqR3VxiprTmw/B2FlCM9tVsT3jeBoQd1irjzCSZMbUW -# g6Q4DjMNdn3jDG0IHBuecqG16tNIsVcCFePfH73Klo8KtDXhB4bs+HfmctJy9Eh5 -# Ps8rjfzQpmGaF+1kAxAZ9WVPJoSQOQ01+PrRAkW83nzT6S/1asgXthKyIaVApV7B -# 7yabWsECdCoIb2+qrmghpr78/Pmt0baT97W/WmxPinB8ZW2pSwWLc9QTCVPNjR32 -# L5hVfTgi0mHl9Hptz/iurKnr9NlRdV/Dsa0zfM0Ve/HDo7M/BsNk/Po4RYWvcnhA -# Ls4vFmY7L4bS+/RVVyEmXFBWUE5QaR6/Dasnb+zEaKGMYk5XLYfKCWE9QDrSNK2D -# SmI1O/Xk93xvov99uBYdkhjNMThQcKgUXRTzXd6aceBdbqHsC6s1sezM/GdlNhbT -# DoOtI5N2m/gY -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml b/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml deleted file mode 100644 index b19a7caf7fea7..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/Microsoft.Teams.PowerShell.TeamsCmdlets.xml +++ /dev/null @@ -1,3772 +0,0 @@ - - - - Microsoft.Teams.PowerShell.TeamsCmdlets - - - - - Cmdlet to add user to a private channel. Role of the user can be specified for member promotion. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - The name of the cmdlet. - - - - - The AAD group id of the team. - - - - - The display name of channel. - - - - - The id or upn of the user. - - - - - The role of the user. - - - - - The tenantId of the external user. - - - - - - - - cmdlet to Add a Teams App to MS Teams. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the cmdlet. - - - - - Teams App identifier in MS Teams. - - - - - Team identifier in MS Teams. - - - - - User identifier in MS Teams. - - - - - RSC permissions for the Teams App. - - - - - Cmdlet to add user to a team. Role of the user can be specified - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Helper method which adds user to the unified group either as member (default) or as Owner. - Safe to call even if the user already exists in member or owner list for a given group. - Throws exceptions if httpClient is null, userId is (null or whitespace), when the graph api calls fail. - - Http client reference. - UserId represented as either guid or upn or emailid. - Denotes whether user should be added as Owner or not. - - - - Enum of HttpStatusCodes worth retrying when received - - - - - Determines if the returned status code is worth retring - - - - - - - JsonConverter to flatten a nested json object path into an object. - - { - "name": "Joe Doe", - "dateOfBirth": { - "month": "January", - "day": 1 - } - } - - can be serialized into the object: - - [JsonConverter(typeof(JsonPathConverter))] - class Person - { - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("dateOfBirth.month")] - public string DateOfBirthMonth { get; set; } - - [JsonProperty("dateOfBirth.day")] - public int DateOfBirthDay { get; set; } - } - - - - - - Deserializes the object from JSON. - - . - Type of object to deserialize into. - The existing value of the object. - Instance of . - - - - - Determines whether this instance can convert the specified object type. - - The object type that can be converted - Returns if this object can be converted by this converter. - - - - Serializes the object as JSON. - - Instance of . - The object to serialize. - Instance of . - - - - Constants for Microsoft Graph requests. - - - - - The limit imposed by Microsoft Graph for sending batch requests. - - - - - Team name character limit (from MSGraph, the limit is 64). - If alias is greater than 64 characters, we trim it to around 60 characters, so MT can append some number, if alias is already taken. - - - - - validate team alias uniqueness retry limit - - - - - team alias suffix: random number range - - - - - The installation scope of a TeamsApp. - - - - - Default installation scope. - - - - - TeamsApp installed in Team scope. - - - - - TeamsApp installed in Chat scope. - - - - - TeamsApp installed in User scope. - - - - - Channel membership type - - - - - Endpoint versions - - - - - UAM substrate endpoint version. - - - - - UAM service Admin App gesture constants. - - - - - AvailableTo gesture administered by the admin to the user(s) or group(s) for a specific app. - To make the app available to the user(s) or group(s). - - - - - DeployTo gesture administered by the admin to the user(s) or group(s) for a specific app. - To deploy the app to the specified user(s) or group(s). - - - - - Operation type that the Admin is using to perform the operation. - - - - - Add operation to add an App to user(s) or group(s) - - - - - Remove operation to remove an App from user(s) or group(s) - - - - - Available to all users. - - - - - Available to some users. - - - - - Available to no users. - - - - - Constants used by Teams Hierarchy cmdlets. - - - - - Cmdlet name for Set-TeamTargetingHierarchy. - - - - - Cmdlet name for Get-TeamTargetingHierarchyStatus. - - - - - Cmdlet name for Remove-TeamTargetingHierarchy. - - - - - Url name for latest operation in Teams Hierarchy service. - - - - - Attribute name for operation id in operation models for THS. - - - - - Attribute name for request id for get status output. - - - - - Name for the http content in upload csv requets. - - - - - Media type for the http content in upload csv requets. - - - - - Media type for the http content in hierarchy create requests. - - - - - Hierarchy display name for new hierarchies. - - - - - API Exception - - - - - Gets or sets the error code (HTTP status code) - - The error code (HTTP status code). - - - - Gets or sets the error content (body json object) - - The error content (Http response body). - - - - The Microsoft Graph error code - - The error code from the MS Graph API call - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - HTTP status code. - Error message. - - - - Initializes a new instance of the class. - - HTTP status code. - Error message. - MSGraph error code. - - - - Initializes a new instance of the class. - - HTTP status code. - Error message. - Error content. - - - - Initializes a new instance of the class. - - - - - Deserializes the http response string to MS Graph api error root. - - Http response - MSGraphApiErrorRoot object - True if deserialization succeeds, otherwise false. - - - - Deserializes the http response string to MS Graph api error root. - - The content string - MSGraphApiErrorRoot object - True if deserialization succeeds, otherwise false. - - - - Root class for DeserializeSubstrate API Error. - - - - - Deserializes the http response string to Substrate api error root. - - Http response - SubstrateErrorRoot object - True if deserialization succeeds, otherwise false. - - - - Deserializes the http response string to Substrate api error root. - - The content string - SubstrateApiErrorRoot object - True if deserialization succeeds, otherwise false. - - - - Get the display string for the response. - - Substrate error generated. - error string for the display. - - - - Root class for MS Graph API Error. - For more information go to https://graph.microsoft.io/en-us/docs/overview/errors - - - - - InnerError class for MS Graph API Error. - For more information go to https://graph.microsoft.io/en-us/docs/overview/errors - - - - - Substrate API Error class. - - - - - Code for the error. - - - - - Message for the error. - - - - - Inner error object. - - - - - Root class for Substrate API Error. - - - - - Error object. - - - - - InnerError class for Substrate API Error. - - - - - Request ID for the error. - - - - - Date - - - - - Cmdlet to list teams where the user is direct member or - indirect member because they are part of a shared channel - that is hosted under the team. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - The name of cmdlet. - - - - - User id or email. - - - - - Process record. - - - - - Returns the userId if the input is a id else fetch userId by making graph api call. - - - - - Cmdlet to get Teams usage report for users in a tenant, particularly messages sent per user, as well as a check on - whether each user has the appropriate DLP license SKU. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the cmdlet. - - - - - Indicates the period over which this usage report is generated. - - - - - Fetches user license details given the available Teams usage data for the users in a tenant. - - The Teams user activity details. - The http client. - The user license details for the users. - A collection of error strings if any calls to get license details fails. - - - - Fetches the user license details for a batch of users (max 20 due to Graph $batch limits). - - The HTTP client. - The batch of Teams user activity details for which the UPN is extracted to retrieve license details. - A dictionary of licenses mapping UPN to license details. - A collection of error strings containing error messages if any individual call within the $batch call fails. - - - - Given the Teams user activity details, AAD user details, and a mapping from UPN to license details, generates a collection of DlpUserLicenseReports. - - The Teams user activity details. - The AAD user details for the tenant. - The user UPN to license details dictionary. - A collection of DlpUserLicenseReports. - - - - Default constructor necessary for cmdlet. - - - - - Represents a cmdlet to list teams with which specified channel is shared. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The AAD group id of the host team. - - - - - The thread id of the channel. - - - - - The AAD group id of the shared with team. - - - - - - - - Represents a cmdlet to list users of a shared with team. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The AAD group id of the host team. - - - - - The thread id of the channel. - - - - - The AAD group id of the shared with team. - - - - - The role of the users. - - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Takes in the groups, divides the groups by batch size and sends the batch to be processed in parallel - If GetNextTeamBatch returns False for shouldContinue, then stop processing - - Current batch number to process - List of groups to process - List of team data; List of error messages - - - - Retrieves team properties using Graph Batch API. - - List of groups to process - List of team data - List of error messages from trying to get team data - - - - Represents a cmdlet to list all channels of a team, including incoming channels and channels hosted by the team. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The AAD group id of the team. - - - - - The membership type of the channels. - - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Represents a cmdlet to list users of a channel. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The AAD group id of the team. - - - - - The display name. - - - - - The role of the users. - - - - - - - - Represents a cmdlet to list incoming channels of a team. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The AAD group id of the team. - - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - cmdlet to get a Teams App installed in MS Teams. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the cmdlet. - - - - - Team identifier in MS Teams. - - - - - User identifier in MS Teams. - - - - - Installation identifier of the Teams App. - - - - - 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. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the Cmdlet. - - - - - Id for the request instance of an upload operation. - - - - - Version of the api service endpoints that will be used. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - 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. - - - - - Default Constructor - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - get specific app settings: DefaultApp, GlobalApp, PrivateApp, EnableCopilotExtensibility - - - - - Get the Unified App from UAM service. - - - - - Default Constructor - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - The Id of the app to get. - - - - - Gets all unified apps from UAM service. - - - - - Default Constructor - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Gets all unified apps from UAM service. - - - - - Default Constructor - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Gets or sets a value indicating whether [account enabled]. - - - - - Description for the user - - - - - Gets or sets the display name. - - - - - Gets or sets the email. - - - - - Gets or sets the name of the given. - - - - - Gets or sets the mail. - - - - - User Mri - used for skype requests - - - - - Gets or sets the object identifier. - - - - - Gets or sets the type of the object. - - - - - Gets or sets the surname. - - - - - Gets or sets the telephone number. - - - - - Gets or sets the type. - - - - - Gets or sets the name of the user principal. - - - - - Gets or sets the preferred language of the user. - - - - - The response from the Batch request - - - - - Represents MS Graph channel source. - https://docs.microsoft.com/en-us/graph/api/resources/channel?view=graph-rest-beta - - - - - The odata id. - - - - - Channel id - - - - - Channel display name - - - - - Channel description - - - - - Channel membership type - - - - - The tenant id. - - - - - Represents channel enhanced info used to model cmdlet response. - - - - - Initializes a new instance of the ChannelEnhancedInfo class. - - - - - Initializes a new instance of the ChannelEnhancedInfo class with an object of Channel class. - - The graph channel object used to initialize the instance. - - - - The thread id of the channel. - - - - - The display name of the channel. - - - - - The description of the channel. - - - - - The membership type of the channel. - - - - - The id of the host team. - - - - - The tenant id. - - - - - Represents channel basic info used to model cmdlet response. - - - - - Initializes a new instance of the ChannelInfo class. - - - - - Initializes a new instance of the ChannelInfo class with an object of Channel class. - - The graph channel object used to initialize the instance. - - - - The thread id of the channel. - - - - - The display name of the channel. - - - - - The description of the channel. - - - - - The membership type of the channel. - - - - - Class representing the Dlp User License report for a Teams user. - - - - - Gets or sets the UPN of the user for this report. - - - - - Gets or sets the display name of the user. - - - - - Gets or sets the number of messages sent by the user. - - - - - Gets or sets a boolean string describing whether or not a user is licensed by a Microsoft DLP license plan. - - - - - EnityType - - - - - Team giphy rating setting - - - - - Represents a model of conversation member. - - - - - Initializes a new instance of the GraphAadUserConversationMember class. - - - - - Member object id - - - - - Member UPN - - - - - Member Id (composite id generated from channel id and user id) - - - - - Member roles - - - - - Member display name. - - - - - Member email. - - - - - The tenant id. - - - - - Gets role of the conversation member. - - The role of the member. - - - - Group id. MSGraph version "v1.0"/ "beta" uses this property name. - Please use GetId() method when seeking group ids - - - - - Group id. MSGraph version "edu" uses this property name. - Please use GetId() method when seeking group ids - - - - - Display Name - - - - - Group Description - - - - - Group Types - - - - - Group classification - - - - - Mail Enabled - - - - - Group Mail Nickname - - - - - Security Enabled - - - - - Members - - - - - Members - - - - - Group Visiblilty - - - - - creation Options - - - - - Resource Behavior Options - - - - - Education Object Type - - - - - Get Group Id - MSGraph version "v1.0" uses "Id" property name. - MSGraph version "edu" uses "ObjectId" property name. - Please use GetId() method when seeking group ids - - Returns group id - - - - Represents a model of user info. - - - - - The id of AAD user. - - - - - The upn of user. - - - - - Abstract definition which registers a and corresponding dictionary for use when serializing/deserializing an object. - - - - - Gets or sets the dynamic properties populated during JSON serialization/deserialization. - - - - - MS Graph License Details object. - https://docs.microsoft.com/en-us/graph/api/resources/licensedetails?view=graph-rest-1.0 - - - - - Unique identifier for the license detail object. - - - - - Information about the service plans assigned with the license. - - - - - Unique identifier (GUID) for the service SKU. - - - - - Unique SKU display name. - - - - - Represents a response to a Microsoft Graph API that returns a collection. - - Type of items. - - - - Gets or sets the value of the collection. - - - - - Response received which support paging - - The type of item the collection contains. - - - - Check if Objects count exceed team members limit or not - - Team Members Limit - True if exceeded or False - - - - Contains information about a service plan associated with a subscribed SKU. - - - - - The unique identifier of the service plan. - - - - - The name of the service plan. - - - - - The provisioning status of the service plan. - - - - - Enum describing the provisioning status of a service plan. - - - - - Represents a model of shared with team info. - - - - - The AAD group id of the team. - - - - - The name of the team. - - - - - The tenant id. - - - - - Indicates whether the team is the host of the channel. - - - - - Id of the request - - - - - Http Method used for the request - - - - - Uri used for the request - - - - - Id of the response, maps to the id of the request - - - - - Http Status Code of the request - - - - - Body of the response which contains the License details object or an Error bject - - - - - The body can either be a LicenseDetails model or an Error model - - - - - Body of the response which contains the Team object - - - - - Id of the response, maps to the id of the request - - - - - Http Status Code of the request - - - - - Body of the response which contains the License details object or an Error bject - - - - - - Body of the response which contains the Team object - - - - - Id of the response, maps to the id of the request - - - - - Http Status Code - - - - - Body of the response which contains the Team object or an Error bject - - - - - The body can either be a Team model or an Error model - - - - - Body of the response which contains the Team object - - - - - Code of the error, NOT Http status code - - - - - Code of the error, NOT Http status code - - - - - Staged App Details Response - - - - - The Staged App Entitlement - - - - - Staged App Entitlement - - - - - The Staged App Details Definition Etag - - - - - Staged App Update Request Body - - - - - Gets or sets the App Id for the Staged App - - - - - Gets or sets the Review Status for the Staged App - Published | Rejected - - - - - Gets or sets the Staged App Definition Etag - - - - - Team Id - - - - - Internal Id - - - - - Display Name - - - - - Group Description - - - - - Group Visibility - - - - - Group MailNickName - - - - - Group Classification - - - - - Archived - - - - - Team Member settings - For example: Can user create/update channels? etc. - - - - - Team guest settings - For example: Can guest create/update channels? etc. - - - - - Team Messaging settings - For example: Can user edit/delete messages? etc. - - - - - Team fun settings - For example: Can user post giphy etc. - - - - - Team discovery settings - For example: If team visible in search results/suggestions in Teams client - - - - - Team settings which determine team's discoverability. - - - - - Represents a team with basic information. - - - - - Team Id - - - - - Display Name - - - - - Tenant Id. - - - - - App data returned by Graph API - - - - - The app's internal, generated app ID (different from the external ID) - - - - - The display name of the app - - - - - The method by which the app is distributed - Although this is an Enum in Middle Tier, marking this as a string here - so that Json deserialization doesn't break if we add a new Enum value to MT - without making a code change in these cmdlets - - - - - MS Graph TeamsAppInstallation Object - - - - - The TeamsAppInstallationId - - - - - A unique id (not the teams appid). - - - - - The id from the Teams App manifest. - - - - - The name of the app provided by the app developer. - - - - - The version number of the application. - - - - - Gets or sets the operation id that uniquely identifies a specific instance of the async operation. - - - - - Gets or sets the type of async operation. - - - - - Gets or sets the latest status of the async operation. - - - - - Gets or sets the UTC time when the async operation was created. - - - - - Gets or sets the UTC time when the async operation was last updated. - - - - - Gets or sets the number of times the operation was attempted before being marked suceeded/failed. - - - - - Gets or sets the target resource id. - - - - - Gets or sets the target resource location. - - - - - Invalid value. - - - - - Operation to clone a team. - - - - - Operation to archive a team. - - - - - Operation to unarchive a team. - - - - - Operation to create a team. - - - - - Operation to teamify an existing group. - - - - - Operation to create a channel. - - - - - Invalid value. - - - - - Indicates that the operation has not started. - - - - - Indicates that the operation in running. - - - - - Indicates that the operation has succeeded. - - - - - Indicates that the operation has failed. - - - - - Team Id - - - - - Internal Id - - - - - Display Name - - - - - Description - - - - - Visibility - - - - - MailNickName - - - - - Classification - - - - - Archived - - - - - App data returned by Graph API - - - - - The external ID provided by the app developer - - - - - A report that details the activity of a particular user on Teams. - - - - - The user principal name of the user. - - - - - The number of messages the user sent to team/channel threads. - - - - - The number of messages the user sent to private chats. - - - - - Model for the Hierarchy object returned by Hierarchy service's APIs. - - - - - Version for Teams Hierarchy cmdlets that defines which service are the cmdlets pointing to. - - - - - Version of the API pointing to the Retail service. - - - - - Version of the API pointing to the Hierarchy service. - - - - - Model for import hierarchy operation status comming from Retail service. - - - - - 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 - - - - - Unified App response! - - - - - Gets or sets the app id for the Enhanced teams app or Teams app. - - - - - Gets or Sets the app blocked state. - if true then the app is blocked.If false then the app is unblocked. - Denotes whether the app is blocked by the administrator. - - - - - App Type. - - - - - Gets or sets the app Available to data. - - - - - 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). - - - - - available To data for the unified app response. - - - - - Gets or sets the list of user assignment for available data. - - - - - Gets or sets the list of group assignment for available data. - - - - - Last updated timestamp - - - - - UserId of the assigner - - - - - deployed To data for the pscmdlet response (V2). - - - - - available To data for the unified app response. - - - - - Last updated date - - - - - UserId of the deployer - - - - - Deploy reason - - - - - Version - - - - - Gets or sets the list of user assignment for available data. - - - - - Gets or sets the list of group assignment for available data. - - - - - Group or user assignment id with assignment details - - - - - Group or User Id - - - - - Last updated timestamp - - - - - UserId of the assigner - - - - - Group or user assignment id with assignment details - - - - - Group or User Id - - - - - Last updated timestamp - - - - - UserId of the assigner - - - - - Class for GetUnifiedAppsResponse. - - - - - Gets or sets the app id for the Enhanced teams app or Teams app. - - - - - Gets or Sets the app blocked state. - if true then the app is blocked.If false then the app is unblocked. - Denotes whether the app is blocked by the administrator. - - - - - Gets or sets the app Available to data. - - - - - 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). - - - - - available To data for the unified app response. - - - - - Last updated timestamp - - - - - UserId of the assigner - - - - - DeployedTo details for the unified app (V2). - - - - - deployed To data for the unified app response. - - - - - Last updated date - - - - - UserId of the deployer - - - - - Deploy reason - - - - - Version - - - - - Class for UnifiedAppsTenantSettingsResponse. - - - - - Add or Remove users/groups - - - - - Class for UnifiedAppsTenantSettingsResponse. - - - - - Gets or Sets the Setting Name. Applicable values DefaultApp|GlobalApp|PrivateApp|CoPilotApp - - - - - Gets or Sets the Setting Value. Applicable values Some|All|None - - - - - Gets or sets List of user guid for Apps with EnableCopilotExtensibility. - - - - - Gets or sets List of group guid for Apps with EnableCopilotExtensibility. - - - - - Unified App Update Request Body - - - - - Gets or sets app ID for the m365 App / unified app. - - - - - Gets or Sets the app blocked state. - if true then the app is blocked.If false then the app is unblocked. - Denotes whether the app is blocked by the administrator. - - - - - Gets or sets the available to information of the app. - - - - - Gets or sets the deploy to information of the app. - - - - - Available To Request - - - - - Gets or Sets the type of availability Information none | some | all. - - - - - Gets or sets List of user guid for available data. - - - - - Gets or sets List of group guid for available data. - - - - - Gets or Sets the operation add | remove. - - - - - Deploy To Request - - - - - Gets or Sets the type of deployTo Information none | some | all. - - - - - Gets or sets List of user guid for available data. - - - - - Gets or sets List of group guid for available data. - - - - - Gets or Sets the operation add | remove. - - - - - Gets or Sets the version. - - - - - Class for UnifiedStagedAppsResponse. - - - - - Gets or sets the app id for the Enhanced teams app or Teams app. - - - - - The app ID provided by the developer - - - - - Indicating how many times the app has been updated - - - - - Indicates who created this app. - - - - - Last timestamp when the app is being updated - - - - - The app review status - - - - - Metadata data - - - - - App metadata for the Admin - - - - - The user facing app name - - - - - Terms of Use URL of the app - - - - - A long description of the app - - - - - A short description of the app - - - - - Large image URL. Can contain raw image data. - - - - - Smallimage URL. Can contain raw image data. - - - - - Developer name - - - - - Developer link - - - - - Version of the manifest of the app - - - - - The latest published app version - - - - - Indicates whether or not the title has Copilot capabilities. - - - - - A list of the different hubs. - - - - - Gets the date the title was published. - - - - - Represents a model of user enhanced info. - - - - - Initializes a new instance of the UserEnhancedInfo class. - - - - - Initializes a new instance of the UserEnhancedInfo class with an object of GraphAadUserConversationMember class. - - - - - - The id of AAD user. - - - - - The upn of user. - - - - - The display name of the user. - - - - - The role of the user. - - - - - The tenant id of the user. - - - - - Represents a model of user info. - - - - - Initializes a new instance of the UserInfo class. - - - - - Initializes a new instance of the UserInfo class with an object of GraphAadUserConversationMember class. - - - - - - The id of AAD user. - - - - - The upn of user. - - - - - The display name of the user. - - - - - The role of the user. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Max number of attempts check if group is available for team creation - - - - - Max number of attempts to try creating a team. - - - - - Sleep time to check for group availability in milliseconds - - - - - Sleep time in milliseconds. - - - - - Set group properties based on template value. - - - - Group - - - - Create new unified group - - - New created group - - - - Provision team portion of an unified group. - - http client - Unified group id - If successful, return created Team object, else return null - - - - Generates unique team alias - 1. Generate valid alias base on DisplayName - 2. Check if the alias exists in MsGraph, if exists, check "originalAlias"+"3 digits random numbers" as alias again, this logic up to 3 times - - http client - Team alias - Unique Alias - - - - Validate that the group is available before trying to create a team. - Tries to validate up to and waits - inbetween validation attempts. - - - Group Id to validate. - True if group with corresponding groupId is available, else false. - - - - Handles scenario when group is created but not yet ready or when team creation fails - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Support specifying owner during channel creation - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Represents a cmdlet to unshare a channel with a team. - - - - - Initializes a new instance of . - - - - - Initializes a new instance of with an implementation of . - - The http client factory. - - - - The name of the cmdlet. - - - - - The aad group id of the host team. - - - - - The thread id of the shared channel. - - - - - The aad group id of the shared with team. - - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Cmdlet to remove user from a private channel. Role of the user can be specified for member demotion. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - The name of the cmdlet. - - - - - The AAD group id of the team. - - - - - The display name of channel. - - - - - The id or upn of the user. - - - - - The role of the user. - - - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - cmdlet to remove a Teams App from MS Teams. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the cmdlet. - - - - - Installation identifier of the Teams App. - - - - - Teams App identifier in MS Teams. - - - - - Team identifier in MS Teams. - - - - - User identifier in MS Teams. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Id for the request instance of an upload operation. - - - - - Name of the Cmdlet. - - - - - Version of the api service endpoints that will be used. - - - - - Cmdlet to add user to a team. Role of the user can be specified - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - The groupid to be archived. - - - - - If true, archive team (API above). If false, unarchive team. - - - - - Optional parameter. Used with Archived == $true. - This optional parameter defines whether to set permissions for team members to read-only on the Sharepoint Online site associated with the team. - See the following API docs for shouldSetSpoSiteReadOnlyForMembers - https://docs.microsoft.com/en-us/graph/api/team-archive?view=graph-rest-beta - https://docs.microsoft.com/en-us/graph/api/team-archive?view=graph-rest-1.0 - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Channel model without membershiptype as the property is not supported on Graph patch endpoint - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the Cmdlet. - - - - - Path for the CSV file that will be consumed. - - - - - Version of the api service endpoints that will be used. - - - - - Base class for all teams cmdlet which need AUTH. - - - - - Used to detect system interrupts - - - - - Check whether user is authenticated or not. - - - - - Signal for when the user sends a cancel interrupt (ctrl + c) - - - - - - - Updates the Review Status of a Staged App with Published/Rejected - - - - - Default Constructor - - - - - Constructor with an implementation of - Creates an instance of - - - - - - Commandlet name - - - - - App Id of the Staged App - - - - - Review Status of the Staged App - This can be Published|Rejected - - - - - - - - Create and validate the StagedAppUpdateRequestBody - - - Base URL - Staged App Updated Request Body - - - - Fetches the Staged App Definition Etag - - - Base URL - The Staged App Definition Etag - - - - cmdlet to update a Teams App in MS Teams. - - - - - Default constructor necessary for cmdlet. - - - - - Constructor with an implementation of . - Creates an instance of - - - - - - Name of the cmdlet. - - - - - Installation identifier of the Teams App. - - - - - Teams App identifier in MS Teams. - - - - - Team identifier in MS Teams. - - - - - User identifier in MS Teams. - - - - - RSC permissions for the Teams App. - - - - - Update unified app in the UAMService cmdlet - - - - - Default Constructor - - - - - Constructor with an implementation of . - Updates an instance of - - - - - - Cmdlet Name. - - - - - Gets or Sets the Setting Name. Applicable values DefaultApp | GlobalApp | PrivateApp | EnableCopilotExtensibility - - - - - Gets or Sets the Setting Value. Applicable values Some|All|None - - - - - Gets or sets List of user guid for CoPilot Apps. - - - - - Gets or sets List of group guid for CoPilot Apps. - - - - - Gets or Sets the Setting Value. Applicable values add|remove - - - - - Update unified app in the UAMService cmdlet - - - - - Default Constructor - - - - - Constructor with an implementation of . - Updates an instance of - - - - - - Cmdlet Name. - - - - - Id of the Unified App required. - - - - - IsBlocked flag for the Unified App. - - - - - AppAssignmentType for the Unified App. - This can be 'UsersAndGroups', 'Everyone' or 'Noone'. - - - - - OperationType for the Unified App. - This is either 'Add' or 'Remove' and it represents the operation to be performed on the Users or Groups. - It is a required parameter. - - - - - Users to be added or removed from the Unified App. - If not provided the default value is null. - - - - - Groups to be added or removed from the Unified App. - If not provided the default value is null. - - - - - AppAssignmentType for the Unified App. - This can be 'UsersAndGroups', 'Everyone' or 'Noone'. - - - - - OperationType for the Unified App. - This is either 'Add' or 'Remove' and it represents the operation to be performed on the Users or Groups. - It is a required parameter. - - - - - Users to be added or removed from the Unified App. - If not provided the default value is null. - - - - - Groups to be added or removed from the Unified App. - If not provided the default value is null. - - - - - DeployVersion for the Unified App. - Only applicable for deployTo - - - - - Create and validate the UnifiedAppUpdateRequestBody - - - - - - - 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. - - - - - Return the current user user id. - - http client - graph resource - AAD user id - - - - Given a user UPN or email Id, return user Id. - - http client - user's upn - graph resource - AAD user id - - - - Given a list of userIds, get the dictionary of userId - upn. - - httpClient - list of userIds - graph resource - dictionary of userId - upn - - - - GET all AAD members of a channel. - - http client - graph resource - AAD group id - Channel object - list of AAD members - - - - Maximum number of retries for each http call under special conditions (ex. Service Unavailable) - - - - - JSON Serializer settings. - - - - - Send a GET request to the specified Uri. - - Return type - The Uri the request is sent to. - Returns resource as specified type T - - - - Send a GET request to the specified Uri with headers - - Return type - The Uri the request is sent to. - Custom headers sent with the request. - Returns resource. - - - - GET all entities from Graph - - Return type - The Uri the request is sent to. - List of resources. - - - - Send a POST request to the specified Uri - - Input type - http client - The Uri the request is sent to. - Resource to post - Returns created resource. - - - - Special POST for APIs that return async operation ids via Location header. - - http client - The Uri the request is sent to. - Resource to post - Returns created resource. - - - - Special POST for batch requests. Takes in a GraphBatchRequest and returns a BatchResponse. The response will have an id which maps to the id in the request - - - - - - - - - Send a PUT request to the specified Uri - - Input type - http client - The Uri the request is sent to. - Resource to update - Returns updated resource. - - - - Send a PATCH request to the specified Uri - - Input type - http client - The Uri the request is sent to. - Resource to update - - - - Send a patch request to the UAM service for updating an app. - - Body type - http client - The uri the request is sent to - App to update - - - - - Send a DELETE request to the specified Uri - - Input type - http client - The Uri the request is sent to. - - - - Send a async GET request to the specified Uri. - - - - - - - - - - Send a GET request to the specified Uri with headers - - Return type - http client - The Uri the request is sent to. - Custom headers sent with the request. - Function for refreshing authorization token when we get a 401. - Returns resource. - - - - Sends requests and handles retries, backoff and wait-after time spans - Will only retry if the status code returned is worth retrying - If header has retry-after then wait for the timespan specified - Else uses a decorrelated jitter exponential backoff strategry, useful for multithreaded applications - Creates a new HttpRequestMessage for every request since it cannot be reused with the same HttpClient - - - - - - - - - - - Function for creating HttpRequestMessages - - - - - - - - - - The maximum number of users that can get returned per page in the GET /users API. - - - - - The maximum number of Teams user activity details that can get returned per page in the GET /getTeamsUserActivityUserDetail API. - - - - - The valid report periods for the Teams usage report API. - https://docs.microsoft.com/en-us/graph/api/reportroot-getteamsuseractivityuserdetail?view=graph-rest-beta - - - - - Validates and returns the scope and the scope identifier based on the identifier arguments provided. - - Instance of . - Team Id in MS Teams. - Chat Id in MS Teams. - User Id in MS Teams. - scope and scope identifier. - - - - Fetches the TeamsAppInstallation for a given scope, scopeIdentifier and appId. - - Instance of . - . - Base MS Graph URL. - Scope of the app installation . - Identifier of the scope where the app is installed. - Installation identifier of the Teams App. - The corresponding Teams App installed. - - - - Creates the base url for Teams App lifecycle management. - - Instance of . - The MS Graph base url. - Scope of the app installation . - Identifier of the scope where the app is installed. - The url for Teams App lifecycle management - - - - Fetches the license details for a number of users. - - Instance of . - . - Base MS Graph URL. - The unique IDs or UPNs of the users for which to retrieve license details. - A dictionary representing the license details for a number of users, mapping the UPN to the license details. - A list of error messages from the batch request. - - - - Fetches the details of all users in the tenant. - - Instance of . - . - Base MS Graph URL. - The details about all users in the tenant. - - - - Fetches the Teams user activity details for all users in a tenant. - - Instance of . - . - Base MS Graph URL. - The period for which we want to fetch teh user activity details. - The Teams user activity details for all users in a tenant. - - - - ParameterSet name for resource management in Team scope - - - - - ParameterSet name for resource management in User scope - - - - - Default team alias used when the input alias contains invalid characters - - - - - Team alias suffix length - For example: Team alias is "msteams_d010ac", suffix will be "_"+"d010ac" - - - - - Allowed set of characters in team alias - - - - - Generates valid team alias - This function will be used for generate original alias base on displayName - 1. Only Keeps allowed characters and alias can't exceeds - 2. If genenrated alias in step 1 don't contain alphanumeric characters, MT generate a new alias - - Team alias - Prefix/Suffix Length - If use default alias which starts with "DefaultTeamAlias" - Valid team alias - - - - Generates (0-9, a-f) alias suffix base on Guid - - Valid team alias - - - - Generates unique team alias - This function will be used for generate new alias base on orginal alias if the original alias duplicated - The new alias length must less than alias.Length + suffix.Length - - Team alias - Team alias suffix - Office365 mailNickname Prefix/Suffix Length - Valid team alias - - - - Keeps allowed characters and removes the not allowed ones. - - Input string - Allowed character set - Input string with only the allowed characters - - - - Represents some utilities for user objects. - - - - - Gets the list of UserInfo objects to output. - - The list of graph aad users. - Http client. - Graph resource. - The specified role of users. - The type used to create objects. - The list of objects which implement IUserInfo. - - - - diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 deleted file mode 100644 index 64c48ed593154..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psd1 +++ /dev/null @@ -1,1051 +0,0 @@ -# -# Module manifest for module 'MicrosoftTeams' -# -# Generated by: Microsoft Corporation -# -# Updated on: 6/30/2020 -# - -@{ -# Script module or binary module file associated with this manifest. -RootModule = './MicrosoftTeams.psm1' - -# Version number of this module. -ModuleVersion = '7.4.0' - -# Supported PSEditions -CompatiblePSEditions = 'Core', 'Desktop' - -# ID used to uniquely identify this module -GUID = 'd910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9' - -# Author of this module -Author = 'Microsoft Corporation' - -# Company or vendor of this module -CompanyName = 'Microsoft Corporation' - -# Copyright statement for this module -Copyright = 'Microsoft Corporation. All rights reserved.' - -# Description of the functionality provided by this module -Description = 'Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core. - -For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview' - -# Minimum version of the Windows PowerShell engine required by this module -PowerShellVersion = '5.1' - -# Name of the Windows PowerShell host required by this module -# PowerShellHostName = '' - -# Minimum version of the Windows PowerShell host required by this module -# PowerShellHostVersion = '' - -# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -DotNetFrameworkVersion = '4.7.2' - -# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. -CLRVersion = '4.0' - -# Processor architecture (None, X86, Amd64) required by this module -# ProcessorArchitecture = 'Amd64' - -# Modules that must be imported into the global environment prior to importing this module -# RequiredModules = @() - -# Assemblies that must be loaded prior to importing this module -# RequiredAssemblies = @() - -# Script files (.ps1) that are run in the caller's environment prior to importing this module. -# Removed this script from here because this module is used in SAW machines as well where Contraint Language Mode is on. -# Because of CLM constraint we were not able to import Teams module to SAW machines, that is why removing this script. -# ScriptsToProcess = @() - -# Type files (.ps1xml) to be loaded when importing this module -# TypesToProcess = @() - -# Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = @() - -# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess -#NestedModules = @() - -# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. -FunctionsToExport = @( - 'Clear-CsOnlineTelephoneNumberOrder' - ,'Complete-CsOnlineTelephoneNumberOrder' - ,'Disable-CsOnlineSipDomain' -#preview ,'Disable-CsTeamsShiftsConnectionErrorReport' - ,'Enable-CsOnlineSipDomain' - ,'Export-CsAcquiredPhoneNumber' - ,'Export-CsAutoAttendantHolidays' - ,'Export-CsOnlineAudioFile' - ,'Find-CsGroup' - ,'Find-CsOnlineApplicationInstance' - ,'Get-CsApplicationAccessPolicy' - ,'Get-CsApplicationMeetingConfiguration' - ,'Get-CsAutoAttendant' - ,'Get-CsAutoAttendantHolidays' - ,'Get-CsAutoAttendantStatus' - ,'Get-CsAutoAttendantSupportedLanguage' - ,'Get-CsAutoAttendantSupportedTimeZone' - ,'Get-CsAutoAttendantTenantInformation' - ,'Get-CsBatchPolicyAssignmentOperation' - ,'Get-CsCallingLineIdentity' - ,'Get-CsCallQueue' - ,'Get-CsCloudCallDataConnection' - ,'Get-CsEffectiveTenantDialPlan' - ,'Get-CsExportAcquiredPhoneNumberStatus' - ,'Get-CsGroupPolicyAssignment' - ,'Get-CsHybridTelephoneNumber' - ,'Get-CsInboundBlockedNumberPattern' - ,'Get-CsInboundExemptNumberPattern' - ,'Get-CsMainlineAttendantAppointmentBookingFlow' - ,'Get-CsMainlineAttendantFlow' - ,'Get-CsMainlineAttendantQuestionAnswerFlow' - ,'Get-CsMeetingMigrationStatus' - ,'Get-CsOnlineApplicationInstance' - ,'Get-CsOnlineApplicationInstanceAssociation' - ,'Get-CsOnlineApplicationInstanceAssociationStatus' - ,'Get-CsOnlineAudioConferencingRoutingPolicy' - ,'Get-CsOnlineAudioFile' - ,'Get-CsOnlineDialInConferencingBridge' - ,'Get-CsOnlineDialInConferencingLanguagesSupported' - ,'Get-CsOnlineDialinConferencingPolicy' - ,'Get-CsOnlineDialInConferencingServiceNumber' - ,'Get-CsOnlineDialinConferencingTenantConfiguration' - ,'Get-CsOnlineDialInConferencingTenantSettings' - ,'Get-CsOnlineDialInConferencingUser' - ,'Get-CsOnlineDialOutPolicy' - ,'Get-CsOnlineDirectoryTenant' - ,'Get-CsOnlineEnhancedEmergencyServiceDisclaimer' - ,'Get-CsOnlineLisCivicAddress' - ,'Get-CsOnlineLisLocation' - ,'Get-CsOnlineLisPort' - ,'Get-CsOnlineLisSubnet' - ,'Get-CsOnlineLisSwitch' - ,'Get-CsOnlineLisWirelessAccessPoint' - ,'Get-CsOnlinePSTNGateway' - ,'Get-CsOnlinePstnUsage' - ,'Get-CsOnlineSchedule' - ,'Get-CsOnlineSipDomain' - ,'Get-CsOnlineTelephoneNumber' - ,'Get-CsOnlineTelephoneNumberCountry' - ,'Get-CsOnlineTelephoneNumberOrder' - ,'Get-CsOnlineTelephoneNumberType' - ,'Get-CsOnlineUser' - ,'Get-CsOnlineVoicemailUserSettings' - ,'Get-CsOnlineVoiceRoute' - ,'Get-CsOnlineVoiceRoutingPolicy' - ,'Get-CsOnlineVoiceUser' - ,'Get-CsPhoneNumberAssignment' - ,'Get-CsPhoneNumberPolicyAssignment' - ,'Get-CsPhoneNumberTag' - ,'Get-CsPolicyPackage' - ,'Get-CsSdgBulkSignInRequestStatus' - ,'Get-CsSDGBulkSignInRequestsSummary' - ,'Get-CsTeamsAudioConferencingPolicy' - ,'Get-CsTeamsCallParkPolicy' - ,'Get-CsTeamsCortanaPolicy' - ,'Get-CsTeamsEmergencyCallRoutingPolicy' - ,'Get-CsTeamsEnhancedEncryptionPolicy' - ,'Get-CsTeamsGuestCallingConfiguration' - ,'Get-CsTeamsGuestMeetingConfiguration' - ,'Get-CsTeamsGuestMessagingConfiguration' - ,'Get-CsTeamsIPPhonePolicy' - ,'Get-CsTeamsMediaLoggingPolicy' - ,'Get-CsTeamsMeetingBroadcastConfiguration' - ,'Get-CsTeamsMeetingBroadcastPolicy' - ,'Get-CsTeamsMigrationConfiguration' - ,'Get-CsTeamsMobilityPolicy' - ,'Get-CsTeamsNetworkRoamingPolicy' - ,'Get-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Get-CsTeamsSettingsCustomApp' - ,'Get-CsTeamsShiftsAppPolicy' - ,'Get-CsTeamsShiftsConnectionConnector' - ,'Get-CsTeamsShiftsConnectionErrorReport' - ,'Get-CsTeamsShiftsConnection' - ,'Get-CsTeamsShiftsConnectionInstance' - ,'Get-CsTeamsShiftsConnectionOperation' - ,'Get-CsTeamsShiftsConnectionSyncResult' - ,'Get-CsTeamsShiftsConnectionTeamMap' - ,'Get-CsTeamsShiftsConnectionWfmTeam' - ,'Get-CsTeamsShiftsConnectionWfmUser' - ,'Get-CsTeamsSurvivableBranchAppliance' - ,'Get-CsTeamsSurvivableBranchAppliancePolicy' - ,'Get-CsTeamsTargetingPolicy' - ,'Get-CsTeamsTranslationRule' - ,'Get-CsTeamsUnassignedNumberTreatment' - ,'Get-CsTeamsUpgradePolicy' - ,'Get-CsTeamsVdiPolicy' - ,'Get-CsTeamsVideoInteropServicePolicy' - ,'Get-CsTeamsWorkLoadPolicy' - ,'Get-CsTeamTemplate' - ,'Get-CsTeamTemplateList' - ,'Get-CsTenant' - ,'Get-CsTenantBlockedCallingNumbers' - ,'Get-CsTenantDialPlan' - ,'Get-CsTenantFederationConfiguration' - ,'Get-CsTenantLicensingConfiguration' - ,'Get-CsTenantMigrationConfiguration' - ,'Get-CsTenantNetworkConfiguration' - ,'Get-CsTenantNetworkRegion' - ,'Get-CsTenantNetworkSubnet' - ,'Get-CsTenantTrustedIPAddress' - ,'Get-CsUserCallingSettings' - ,'Get-CsUserPolicyAssignment' - ,'Get-CsUserPolicyPackage' - ,'Get-CsUserPolicyPackageRecommendation' - ,'Get-CsVideoInteropServiceProvider' - ,'Grant-CsApplicationAccessPolicy' - ,'Get-CsComplianceRecordingForCallQueueTemplate' - ,'Get-CsSharedCallQueueHistoryTemplate' - ,'Get-CsTagsTemplate' - ,'Grant-CsCallingLineIdentity' - ,'Grant-CsDialoutPolicy' - ,'Grant-CsGroupPolicyPackageAssignment' - ,'Grant-CsOnlineAudioConferencingRoutingPolicy' - ,'Grant-CsOnlineVoicemailPolicy' - ,'Grant-CsOnlineVoiceRoutingPolicy' - ,'Grant-CsTeamsAudioConferencingPolicy' - ,'Grant-CsTeamsCallHoldPolicy' - ,'Grant-CsTeamsCallParkPolicy' - ,'Grant-CsTeamsChannelsPolicy' - ,'Grant-CsTeamsCortanaPolicy' - ,'Grant-CsTeamsEmergencyCallingPolicy' - ,'Grant-CsTeamsEmergencyCallRoutingPolicy' - ,'Grant-CsTeamsEnhancedEncryptionPolicy' - ,'Grant-CsTeamsFeedbackPolicy' - ,'Grant-CsTeamsIPPhonePolicy' - ,'Grant-CsTeamsMediaLoggingPolicy' - ,'Grant-CsTeamsMeetingBroadcastPolicy' - ,'Grant-CsTeamsMeetingPolicy' - ,'Grant-CsTeamsMessagingPolicy' - ,'Grant-CsTeamsMobilityPolicy' - ,'Grant-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Grant-CsTeamsSurvivableBranchAppliancePolicy' - ,'Grant-CsTeamsUpdateManagementPolicy' - ,'Grant-CsTeamsUpgradePolicy' - ,'Grant-CsTeamsVideoInteropServicePolicy' - ,'Grant-CsTeamsVoiceApplicationsPolicy' - ,'Grant-CsTeamsWorkLoadPolicy' - ,'Grant-CsTenantDialPlan' - ,'Grant-CsUserPolicyPackage' - ,'Grant-CsTeamsComplianceRecordingPolicy' - ,'Import-CsAutoAttendantHolidays' - ,'Import-CsOnlineAudioFile' - ,'Invoke-CsInternalPSTelemetry' - ,'Move-CsInternalHelper' - ,'New-CsApplicationAccessPolicy' - ,'New-CsAutoAttendant' - ,'New-CsAutoAttendantCallableEntity' - ,'New-CsAutoAttendantCallFlow' - ,'New-CsAutoAttendantCallHandlingAssociation' - ,'New-CsAutoAttendantDialScope' - ,'New-CsAutoAttendantMenu' - ,'New-CsAutoAttendantMenuOption' - ,'New-CsAutoAttendantPrompt' - ,'New-CsBatchPolicyAssignmentOperation' - ,'New-CsBatchPolicyPackageAssignmentOperation' - ,'New-CsCallingLineIdentity' - ,'New-CsCallQueue' - ,'New-CsCloudCallDataConnection' - ,'New-CsCustomPolicyPackage' - ,'New-CsEdgeAllowAllKnownDomains' - ,'New-CsEdgeAllowList' - ,'New-CsEdgeDomainPattern' - ,'New-CsGroupPolicyAssignment' - ,'New-CsHybridTelephoneNumber' - ,'New-CsInboundBlockedNumberPattern' - ,'New-CsInboundExemptNumberPattern' - ,'New-CsMainlineAttendantAppointmentBookingFlow' - ,'New-CsMainlineAttendantQuestionAnswerFlow' - ,'New-CsOnlineApplicationInstance' - ,'New-CsOnlineApplicationInstanceAssociation' - ,'New-CsOnlineAudioConferencingRoutingPolicy' - ,'New-CsOnlineDateTimeRange' - ,'New-CsOnlineLisCivicAddress' - ,'New-CsOnlineLisLocation' - ,'New-CsOnlinePSTNGateway' - ,'New-CsOnlineSchedule' - ,'New-CsOnlineTelephoneNumberOrder' - ,'New-CsOnlineTimeRange' - ,'New-CsOnlineVoiceRoute' - ,'New-CsOnlineVoiceRoutingPolicy' - ,'New-CsSdgBulkSignInRequest' - ,'New-CsTeamsAudioConferencingPolicy' - ,'New-CsTeamsCallParkPolicy' - ,'New-CsTeamsCortanaPolicy' - ,'New-CsTeamsEmergencyCallRoutingPolicy' - ,'New-CsTeamsEmergencyNumber' - ,'New-CsTeamsEnhancedEncryptionPolicy' - ,'New-CsTeamsIPPhonePolicy' - ,'New-CsTeamsMeetingBroadcastPolicy' - ,'New-CsTeamsMobilityPolicy' - ,'New-CsTeamsNetworkRoamingPolicy' - ,'New-CsTeamsRoomVideoTeleConferencingPolicy' - ,'New-CsTeamsShiftsConnectionBatchTeamMap' - ,'New-CsTeamsShiftsConnection' - ,'New-CsTeamsShiftsConnectionInstance' - ,'New-CsTeamsSurvivableBranchAppliance' - ,'New-CsTeamsSurvivableBranchAppliancePolicy' - ,'New-CsTeamsTranslationRule' - ,'New-CsTeamsUnassignedNumberTreatment' - ,'New-CsTeamsVdiPolicy' - ,'New-CsTeamsWorkLoadPolicy' - ,'New-CsTeamTemplate' - ,'New-CsTenantDialPlan' - ,'New-CsTenantNetworkRegion' - ,'New-CsTenantNetworkSite' - ,'New-CsTenantNetworkSubnet' - ,'New-CsTenantTrustedIPAddress' - ,'New-CsUserCallingDelegate' - ,'New-CsVideoInteropServiceProvider' - ,'New-CsVoiceNormalizationRule' - ,'New-CsOnlineDirectRoutingTelephoneNumberUploadOrder' - ,'New-CsOnlineTelephoneNumberReleaseOrder' - ,'New-CsComplianceRecordingForCallQueueTemplate' - ,'New-CsTagsTemplate' - ,'New-CsTag' - ,'New-CsSharedCallQueueHistoryTemplate' - ,'Register-CsOnlineDialInConferencingServiceNumber' - ,'Remove-CsApplicationAccessPolicy' - ,'Remove-CsAutoAttendant' - ,'Remove-CsCallingLineIdentity' - ,'Remove-CsCallQueue' - ,'Remove-CsCustomPolicyPackage' - ,'Remove-CsGroupPolicyAssignment' - ,'Remove-CsHybridTelephoneNumber' - ,'Remove-CsInboundBlockedNumberPattern' - ,'Remove-CsInboundExemptNumberPattern' - ,'Remove-CsMainlineAttendantAppointmentBookingFlow' - ,'Remove-CsMainlineAttendantQuestionAnswerFlow' - ,'Remove-CsOnlineApplicationInstanceAssociation' - ,'Remove-CsOnlineAudioConferencingRoutingPolicy' - ,'Remove-CsOnlineAudioFile' - ,'Remove-CsOnlineDialInConferencingTenantSettings' - ,'Remove-CsOnlineLisCivicAddress' - ,'Remove-CsOnlineLisLocation' - ,'Remove-CsOnlineLisPort' - ,'Remove-CsOnlineLisSubnet' - ,'Remove-CsOnlineLisSwitch' - ,'Remove-CsOnlineLisWirelessAccessPoint' - ,'Remove-CsOnlinePSTNGateway' - ,'Remove-CsOnlineSchedule' - ,'Remove-CsOnlineTelephoneNumber' - ,'Remove-CsOnlineVoiceRoute' - ,'Remove-CsOnlineVoiceRoutingPolicy' - ,'Remove-CsPhoneNumberAssignment' - ,'Remove-CsPhoneNumberTag' - ,'Remove-CsTeamsAudioConferencingPolicy' - ,'Remove-CsTeamsCallParkPolicy' - ,'Remove-CsTeamsCortanaPolicy' - ,'Remove-CsTeamsEmergencyCallRoutingPolicy' - ,'Remove-CsTeamsEnhancedEncryptionPolicy' - ,'Remove-CsTeamsIPPhonePolicy' - ,'Remove-CsTeamsMeetingBroadcastPolicy' - ,'Remove-CsTeamsMobilityPolicy' - ,'Remove-CsTeamsNetworkRoamingPolicy' - ,'Remove-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Remove-CsTeamsShiftsConnection' - ,'Remove-CsTeamsShiftsConnectionInstance' - ,'Remove-CsTeamsShiftsConnectionTeamMap' - ,'Remove-CsTeamsShiftsScheduleRecord' - ,'Remove-CsTeamsSurvivableBranchAppliance' - ,'Remove-CsTeamsSurvivableBranchAppliancePolicy' - ,'Remove-CsTeamsTargetingPolicy' - ,'Remove-CsTeamsTranslationRule' - ,'Remove-CsTeamsUnassignedNumberTreatment' - ,'Remove-CsTeamsVdiPolicy' - ,'Remove-CsTeamsWorkLoadPolicy' - ,'Remove-CsTeamTemplate' - ,'Remove-CsTenantDialPlan' - ,'Remove-CsTenantNetworkRegion' - ,'Remove-CsTenantNetworkSite' - ,'Remove-CsTenantNetworkSubnet' - ,'Remove-CsTenantTrustedIPAddress' - ,'Remove-CsUserCallingDelegate' - ,'Remove-CsUserLicenseGracePeriod' - ,'Remove-CsVideoInteropServiceProvider' - ,'Remove-CsComplianceRecordingForCallQueueTemplate' - ,'Remove-CsTagsTemplate' - ,'Remove-CsSharedCallQueueHistoryTemplate' - ,'Set-CsApplicationAccessPolicy' - ,'Set-CsApplicationMeetingConfiguration' - ,'Set-CsAutoAttendant' - ,'Set-CsCallingLineIdentity' - ,'Set-CsCallQueue' - ,'Set-CsInboundBlockedNumberPattern' - ,'Set-CsInboundExemptNumberPattern' - ,'Set-CsMainlineAttendantAppointmentBookingFlow' - ,'Set-CsMainlineAttendantQuestionAnswerFlow' - ,'Set-CsOnlineApplicationInstance' - ,'Set-CsOnlineAudioConferencingRoutingPolicy' - ,'Set-CsOnlineDialInConferencingBridge' - ,'Set-CsOnlineDialInConferencingServiceNumber' - ,'Set-CsOnlineDialInConferencingTenantSettings' - ,'Set-CsOnlineDialInConferencingUser' - ,'Set-CsOnlineDialInConferencingUserDefaultNumber' - ,'Set-CsOnlineEnhancedEmergencyServiceDisclaimer' - ,'Set-CsOnlineLisCivicAddress' - ,'Set-CsOnlineLisLocation' - ,'Set-CsOnlineLisPort' - ,'Set-CsOnlineLisSubnet' - ,'Set-CsOnlineLisSwitch' - ,'Set-CsOnlineLisWirelessAccessPoint' - ,'Set-CsOnlinePSTNGateway' - ,'Set-CsOnlinePstnUsage' - ,'Set-CsOnlineSchedule' - ,'Set-CsOnlineVoiceApplicationInstance' - ,'Set-CsOnlineVoicemailUserSettings' - ,'Set-CsOnlineVoiceRoute' - ,'Set-CsOnlineVoiceRoutingPolicy' - ,'Set-CsOnlineVoiceUser' - ,'Set-CsPhoneNumberAssignment' - ,'Set-CsPhoneNumberPolicyAssignment' - ,'Set-CsPhoneNumberTag' - ,'Set-CsTeamsAudioConferencingPolicy' - ,'Set-CsTeamsCallParkPolicy' - ,'Set-CsTeamsCortanaPolicy' - ,'Set-CsTeamsEmergencyCallRoutingPolicy' - ,'Set-CsTeamsEnhancedEncryptionPolicy' - ,'Set-CsTeamsGuestCallingConfiguration' - ,'Set-CsTeamsGuestMeetingConfiguration' - ,'Set-CsTeamsGuestMessagingConfiguration' - ,'Set-CsTeamsIPPhonePolicy' - ,'Set-CsTeamsMeetingBroadcastConfiguration' - ,'Set-CsTeamsMeetingBroadcastPolicy' - ,'Set-CsTeamsMigrationConfiguration' - ,'Set-CsTeamsMobilityPolicy' - ,'Set-CsTeamsNetworkRoamingPolicy' - ,'Set-CsTeamsRoomVideoTeleConferencingPolicy' - ,'Set-CsTeamsSettingsCustomApp' - ,'Set-CsTeamsShiftsAppPolicy' - ,'Set-CsTeamsShiftsConnection' - ,'Set-CsTeamsShiftsConnectionInstance' - ,'Set-CsTeamsSurvivableBranchAppliance' - ,'Set-CsTeamsSurvivableBranchAppliancePolicy' - ,'Set-CsTeamsTargetingPolicy' - ,'Set-CsTeamsTranslationRule' - ,'Set-CsTeamsUnassignedNumberTreatment' - ,'Set-CsTeamsVdiPolicy' - ,'Set-CsTeamsWorkLoadPolicy' - ,'Set-CsTenantBlockedCallingNumbers' - ,'Set-CsTenantDialPlan' - ,'Set-CsTenantFederationConfiguration' - ,'Set-CsTenantMigrationConfiguration' - ,'Set-CsTenantNetworkRegion' - ,'Set-CsTenantNetworkSite' - ,'Set-CsTenantNetworkSubnet' - ,'Set-CsTenantTrustedIPAddress' - ,'Set-CsUser' - ,'Set-CsUserCallingDelegate' - ,'Set-CsUserCallingSettings' - ,'Set-CsVideoInteropServiceProvider' - ,'Set-CsComplianceRecordingForCallQueueTemplate' - ,'Set-CsTagsTemplate' - ,'Set-CsSharedCallQueueHistoryTemplate' - ,'Start-CsExMeetingMigration' - ,'Sync-CsOnlineApplicationInstance' - ,'Test-CsEffectiveTenantDialPlan' - ,'Test-CsInboundBlockedNumberPattern' - ,'Test-CsTeamsShiftsConnectionValidate' - ,'Test-CsTeamsTranslationRule' - ,'Test-CsTeamsUnassignedNumberTreatment' - ,'Test-CsVoiceNormalizationRule' - ,'Unregister-CsOnlineDialInConferencingServiceNumber' - ,'Update-CsAutoAttendant' - ,'Update-CsCustomPolicyPackage' - ,'Update-CsPhoneNumberTag' - ,'Update-CsTeamsShiftsConnection' - ,'Update-CsTeamsShiftsConnectionInstance' - ,'Update-CsTeamTemplate' - ,'New-CsBatchTeamsDeployment' - ,'Get-CsBatchTeamsDeploymentStatus' - ,'Get-CsPersonalAttendantSettings' - ,'Set-CsPersonalAttendantSettings' -#OCE related functions exports start here. DO NOT MODIFY! - ,'Set-CsOCEContext' - ,'Clear-CsOCEContext' - ,'Get-CsRegionContext' - ,'Set-CsRegionContext' - ,'Clear-CsRegionContext' - ,'Get-CsMeetingMigrationTransactionHistory' - ,'Get-CsMasVersionedSchemaData' - ,'Get-CsMasObjectChangelog' - ,'Get-CsBusinessVoiceDirectoryDiagnosticData' - ,'Get-CsCloudTenant' - ,'Get-CsCloudUser' - ,'Get-CsHostingProvider' - ,'Set-CsTenantUserBackfill' - ,'Invoke-CsCustomHandlerNgtprov' - ,'Invoke-CsCustomHandlerCallBackNgtprov' - ,'New-CsSdgDeviceTaggingRequest' - ,'Get-CsMoveTenantServiceInstanceTaskStatus' - ,'Move-CsTenantServiceInstance' - ,'Move-CsTenantCrossRegion' - ,'Invoke-CsDirectObjectSync' - ,'New-CsSDGDeviceTransferRequest' - ,'Get-CsAadTenant' - ,'Get-CsAadUser' - ,'Clear-CsCacheOperation' - ,'Move-CsAvsTenantPartition' - ,'Invoke-CsMsodsSync' - ,'Get-CsUssUserSettings' - ,'Set-CsUssUserSettings' - ,'Invoke-CsRehomeuser' - ,'Set-CsNotifyCache' -#OCE exports end -) -# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. -CmdletsToExport = @( - 'Add-TeamChannelUser' - ,'Add-TeamUser' - ,'Connect-MicrosoftTeams' - ,'Disconnect-MicrosoftTeams' - ,'Set-TeamsEnvironmentConfig' - ,'Clear-TeamsEnvironmentConfig' - ,'Get-AssociatedTeam' - ,'Get-MultiGeoRegion' - ,'Get-Operation' - ,'Get-SharedWithTeam' - ,'Get-SharedWithTeamUser' - ,'Get-Team' - ,'Get-TeamAllChannel' - ,'Get-TeamChannel' - ,'Get-TeamChannelUser' - ,'Get-TeamIncomingChannel' - ,'Get-TeamsApp' - ,'Get-TeamsArtifacts' - ,'Get-TeamUser' - ,'Get-M365TeamsApp' - ,'Get-AllM365TeamsApps' - ,'Get-M365UnifiedTenantSettings' - ,'Get-M365UnifiedCustomPendingApps' - ,'Get-CsTeamsAcsFederationConfiguration' - ,'Get-CsTeamsMessagingPolicy' - ,'Get-CsTeamsMeetingPolicy' - ,'Get-CsOnlineVoicemailPolicy' - ,'Get-CsOnlineVoicemailValidationConfiguration' - ,'Get-CsTeamsAIPolicy' - ,'Get-CsTeamsFeedbackPolicy' - ,'Get-CsTeamsUpdateManagementPolicy' - ,'Get-CsTeamsChannelsPolicy' - ,'Get-CsTeamsMeetingBrandingPolicy' - ,'Get-CsTeamsEmergencyCallingPolicy' - ,'Get-CsTeamsCallHoldPolicy' - ,'Get-CsTeamsMessagingConfiguration' - ,'Get-CsTeamsVoiceApplicationsPolicy' - ,'Get-CsTeamsEventsPolicy' - ,'Get-CsTeamsExternalAccessConfiguration' - ,'Get-CsTeamsFilesPolicy' - ,'Get-CsTeamsCallingPolicy' - ,'Get-CsTeamsClientConfiguration' - ,'Get-CsExternalAccessPolicy' - ,'Get-CsTeamsAppPermissionPolicy' - ,'Get-CsTeamsAppSetupPolicy' - ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Get-CsTeamsMeetingTemplatePermissionPolicy' - ,'Get-CsLocationPolicy' - ,'Get-CsTeamsShiftsPolicy' - ,'Get-CsTenantNetworkSite' - ,'Get-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Get-CsTeamsMeetingTemplateConfiguration' - ,'Get-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Get-CsTeamsVirtualAppointmentsPolicy' - ,'Get-CsTeamsSharedCallingRoutingPolicy' - ,'Get-CsTeamsTemplatePermissionPolicy' - ,'Get-CsTeamsComplianceRecordingPolicy' - ,'Get-CsTeamsComplianceRecordingApplication' - ,'Get-CsTeamsEducationAssignmentsAppPolicy' - ,'Get-CsTeamsUpgradeConfiguration' - ,'Get-CsTeamsAudioConferencingCustomPromptsConfiguration' - ,'Get-CsTeamsSipDevicesConfiguration' - ,'Get-CsTeamsCustomBannerText' - ,'Get-CsTeamsVdiPolicy' - ,'Get-CsTeamsMediaConnectivityPolicy' - ,'Get-CsTeamsMeetingConfiguration' - ,'Get-CsTeamsWorkLocationDetectionPolicy' - ,'Get-CsTeamsRecordingRollOutPolicy' - ,'Get-CsTeamsRemoteLogCollectionConfiguration' - ,'Get-CsTeamsRemoteLogCollectionDevice' - ,'Get-CsTeamsEducationConfiguration' - ,'Get-CsTeamsBYODAndDesksPolicy' - ,'Get-CsTeamsNotificationAndFeedsPolicy' - ,'Get-CsTeamsMultiTenantOrganizationConfiguration' - ,'Get-CsTeamsPersonalAttendantPolicy' - ,'Get-CsPrivacyConfiguration' - ,'Grant-CsTeamsAIPolicy' - ,'Grant-CsTeamsMeetingBrandingPolicy' - ,'Grant-CsExternalAccessPolicy' - ,'Grant-CsTeamsCallingPolicy' - ,'Grant-CsTeamsAppPermissionPolicy' - ,'Grant-CsTeamsAppSetupPolicy' - ,'Grant-CsTeamsEventsPolicy' - ,'Grant-CsTeamsFilesPolicy' - ,'Grant-CsTeamsMediaConnectivityPolicy' - ,'Grant-CsTeamsMeetingTemplatePermissionPolicy' - ,'Grant-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Grant-CsTeamsVirtualAppointmentsPolicy' - ,'Grant-CsTeamsSharedCallingRoutingPolicy' - ,'Grant-CsTeamsShiftsPolicy' - ,'Grant-CsTeamsRecordingRollOutPolicy' - ,'Grant-CsTeamsVdiPolicy' - ,'Grant-CsTeamsWorkLocationDetectionPolicy' - ,'Grant-CsTeamsBYODAndDesksPolicy' - ,'Grant-CsTeamsPersonalAttendantPolicy' - ,'New-Team' - ,'New-TeamChannel' - ,'New-TeamsApp' - ,'New-CsTeamsAIPolicy' - ,'New-CsTeamsMessagingPolicy' - ,'New-CsTeamsMeetingPolicy' - ,'New-CsOnlineVoicemailPolicy' - ,'New-CsTeamsFeedbackPolicy' - ,'New-CsTeamsUpdateManagementPolicy' - ,'New-CsTeamsChannelsPolicy' - ,'New-CsTeamsFilesPolicy' - ,'New-CsTeamsMediaConnectivityPolicy' - ,'New-CsTeamsMeetingBrandingTheme' - ,'New-CsTeamsMeetingBackgroundImage' - ,'New-CsTeamsNdiAssuranceSlate' - ,'New-CsTeamsMeetingBrandingPolicy' - ,'New-CsTeamsEmergencyCallingPolicy' - ,'New-CsTeamsEmergencyCallingExtendedNotification' - ,'New-CsTeamsCallHoldPolicy' - ,'New-CsTeamsVoiceApplicationsPolicy' - ,'New-CsTeamsEventsPolicy' - ,'New-CsTeamsCallingPolicy' - ,'New-CsExternalAccessPolicy' - ,'New-CsTeamsAppPermissionPolicy' - ,'New-CsTeamsAppSetupPolicy' - ,'New-CsTeamsMeetingTemplatePermissionPolicy' - ,'New-CsLocationPolicy' - ,'New-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'New-CsTeamsHiddenMeetingTemplate' - ,'New-CsTeamsVirtualAppointmentsPolicy' - ,'New-CsTeamsSharedCallingRoutingPolicy' - ,'New-CsTeamsHiddenTemplate' - ,'New-CsTeamsTemplatePermissionPolicy' - ,'New-CsTeamsComplianceRecordingPolicy' - ,'New-CsTeamsComplianceRecordingApplication' - ,'New-CsTeamsComplianceRecordingPairedApplication' - ,'New-CsTeamsWorkLocationDetectionPolicy' - ,'New-CsTeamsRecordingRollOutPolicy' - ,'New-CsTeamsRemoteLogCollectionDevice' - ,"New-CsCustomPrompt" - ,"New-CsCustomPromptPackage" - ,'New-CsTeamsShiftsPolicy' - ,'New-CsTeamsCustomBannerText' - ,'New-CsTeamsVdiPolicy' - ,'New-CsTeamsBYODAndDesksPolicy' - ,'New-CsTeamsPersonalAttendantPolicy' - ,'Remove-SharedWithTeam' - ,'Remove-Team' - ,'Remove-TeamChannel' - ,'Remove-TeamChannelUser' - ,'Remove-TeamsApp' - ,'Remove-TeamUser' - ,'Remove-CsTeamsAIPolicy' - ,'Remove-CsTeamsMessagingPolicy' - ,'Remove-CsTeamsMeetingPolicy' - ,'Remove-CsOnlineVoicemailPolicy' - ,'Remove-CsTeamsFeedbackPolicy' - ,'Remove-CsTeamsFilesPolicy' - ,'Remove-CsTeamsUpdateManagementPolicy' - ,'Remove-CsTeamsChannelsPolicy' - ,'Remove-CsTeamsMediaConnectivityPolicy' - ,'Remove-CsTeamsMeetingBrandingPolicy' - ,'Remove-CsTeamsEmergencyCallingPolicy' - ,'Remove-CsTeamsCallHoldPolicy' - ,'Remove-CsTeamsVoiceApplicationsPolicy' - ,'Remove-CsTeamsEventsPolicy' - ,'Remove-CsTeamsCallingPolicy' - ,'Remove-CsExternalAccessPolicy' - ,'Remove-CsTeamsAppPermissionPolicy' - ,'Remove-CsTeamsAppSetupPolicy' - ,'Remove-CsTeamsMeetingTemplatePermissionPolicy' - ,'Remove-CsLocationPolicy' - ,'Remove-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Remove-CsTeamsVirtualAppointmentsPolicy' - ,'Remove-CsTeamsSharedCallingRoutingPolicy' - ,'Remove-CsTeamsTemplatePermissionPolicy' - ,'Remove-CsTeamsComplianceRecordingPolicy' - ,'Remove-CsTeamsComplianceRecordingApplication' - ,'Remove-CsTeamsShiftsPolicy' - ,'Remove-CsTeamsCustomBannerText' - ,'Remove-CsTeamsVdiPolicy' - ,'Remove-CsTeamsWorkLocationDetectionPolicy' - ,'Remove-CsTeamsRecordingRollOutPolicy' - ,'Remove-CsTeamsRemoteLogCollectionDevice' - ,'Remove-CsTeamsBYODAndDesksPolicy' - ,'Remove-CsTeamsNotificationAndFeedsPolicy' - ,'Remove-CsTeamsPersonalAttendantPolicy' - ,'Set-Team' - ,'Set-TeamArchivedState' - ,'Set-TeamChannel' - ,'Set-TeamPicture' - ,'Set-TeamsApp' - ,'Set-CsTeamsAcsFederationConfiguration' - ,'Set-CsTeamsAIPolicy' - ,'Set-CsTeamsMessagingPolicy' - ,'Set-CsTeamsMeetingPolicy' - ,'Set-CsOnlineVoicemailPolicy' - ,'Set-CsTeamsFilesPolicy' - ,'Set-CsOnlineVoicemailValidationConfiguration' - ,'Set-CsTeamsFeedbackPolicy' - ,'Set-CsTeamsUpdateManagementPolicy' - ,'Set-CsTeamsChannelsPolicy' - ,'Set-CsTeamsMediaConnectivityPolicy' - ,'Set-CsTeamsMeetingBrandingPolicy' - ,'Set-CsTeamsEmergencyCallingPolicy' - ,'Set-CsTeamsEducationConfiguration' - ,'Set-CsTeamsCallHoldPolicy' - ,'Set-CsTeamsMessagingConfiguration' - ,'Set-CsTeamsVoiceApplicationsPolicy' - ,'Set-CsTeamsEventsPolicy' - ,'Set-CsTeamsExternalAccessConfiguration' - ,'Set-CsTeamsCallingPolicy' - ,'Set-CsTeamsClientConfiguration' - ,'Set-CsExternalAccessPolicy' - ,'Set-CsTeamsAppPermissionPolicy' - ,'Set-CsTeamsAppSetupPolicy' - ,'Set-CsTeamsFirstPartyMeetingTemplateConfiguration' - ,'Set-CsTeamsMeetingTemplatePermissionPolicy' - ,'Set-CsTeamsMultiTenantOrganizationConfiguration' - ,'Set-CsLocationPolicy' - ,'Set-CsTeamsCarrierEmergencyCallRoutingPolicy' - ,'Set-CsTeamsVirtualAppointmentsPolicy' - ,'Set-CsTeamsSharedCallingRoutingPolicy' - ,'Set-CsTeamsTemplatePermissionPolicy' - ,'Set-CsTeamsComplianceRecordingPolicy' - ,'Set-CsTeamsEducationAssignmentsAppPolicy' - ,'Set-CsTeamsComplianceRecordingApplication' - ,'Set-CsTeamsShiftsPolicy' - ,'Set-CsTeamsUpgradeConfiguration' - ,'Set-CsTeamsAudioConferencingCustomPromptsConfiguration' - ,'Set-CsTeamsSipDevicesConfiguration' - ,'Set-CsTeamsMeetingConfiguration' - ,'Set-CsTeamsVdiPolicy' - ,'Set-CsTeamsWorkLocationDetectionPolicy' - ,'Set-CsTeamsRemoteLogCollectionDevice' - ,'Set-CsTeamsRecordingRollOutPolicy' - ,'Set-CsTeamsCustomBannerText' - ,'Set-CsTeamsBYODAndDesksPolicy' - ,'Set-CsTeamsNotificationAndFeedsPolicy' - ,'Set-CsTeamsPersonalAttendantPolicy' - ,'Set-CsPrivacyConfiguration' - ,'Update-M365TeamsApp' - ,'Update-M365UnifiedTenantSettings' - ,'Update-M365UnifiedCustomPendingApp' - - #MPA OCE cmdlets - ,'Get-CsBatchOperationDefinition' - ,'Get-CsBatchOperationStatus' - ,'Get-CsConfiguration' - ,'Get-CsGroupPolicyAssignments' - ,'Get-CsLoginInfo' - ,'Get-CsUserProvHistory' - ,'Get-GPAGroupMembers' - ,'Get-GPAUserMembership' - ,'Get-NgtProvInstanceFailOverStatus' - ,'Get-CsTeamsTenantAbuseConfiguration' - ,'Invoke-CsDirectoryObjectSync' - ,'Invoke-CsGenericNgtProvCommand' - ,'Invoke-CsRefreshGroupUsers' - ,'Invoke-CsReprocessBatchOperation' - ,'Invoke-CsReprocessGroupPolicyAssignment' - ,'Move-NgtProvInstance' - ,'New-CsConfiguration' - ,'Remove-CsConfiguration' - ,'Set-CsConfiguration' - ,'Set-CsTeamsTenantAbuseConfiguration' - ,'Set-CsPublishPolicySchemaDefaults' - - -#preview ,'Add-TeamsAppInstallation' -#preview ,'Get-TeamsAppInstallation' - ,'Get-TeamTargetingHierarchyStatus' -#preview ,'Remove-TeamsAppInstallation' - ,'Remove-TeamTargetingHierarchy' - ,'Set-TeamTargetingHierarchy' -#preview ,'Update-TeamsAppInstallation' -#preview ,'Get-LicenseReportForChangeNotificationSubscription' -#preview ,'Get-TenantPrivateChannelMigrationStatus' - ) - -# Variables to export from this module -VariablesToExport = '*' - -# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. -AliasesToExport = '*' - -# DSC resources to export from this module -# DscResourcesToExport = @() - -# List of all modules packaged with this module -# ModuleList = @() - -# List of all files packaged with this module -# FileList = @() - -# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. -PrivateData = @{ - PSData = @{ - # Tags applied to this module. These help with module discovery in online galleries. - Tags = 'Office365', 'MicrosoftTeams', 'Teams' - - # A URL to the license for this module. - LicenseUri = 'https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt' - - # A URL to the main website for this project. - ProjectUri = 'https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams' - - # A URL to an icon representing this module. - IconUri = 'https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png' - - # Appends prerelease string to version - Prerelease = '' - - # ReleaseNotes of this module - ReleaseNotes = @' - **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release) -- Releases Get-TeamsArtifacts cmdlet. -- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet. -- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets. -- Releases New-CsTag cmdlet. -- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively. -- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets. - -- The complete release notes can be found in the below link: -https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes -'@ - } # End of PSData hashtable -} # End of PrivateData hashtable - -# HelpInfo URI of this module -# HelpInfoURI = '' - -# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. -# DefaultCommandPrefix = '' -} - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNq+ogYcufhkVf -# wL/SIsi1+eZ0W6XKQrhMITXDH9ZwfKCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIK8C -# wHKJ8d1KCNpUMQTC76irpoI05q/v3ByKkfj0E6mhMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAQxLeGSKr79UYnDswJ8kNGEymGBTkCK/m9gwN -# dgeSTDJrRbKeBpVKPM5sRX1qvWdpwPUmNcHxntATDBVNxk6PS9/u3DPNhQ+I8aML -# ths+KGErpUHCU58uFz0ovB0+wSp6//c1dDsNcx1unn30AmMNL3YG6hYKsIPtxQOo -# k3MDN9dZd3xIBXu3q9pQYaNfriddtGk/Fu1MOMcamQiVy9dxXM4rv+nEnHQ2zHg4 -# sqYP65iIkVLfyFVLRmzfH8R7xRJxXUTVFHRgKUpWDg/FKaaSBkrFiOMiZLw8v8G1 -# esj/jBLaTsP9g3bbjptldfCJGsqnZB6rlOXPE+l8+Auzd7vYE6GCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBGWHA1fMqSZ+iA0klB+5upK5O1Dx56VI8e -# M3bfl2YaiwIGaKSPMrLjGBMyMDI1MTAwMTA4MzMwOS43NjJaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+8vL -# bDdn5TCVAAEAAAH7MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExM1oXDTI1MTAyMjE4MzExM1owgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjU3MUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# qMJWQeWAq4LwvSjYsjP0Uvhvm0j0aAOJiMLg0sLfxKoTXAdKD6oMuq5rF5oEiOxV -# +9ox0H95Q8fhoZq3x9lxguZyTOK4l2xtcgtJCtjXRllM2bTpjOg35RUrBy0cAloB -# U9GJBs7LBNrcbH6rBiOvqDQNicPRZwq16xyjMidU1J1AJuat9yLn7taifoD58blY -# EcBvkj5dH1la9zU846QDeOoRO6NcqHLsDx8/zVKZxP30mW6Y7RMsqtB8cGCgGwVV -# urOnaNLXs31qTRTyVHX8ppOdoSihCXeqebgJCRzG8zG/e/k0oaBjFFGl+8uFELwC -# yh4wK9Z5+azTzfa2GD4p6ihtskXs3lnW05UKfDJhAADt6viOc0Rk/c8zOiqzh0lK -# pf/eWUY2o/hvcDPZNgLaHvyfDqb8AWaKvO36iRZSXqhSw8SxJo0TCpsbCjmtx0Lp -# Hnqbb1UF7cq09kCcfWTDPcN12pbYLqck0bIIfPKbc7HnrkNQks/mSbVZTnDyT3O8 -# zF9q4DCfWesSr1akycDduGxCdKBvgtJh1YxDq1skTweYx5iAWXnB7KMyls3WQZbT -# ubTCLLt8Xn8t+slcKm5DkvobubmHSriuTA3wTyIy4FxamTKm0VDu9mWds8MtjUSJ -# VwNVVlBXaQ3ZMcVjijyVoUNVuBY9McwYcIQK62wQ20ECAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRHVSGYUNQ3RwOl71zIAuUjIKg1KjAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAwzoIKOY2dnUjfWuMiGoz/ovoc1e86VwWaZNFdgRmOoQuRe4nLdtZONtT -# HNk3Sj3nkyBszzxSbZEQ0DduyKHHI5P8V87jFttGnlR0wPP22FAebbvAbutkMMVQ -# MFzhVBWiWD0VAnu9x0fjifLKDAVXLwoun5rCFqwbasXFc7H/0DPiC+DBn3tUxefv -# cxUCys4+DC3s8CYp7WWXpZ8Wb/vdBhDliHmB7pWcmsB83uc4/P2GmAI3HMkOEu7f -# CaSYoQhouWOr07l/KM4TndylIirm8f2WwXQcFEzmUvISM6ludUwGlVNfTTJUq2bT -# DEd3tlDKtV9AUY3rrnFwHTwJryLtT4IFhvgBfND3mL1eeSakKf7xTII4Jyt15SXh -# Hd5oI/XGjSgykgJrWA57rGnAC7ru3/ZbFNCMK/Jj6X8X4L6mBOYa2NGKwH4A37YG -# DrecJ/qXXWUYvfLYqHGf8ThYl12Yg1rwSKpWLolA/B1eqBw4TRcvVY0IvNNi5sm+ -# //HJ9Aw6NJuR/uDR7X7vDXicpXMlRNgFMyADb8AFIvQPdHqcRpRorY+YUGlvzeJx -# /2gNYyezAokbrFhACsJ2BfyeLyCEo6AuwEHn511PKE8dK4JvlmLSoHj7VFR3NHDk -# 3zRkx0ExkmF8aOdpvoKhuwBCxoZ/JhbzSzrvZ74GVjKKIyt5FA0wggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo1NzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUABHHn7NCGusZz -# 2RfVbyuwYwPykBWggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyHEVEwIhgPMjAyNTEwMDEwMjMyNDlaGA8yMDI1 -# MTAwMjAyMzI0OVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IcRUQIBADAKAgEA -# AgIC4QIB/zAHAgEAAgISTDAKAgUA7Ihi0QIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQB2rJUBbV82zv/fG68I5fhMRRSkgirfFrnlWvW6RfzPd+5iYKdth6dU -# 6IOUUkXT8dO0qMuoHqkbT04FjLzmTDVMz/HkKyWOnfzbgSfBdr627tuQfCEGAwNV -# ucTR8DvaCruh9rBA7ZrkdmVxSbNWAKHET4DRUNE04kCzDtcJRlH+6DET6vv0aaWh -# 8jP2P7qVYhNnf2EbzfEphwGpR2qf12umLBqw3UuOLP409MRmZbnWF7ektopLFB0Q -# q2MmM3MvEuHDKHeP9zk2uDYd/JBwf4FNbMFJE/290pXYfcRhctqSoSE6hLmab8Cb -# xUvtPV6BaJ52RwxeSWsAM3GSZBGPrS0IMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH7y8tsN2flMJUAAQAAAfswDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgEmeF5oaa0lat8s66k9I6ahFYw/sboKYMj6AsWdn7CokwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA52wKr/KCFlVNYiWsCLsB4qhjEYEP3xHqY -# qDu1SSTlGDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB+8vLbDdn5TCVAAEAAAH7MCIEICnkwtMY6H2GmiCyEEz1OMgXS5ZXQyQ7h2mA -# fwdrbCjpMA0GCSqGSIb3DQEBCwUABIICABJYVuOYY/FMZA+QTn5JWEO958iX7TnK -# ikVBtXDVT/BuDoA3Hd83YiUbf+NHgqQG1gPSRrF/T0F95JYEXh6dJAYQP2nAbna8 -# lYhljI26hhfaicf/RUxZZawTPCtm7ArQgtxlBh21J4tvfiaQJLGrAeLcsXPWDpXP -# uGzujnhPxFXWWUveWyYco8QRWLXXP6Geq6UxjfnxZooEbQ//Tw9TC/wOtyD/1Y5G -# gpFqdOYmRR5EamDMS+PI7oK4nfcfiz7EcslzDHcxw4VxDay0nEq4dMaNxqvnEu4v -# kaxHU2m12RNO8VZ4mbYCMLL0GQ7f4KiIqf0V+faAVBhLXUxJxWRt1aC8jtg5cuWg -# 3KqzG9ZB8CikzH4ufED8qrmm9UDdUN4ZK9XYm5oEAtAwZnTgVwsNT19dRErU5wMK -# O9M4NFaGRD2k4KpXn7ogwMyavCthN6YNO7r+Pud/31NnsFdpH+xomEvZR48dzVkY -# i6YsoxiIMxwfU0aTp6W/Sr3SAS1n84pOXMNb+93m2VxiUUV/ZCgdUWxxkgb5yhTg -# rNMaS2BJXnQu9AK34SWWLdyzethKbzK/iii14nZjeBbbhLNTNkqMeFrpc7HMso/Q -# WO0e1BtDnKWP7sCb1VLCXUkgaB93SZHV+NFtr/KzkA8wK5G7RqdlkGkHB8lSsLFr -# s50HQ1MxRiV4 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 b/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 deleted file mode 100644 index 69f91f7186eb9..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/MicrosoftTeams.psm1 +++ /dev/null @@ -1,260 +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 -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBJponIg6/1vb48 -# stXuS4z8oBYcN1DNZwuhwmt7j7P5CaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIADB -# pasuVHSfoJTNR02qga8z3vkaj9V4PoBJXQ16dJ5RMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAUCezCbF74ISaWt46BJFpza6IglV2oUrfAu7c -# DKwuwxT1Abbxm/kSmf82Y6ykKNYKaNYQUIXk0XkqiZtytafGatB4/xvAWTV249Er -# X+DjrqkIyOCOeybGoEA07cZHJPm+g4odBbOMFDUXcu4F0Yla1G2moY3mzouXqPEd -# FD8Wrj9U4tyHdZoTntqHr/x/76G5a75PLkPFAtNo69QBDhq6mhFXSduE73OoKGdf -# l5U5Nh9Xeoyq9KbGulyF/2W2u5gY68zS5Ci15ra+Zu4n2A+DQ8GIdlVFeUvoenwb -# 8sXj/1wJ9mocwQ2M4P6W2Axu0g8AQPKjbXVZEulEN3xQ54ETAqGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBMvtJAAlMM5GjgeF5DL27oDcouSzPvyXQ/ -# bQU0xQ/8owIGaKOvjMMzGBMyMDI1MTAwMTA4MzM0NC42NDNaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+R9n -# jXWrpPGxAAEAAAH5MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzEwOVoXDTI1MTAyMjE4MzEwOVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjJBMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# tD1MH3yAHWHNVslC+CBTj/Mpd55LDPtQrhN7WeqFhReC9xKXSjobW1ZHzHU8V2BO -# JUiYg7fDJ2AxGVGyovUtgGZg2+GauFKk3ZjjsLSsqehYIsUQrgX+r/VATaW8/ONW -# y6lOyGZwZpxfV2EX4qAh6mb2hadAuvdbRl1QK1tfBlR3fdeCBQG+ybz9JFZ45LN2 -# ps8Nc1xr41N8Qi3KVJLYX0ibEbAkksR4bbszCzvY+vdSrjWyKAjR6YgYhaBaDxE2 -# KDJ2sQRFFF/egCxKgogdF3VIJoCE/Wuy9MuEgypea1Hei7lFGvdLQZH5Jo2QR5uN -# 8hiMc8Z47RRJuIWCOeyIJ1YnRiiibpUZ72+wpv8LTov0yH6C5HR/D8+AT4vqtP57 -# ITXsD9DPOob8tjtsefPcQJebUNiqyfyTL5j5/J+2d+GPCcXEYoeWZ+nrsZSfrd5D -# HM4ovCmD3lifgYnzjOry4ghQT/cvmdHwFr6yJGphW/HG8GQd+cB4w7wGpOhHVJby -# 44kGVK8MzY9s32Dy1THnJg8p7y1sEGz/A1y84Zt6gIsITYaccHhBKp4cOVNrfoRV -# Ux2G/0Tr7Dk3fpCU8u+5olqPPwKgZs57jl+lOrRVsX1AYEmAnyCyGrqRAzpGXyk1 -# HvNIBpSNNuTBQk7FBvu+Ypi6A7S2V2Tj6lzYWVBvuGECAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBSJ7aO6nJXJI9eijzS5QkR2RlngADAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAZiAJgFbkf7jfhx/mmZlnGZrpae+HGpxWxs8I79vUb8GQou50M1ns7iwG -# 2CcdoXaq7VgpVkNf1uvIhrGYpKCBXQ+SaJ2O0BvwuJR7UsgTaKN0j/yf3fpHD0kt -# H+EkEuGXs9DBLyt71iutVkwow9iQmSk4oIK8S8ArNGpSOzeuu9TdJjBjsasmuJ+2 -# q5TjmrgEKyPe3TApAio8cdw/b1cBAmjtI7tpNYV5PyRI3K1NhuDgfEj5kynGF/ui -# zP1NuHSxF/V1ks/2tCEoriicM4k1PJTTA0TCjNbkpmBcsAMlxTzBnWsqnBCt9d+U -# d9Va3Iw9Bs4ccrkgBjLtg3vYGYar615ofYtU+dup+LuU0d2wBDEG1nhSWHaO+u2y -# 6Si3AaNINt/pOMKU6l4AW0uDWUH39OHH3EqFHtTssZXaDOjtyRgbqMGmkf8KI3qI -# VBZJ2XQpnhEuRbh+AgpmRn/a410Dk7VtPg2uC422WLC8H8IVk/FeoiSS4vFodhnc -# FetJ0ZK36wxAa3FiPgBebRWyVtZ763qDDzxDb0mB6HL9HEfTbN+4oHCkZa1HKl8B -# 0s8RiFBMf/W7+O7EPZ+wMH8wdkjZ7SbsddtdRgRARqR8IFPWurQ+sn7ftEifaojz -# uCEahSAcq86yjwQeTPN9YG9b34RTurnkpD+wPGTB1WccMpsLlM0wggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjoyQTFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqs5WjWO7zVAK -# mIcdwhqgZvyp6UaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG2lkwIhgPMjAyNTA5MzAyMjM4MTdaGA8yMDI1 -# MTAwMTIyMzgxN1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7IbaWQIBADAKAgEA -# AgInWgIB/zAHAgEAAgISRDAKAgUA7Igr2QIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA0HygGCzYYEljnRjZKmlyq8BlFLyeDqjIsf+eW9udW0nwpYvks0ztw -# xcaklxi1JIufA2sghpxfO1DRxR/rkZvRt0N4b6+meKsltQSnJyY6A7LOg169vl4I -# h4F80N3N244nRix969BPnYvMd94lXyhwLRk0vygjWuhF5VJIn+oJQ89bR2Qr+k1c -# EzI5Hypvq/WH0ZzZF7BSPu2zhWTJrNuAefu02ATEKZh8YydBYJdQ9qT2SjXDDQoX -# xW6kWpyX51pxERwDxHfeYKGyp3xuGmIOtBT8jFD/bzNCUIAxAKYmggqdJI1IoRQO -# hyj/efZBnp2gn+TMH95Q84INFZ6tWtSWMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH5H2eNdauk8bEAAQAAAfkwDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQgpWAlZNXWAN7nQT/FGDrJJdqMmFbmsK+cS4fUtV0o9MMwgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCA5I4zIHvCN+2T66RUOLCZrUEVdoKlKl8Ve -# CO5SbGLYEDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB+R9njXWrpPGxAAEAAAH5MCIEIImoK59ZPcOXI5dNWhrN9BtaZ8YzydRxG6Oc -# pV+4JnCfMA0GCSqGSIb3DQEBCwUABIICAFosbXb3BCNc+HiV5DVrFRw8TzmyDPNH -# r5VDxzMNKc0M1DPf/YBsAA6Mrl8PK+1IY9tZa0+EEfoGNDLSssyIOuPgqmoADTMl -# 7PyWdAQkwjmgO1H6pPafJP93PPTKI2PmVaqeyQyqlaCR+nuLl4/upUI+p9eEVWuu -# GqyOMdABvzC9x9WChQoWvnwMUGeBJpAD90nWHH0nPYNDb2BVuTGB9yMNwK7Dxrzj -# Eh5ZcSvkUE4a5ZqbL074lEAMvso4TaGsdLwOUryls9RJO+GLMSK5QS4/Uj5YrZu3 -# 4VVTNgMzGWSzSzFXtPF+qGFwyZJmGcl4clFaHIXzQuS/SVP+REBKbNJ45Qd5E2+i -# Ql/j3fvg4Ft7LhRmdkWZd1omPvTrOkiIYM4b09yEGvZKYFR86hgaG/FakeRZ7eGL -# UTjBJn26KNU1GuI0ywx80FpH72N5n9+CMWnDttwPv6bKcg+Ntx9rKAaym/WKdoJh -# majmmsyNNBlYRQMoOjyXkSQIeQ/nacPY+v0SvEtkfEtDr5tOTwiTymOoSsMNyHzr -# L6CkN69yYgHI9IU6RCQlsgmA52SxdGDcjUO3lIHZ1YhdH7tk8hks2hzaCkidY20e -# RWMUFxrD4h6XxU9YPuDX4AnCkLIkwVnapn3GU+PjrYL6uPyXAVv0i9DgpUtgIpI8 -# kr6V7l86zYBm -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml b/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml deleted file mode 100644 index 536164676025a..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/PSGetModuleInfo.xml +++ /dev/null @@ -1,1497 +0,0 @@ - - - - Microsoft.PowerShell.Commands.PSRepositoryItemInfo - System.Management.Automation.PSCustomObject - System.Object - - - MicrosoftTeams - 7.4.0 - Module - Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview - Microsoft Corporation - MicrosoftTeams - Microsoft Corporation. All rights reserved. -
2025-10-06T13:29:35+02:00
- - - https://raw.githubusercontent.com/MicrosoftDocs/office-docs-powershell/master/teams/LICENSE.txt - https://github.com/MicrosoftDocs/office-docs-powershell/tree/master/teams - https://statics.teams.microsoft.com/evergreen-assets/apps/teamscmdlets_largeimage.png - - - System.Object[] - System.Array - System.Object - - - Office365 - MicrosoftTeams - Teams - PSModule - PSEdition_Core - PSEdition_Desktop - - - - - System.Collections.Hashtable - System.Object - - - - Function - - - - Clear-CsOnlineTelephoneNumberOrder - Complete-CsOnlineTelephoneNumberOrder - Disable-CsOnlineSipDomain - Enable-CsOnlineSipDomain - Export-CsAcquiredPhoneNumber - Export-CsAutoAttendantHolidays - Export-CsOnlineAudioFile - Find-CsGroup - Find-CsOnlineApplicationInstance - Get-CsApplicationAccessPolicy - Get-CsApplicationMeetingConfiguration - Get-CsAutoAttendant - Get-CsAutoAttendantHolidays - Get-CsAutoAttendantStatus - Get-CsAutoAttendantSupportedLanguage - Get-CsAutoAttendantSupportedTimeZone - Get-CsAutoAttendantTenantInformation - Get-CsBatchPolicyAssignmentOperation - Get-CsCallingLineIdentity - Get-CsCallQueue - Get-CsCloudCallDataConnection - Get-CsEffectiveTenantDialPlan - Get-CsExportAcquiredPhoneNumberStatus - Get-CsGroupPolicyAssignment - Get-CsHybridTelephoneNumber - Get-CsInboundBlockedNumberPattern - Get-CsInboundExemptNumberPattern - Get-CsMainlineAttendantAppointmentBookingFlow - Get-CsMainlineAttendantFlow - Get-CsMainlineAttendantQuestionAnswerFlow - Get-CsMeetingMigrationStatus - Get-CsOnlineApplicationInstance - Get-CsOnlineApplicationInstanceAssociation - Get-CsOnlineApplicationInstanceAssociationStatus - Get-CsOnlineAudioConferencingRoutingPolicy - Get-CsOnlineAudioFile - Get-CsOnlineDialInConferencingBridge - Get-CsOnlineDialInConferencingLanguagesSupported - Get-CsOnlineDialinConferencingPolicy - Get-CsOnlineDialInConferencingServiceNumber - Get-CsOnlineDialinConferencingTenantConfiguration - Get-CsOnlineDialInConferencingTenantSettings - Get-CsOnlineDialInConferencingUser - Get-CsOnlineDialOutPolicy - Get-CsOnlineDirectoryTenant - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - Get-CsOnlineLisCivicAddress - Get-CsOnlineLisLocation - Get-CsOnlineLisPort - Get-CsOnlineLisSubnet - Get-CsOnlineLisSwitch - Get-CsOnlineLisWirelessAccessPoint - Get-CsOnlinePSTNGateway - Get-CsOnlinePstnUsage - Get-CsOnlineSchedule - Get-CsOnlineSipDomain - Get-CsOnlineTelephoneNumber - Get-CsOnlineTelephoneNumberCountry - Get-CsOnlineTelephoneNumberOrder - Get-CsOnlineTelephoneNumberType - Get-CsOnlineUser - Get-CsOnlineVoicemailUserSettings - Get-CsOnlineVoiceRoute - Get-CsOnlineVoiceRoutingPolicy - Get-CsOnlineVoiceUser - Get-CsPhoneNumberAssignment - Get-CsPhoneNumberPolicyAssignment - Get-CsPhoneNumberTag - Get-CsPolicyPackage - Get-CsSdgBulkSignInRequestStatus - Get-CsSDGBulkSignInRequestsSummary - Get-CsTeamsAudioConferencingPolicy - Get-CsTeamsCallParkPolicy - Get-CsTeamsCortanaPolicy - Get-CsTeamsEmergencyCallRoutingPolicy - Get-CsTeamsEnhancedEncryptionPolicy - Get-CsTeamsGuestCallingConfiguration - Get-CsTeamsGuestMeetingConfiguration - Get-CsTeamsGuestMessagingConfiguration - Get-CsTeamsIPPhonePolicy - Get-CsTeamsMediaLoggingPolicy - Get-CsTeamsMeetingBroadcastConfiguration - Get-CsTeamsMeetingBroadcastPolicy - Get-CsTeamsMigrationConfiguration - Get-CsTeamsMobilityPolicy - Get-CsTeamsNetworkRoamingPolicy - Get-CsTeamsRoomVideoTeleConferencingPolicy - Get-CsTeamsSettingsCustomApp - Get-CsTeamsShiftsAppPolicy - Get-CsTeamsShiftsConnectionConnector - Get-CsTeamsShiftsConnectionErrorReport - Get-CsTeamsShiftsConnection - Get-CsTeamsShiftsConnectionInstance - Get-CsTeamsShiftsConnectionOperation - Get-CsTeamsShiftsConnectionSyncResult - Get-CsTeamsShiftsConnectionTeamMap - Get-CsTeamsShiftsConnectionWfmTeam - Get-CsTeamsShiftsConnectionWfmUser - Get-CsTeamsSurvivableBranchAppliance - Get-CsTeamsSurvivableBranchAppliancePolicy - Get-CsTeamsTargetingPolicy - Get-CsTeamsTranslationRule - Get-CsTeamsUnassignedNumberTreatment - Get-CsTeamsUpgradePolicy - Get-CsTeamsVdiPolicy - Get-CsTeamsVideoInteropServicePolicy - Get-CsTeamsWorkLoadPolicy - Get-CsTeamTemplate - Get-CsTeamTemplateList - Get-CsTenant - Get-CsTenantBlockedCallingNumbers - Get-CsTenantDialPlan - Get-CsTenantFederationConfiguration - Get-CsTenantLicensingConfiguration - Get-CsTenantMigrationConfiguration - Get-CsTenantNetworkConfiguration - Get-CsTenantNetworkRegion - Get-CsTenantNetworkSubnet - Get-CsTenantTrustedIPAddress - Get-CsUserCallingSettings - Get-CsUserPolicyAssignment - Get-CsUserPolicyPackage - Get-CsUserPolicyPackageRecommendation - Get-CsVideoInteropServiceProvider - Grant-CsApplicationAccessPolicy - Get-CsComplianceRecordingForCallQueueTemplate - Get-CsSharedCallQueueHistoryTemplate - Get-CsTagsTemplate - Grant-CsCallingLineIdentity - Grant-CsDialoutPolicy - Grant-CsGroupPolicyPackageAssignment - Grant-CsOnlineAudioConferencingRoutingPolicy - Grant-CsOnlineVoicemailPolicy - Grant-CsOnlineVoiceRoutingPolicy - Grant-CsTeamsAudioConferencingPolicy - Grant-CsTeamsCallHoldPolicy - Grant-CsTeamsCallParkPolicy - Grant-CsTeamsChannelsPolicy - Grant-CsTeamsCortanaPolicy - Grant-CsTeamsEmergencyCallingPolicy - Grant-CsTeamsEmergencyCallRoutingPolicy - Grant-CsTeamsEnhancedEncryptionPolicy - Grant-CsTeamsFeedbackPolicy - Grant-CsTeamsIPPhonePolicy - Grant-CsTeamsMediaLoggingPolicy - Grant-CsTeamsMeetingBroadcastPolicy - Grant-CsTeamsMeetingPolicy - Grant-CsTeamsMessagingPolicy - Grant-CsTeamsMobilityPolicy - Grant-CsTeamsRoomVideoTeleConferencingPolicy - Grant-CsTeamsSurvivableBranchAppliancePolicy - Grant-CsTeamsUpdateManagementPolicy - Grant-CsTeamsUpgradePolicy - Grant-CsTeamsVideoInteropServicePolicy - Grant-CsTeamsVoiceApplicationsPolicy - Grant-CsTeamsWorkLoadPolicy - Grant-CsTenantDialPlan - Grant-CsUserPolicyPackage - Grant-CsTeamsComplianceRecordingPolicy - Import-CsAutoAttendantHolidays - Import-CsOnlineAudioFile - Invoke-CsInternalPSTelemetry - Move-CsInternalHelper - New-CsApplicationAccessPolicy - New-CsAutoAttendant - New-CsAutoAttendantCallableEntity - New-CsAutoAttendantCallFlow - New-CsAutoAttendantCallHandlingAssociation - New-CsAutoAttendantDialScope - New-CsAutoAttendantMenu - New-CsAutoAttendantMenuOption - New-CsAutoAttendantPrompt - New-CsBatchPolicyAssignmentOperation - New-CsBatchPolicyPackageAssignmentOperation - New-CsCallingLineIdentity - New-CsCallQueue - New-CsCloudCallDataConnection - New-CsCustomPolicyPackage - New-CsEdgeAllowAllKnownDomains - New-CsEdgeAllowList - New-CsEdgeDomainPattern - New-CsGroupPolicyAssignment - New-CsHybridTelephoneNumber - New-CsInboundBlockedNumberPattern - New-CsInboundExemptNumberPattern - New-CsMainlineAttendantAppointmentBookingFlow - New-CsMainlineAttendantQuestionAnswerFlow - New-CsOnlineApplicationInstance - New-CsOnlineApplicationInstanceAssociation - New-CsOnlineAudioConferencingRoutingPolicy - New-CsOnlineDateTimeRange - New-CsOnlineLisCivicAddress - New-CsOnlineLisLocation - New-CsOnlinePSTNGateway - New-CsOnlineSchedule - New-CsOnlineTelephoneNumberOrder - New-CsOnlineTimeRange - New-CsOnlineVoiceRoute - New-CsOnlineVoiceRoutingPolicy - New-CsSdgBulkSignInRequest - New-CsTeamsAudioConferencingPolicy - New-CsTeamsCallParkPolicy - New-CsTeamsCortanaPolicy - New-CsTeamsEmergencyCallRoutingPolicy - New-CsTeamsEmergencyNumber - New-CsTeamsEnhancedEncryptionPolicy - New-CsTeamsIPPhonePolicy - New-CsTeamsMeetingBroadcastPolicy - New-CsTeamsMobilityPolicy - New-CsTeamsNetworkRoamingPolicy - New-CsTeamsRoomVideoTeleConferencingPolicy - New-CsTeamsShiftsConnectionBatchTeamMap - New-CsTeamsShiftsConnection - New-CsTeamsShiftsConnectionInstance - New-CsTeamsSurvivableBranchAppliance - New-CsTeamsSurvivableBranchAppliancePolicy - New-CsTeamsTranslationRule - New-CsTeamsUnassignedNumberTreatment - New-CsTeamsVdiPolicy - New-CsTeamsWorkLoadPolicy - New-CsTeamTemplate - New-CsTenantDialPlan - New-CsTenantNetworkRegion - New-CsTenantNetworkSite - New-CsTenantNetworkSubnet - New-CsTenantTrustedIPAddress - New-CsUserCallingDelegate - New-CsVideoInteropServiceProvider - New-CsVoiceNormalizationRule - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - New-CsOnlineTelephoneNumberReleaseOrder - New-CsComplianceRecordingForCallQueueTemplate - New-CsTagsTemplate - New-CsTag - New-CsSharedCallQueueHistoryTemplate - Register-CsOnlineDialInConferencingServiceNumber - Remove-CsApplicationAccessPolicy - Remove-CsAutoAttendant - Remove-CsCallingLineIdentity - Remove-CsCallQueue - Remove-CsCustomPolicyPackage - Remove-CsGroupPolicyAssignment - Remove-CsHybridTelephoneNumber - Remove-CsInboundBlockedNumberPattern - Remove-CsInboundExemptNumberPattern - Remove-CsMainlineAttendantAppointmentBookingFlow - Remove-CsMainlineAttendantQuestionAnswerFlow - Remove-CsOnlineApplicationInstanceAssociation - Remove-CsOnlineAudioConferencingRoutingPolicy - Remove-CsOnlineAudioFile - Remove-CsOnlineDialInConferencingTenantSettings - Remove-CsOnlineLisCivicAddress - Remove-CsOnlineLisLocation - Remove-CsOnlineLisPort - Remove-CsOnlineLisSubnet - Remove-CsOnlineLisSwitch - Remove-CsOnlineLisWirelessAccessPoint - Remove-CsOnlinePSTNGateway - Remove-CsOnlineSchedule - Remove-CsOnlineTelephoneNumber - Remove-CsOnlineVoiceRoute - Remove-CsOnlineVoiceRoutingPolicy - Remove-CsPhoneNumberAssignment - Remove-CsPhoneNumberTag - Remove-CsTeamsAudioConferencingPolicy - Remove-CsTeamsCallParkPolicy - Remove-CsTeamsCortanaPolicy - Remove-CsTeamsEmergencyCallRoutingPolicy - Remove-CsTeamsEnhancedEncryptionPolicy - Remove-CsTeamsIPPhonePolicy - Remove-CsTeamsMeetingBroadcastPolicy - Remove-CsTeamsMobilityPolicy - Remove-CsTeamsNetworkRoamingPolicy - Remove-CsTeamsRoomVideoTeleConferencingPolicy - Remove-CsTeamsShiftsConnection - Remove-CsTeamsShiftsConnectionInstance - Remove-CsTeamsShiftsConnectionTeamMap - Remove-CsTeamsShiftsScheduleRecord - Remove-CsTeamsSurvivableBranchAppliance - Remove-CsTeamsSurvivableBranchAppliancePolicy - Remove-CsTeamsTargetingPolicy - Remove-CsTeamsTranslationRule - Remove-CsTeamsUnassignedNumberTreatment - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLoadPolicy - Remove-CsTeamTemplate - Remove-CsTenantDialPlan - Remove-CsTenantNetworkRegion - Remove-CsTenantNetworkSite - Remove-CsTenantNetworkSubnet - Remove-CsTenantTrustedIPAddress - Remove-CsUserCallingDelegate - Remove-CsUserLicenseGracePeriod - Remove-CsVideoInteropServiceProvider - Remove-CsComplianceRecordingForCallQueueTemplate - Remove-CsTagsTemplate - Remove-CsSharedCallQueueHistoryTemplate - Set-CsApplicationAccessPolicy - Set-CsApplicationMeetingConfiguration - Set-CsAutoAttendant - Set-CsCallingLineIdentity - Set-CsCallQueue - Set-CsInboundBlockedNumberPattern - Set-CsInboundExemptNumberPattern - Set-CsMainlineAttendantAppointmentBookingFlow - Set-CsMainlineAttendantQuestionAnswerFlow - Set-CsOnlineApplicationInstance - Set-CsOnlineAudioConferencingRoutingPolicy - Set-CsOnlineDialInConferencingBridge - Set-CsOnlineDialInConferencingServiceNumber - Set-CsOnlineDialInConferencingTenantSettings - Set-CsOnlineDialInConferencingUser - Set-CsOnlineDialInConferencingUserDefaultNumber - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - Set-CsOnlineLisCivicAddress - Set-CsOnlineLisLocation - Set-CsOnlineLisPort - Set-CsOnlineLisSubnet - Set-CsOnlineLisSwitch - Set-CsOnlineLisWirelessAccessPoint - Set-CsOnlinePSTNGateway - Set-CsOnlinePstnUsage - Set-CsOnlineSchedule - Set-CsOnlineVoiceApplicationInstance - Set-CsOnlineVoicemailUserSettings - Set-CsOnlineVoiceRoute - Set-CsOnlineVoiceRoutingPolicy - Set-CsOnlineVoiceUser - Set-CsPhoneNumberAssignment - Set-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberTag - Set-CsTeamsAudioConferencingPolicy - Set-CsTeamsCallParkPolicy - Set-CsTeamsCortanaPolicy - Set-CsTeamsEmergencyCallRoutingPolicy - Set-CsTeamsEnhancedEncryptionPolicy - Set-CsTeamsGuestCallingConfiguration - Set-CsTeamsGuestMeetingConfiguration - Set-CsTeamsGuestMessagingConfiguration - Set-CsTeamsIPPhonePolicy - Set-CsTeamsMeetingBroadcastConfiguration - Set-CsTeamsMeetingBroadcastPolicy - Set-CsTeamsMigrationConfiguration - Set-CsTeamsMobilityPolicy - Set-CsTeamsNetworkRoamingPolicy - Set-CsTeamsRoomVideoTeleConferencingPolicy - Set-CsTeamsSettingsCustomApp - Set-CsTeamsShiftsAppPolicy - Set-CsTeamsShiftsConnection - Set-CsTeamsShiftsConnectionInstance - Set-CsTeamsSurvivableBranchAppliance - Set-CsTeamsSurvivableBranchAppliancePolicy - Set-CsTeamsTargetingPolicy - Set-CsTeamsTranslationRule - Set-CsTeamsUnassignedNumberTreatment - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLoadPolicy - Set-CsTenantBlockedCallingNumbers - Set-CsTenantDialPlan - Set-CsTenantFederationConfiguration - Set-CsTenantMigrationConfiguration - Set-CsTenantNetworkRegion - Set-CsTenantNetworkSite - Set-CsTenantNetworkSubnet - Set-CsTenantTrustedIPAddress - Set-CsUser - Set-CsUserCallingDelegate - Set-CsUserCallingSettings - Set-CsVideoInteropServiceProvider - Set-CsComplianceRecordingForCallQueueTemplate - Set-CsTagsTemplate - Set-CsSharedCallQueueHistoryTemplate - Start-CsExMeetingMigration - Sync-CsOnlineApplicationInstance - Test-CsEffectiveTenantDialPlan - Test-CsInboundBlockedNumberPattern - Test-CsTeamsShiftsConnectionValidate - Test-CsTeamsTranslationRule - Test-CsTeamsUnassignedNumberTreatment - Test-CsVoiceNormalizationRule - Unregister-CsOnlineDialInConferencingServiceNumber - Update-CsAutoAttendant - Update-CsCustomPolicyPackage - Update-CsPhoneNumberTag - Update-CsTeamsShiftsConnection - Update-CsTeamsShiftsConnectionInstance - Update-CsTeamTemplate - New-CsBatchTeamsDeployment - Get-CsBatchTeamsDeploymentStatus - Get-CsPersonalAttendantSettings - Set-CsPersonalAttendantSettings - Set-CsOCEContext - Clear-CsOCEContext - Get-CsRegionContext - Set-CsRegionContext - Clear-CsRegionContext - Get-CsMeetingMigrationTransactionHistory - Get-CsMasVersionedSchemaData - Get-CsMasObjectChangelog - Get-CsBusinessVoiceDirectoryDiagnosticData - Get-CsCloudTenant - Get-CsCloudUser - Get-CsHostingProvider - Set-CsTenantUserBackfill - Invoke-CsCustomHandlerNgtprov - Invoke-CsCustomHandlerCallBackNgtprov - New-CsSdgDeviceTaggingRequest - Get-CsMoveTenantServiceInstanceTaskStatus - Move-CsTenantServiceInstance - Move-CsTenantCrossRegion - Invoke-CsDirectObjectSync - New-CsSDGDeviceTransferRequest - Get-CsAadTenant - Get-CsAadUser - Clear-CsCacheOperation - Move-CsAvsTenantPartition - Invoke-CsMsodsSync - Get-CsUssUserSettings - Set-CsUssUserSettings - Invoke-CsRehomeuser - Set-CsNotifyCache - - - - - RoleCapability - - - - - - - DscResource - - - - Command - - - - Add-TeamChannelUser - Add-TeamUser - Connect-MicrosoftTeams - Disconnect-MicrosoftTeams - Set-TeamsEnvironmentConfig - Clear-TeamsEnvironmentConfig - Get-AssociatedTeam - Get-MultiGeoRegion - Get-Operation - Get-SharedWithTeam - Get-SharedWithTeamUser - Get-Team - Get-TeamAllChannel - Get-TeamChannel - Get-TeamChannelUser - Get-TeamIncomingChannel - Get-TeamsApp - Get-TeamsArtifacts - Get-TeamUser - Get-M365TeamsApp - Get-AllM365TeamsApps - Get-M365UnifiedTenantSettings - Get-M365UnifiedCustomPendingApps - Get-CsTeamsAcsFederationConfiguration - Get-CsTeamsMessagingPolicy - Get-CsTeamsMeetingPolicy - Get-CsOnlineVoicemailPolicy - Get-CsOnlineVoicemailValidationConfiguration - Get-CsTeamsAIPolicy - Get-CsTeamsFeedbackPolicy - Get-CsTeamsUpdateManagementPolicy - Get-CsTeamsChannelsPolicy - Get-CsTeamsMeetingBrandingPolicy - Get-CsTeamsEmergencyCallingPolicy - Get-CsTeamsCallHoldPolicy - Get-CsTeamsMessagingConfiguration - Get-CsTeamsVoiceApplicationsPolicy - Get-CsTeamsEventsPolicy - Get-CsTeamsExternalAccessConfiguration - Get-CsTeamsFilesPolicy - Get-CsTeamsCallingPolicy - Get-CsTeamsClientConfiguration - Get-CsExternalAccessPolicy - Get-CsTeamsAppPermissionPolicy - Get-CsTeamsAppSetupPolicy - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - Get-CsTeamsMeetingTemplatePermissionPolicy - Get-CsLocationPolicy - Get-CsTeamsShiftsPolicy - Get-CsTenantNetworkSite - Get-CsTeamsCarrierEmergencyCallRoutingPolicy - Get-CsTeamsMeetingTemplateConfiguration - Get-CsTeamsVirtualAppointmentsPolicy - Get-CsTeamsSharedCallingRoutingPolicy - Get-CsTeamsTemplatePermissionPolicy - Get-CsTeamsComplianceRecordingPolicy - Get-CsTeamsComplianceRecordingApplication - Get-CsTeamsEducationAssignmentsAppPolicy - Get-CsTeamsUpgradeConfiguration - Get-CsTeamsAudioConferencingCustomPromptsConfiguration - Get-CsTeamsSipDevicesConfiguration - Get-CsTeamsCustomBannerText - Get-CsTeamsVdiPolicy - Get-CsTeamsMediaConnectivityPolicy - Get-CsTeamsMeetingConfiguration - Get-CsTeamsWorkLocationDetectionPolicy - Get-CsTeamsRecordingRollOutPolicy - Get-CsTeamsRemoteLogCollectionConfiguration - Get-CsTeamsRemoteLogCollectionDevice - Get-CsTeamsEducationConfiguration - Get-CsTeamsBYODAndDesksPolicy - Get-CsTeamsNotificationAndFeedsPolicy - Get-CsTeamsMultiTenantOrganizationConfiguration - Get-CsTeamsPersonalAttendantPolicy - Get-CsPrivacyConfiguration - Grant-CsTeamsAIPolicy - Grant-CsTeamsMeetingBrandingPolicy - Grant-CsExternalAccessPolicy - Grant-CsTeamsCallingPolicy - Grant-CsTeamsAppPermissionPolicy - Grant-CsTeamsAppSetupPolicy - Grant-CsTeamsEventsPolicy - Grant-CsTeamsFilesPolicy - Grant-CsTeamsMediaConnectivityPolicy - Grant-CsTeamsMeetingTemplatePermissionPolicy - Grant-CsTeamsCarrierEmergencyCallRoutingPolicy - Grant-CsTeamsVirtualAppointmentsPolicy - Grant-CsTeamsSharedCallingRoutingPolicy - Grant-CsTeamsShiftsPolicy - Grant-CsTeamsRecordingRollOutPolicy - Grant-CsTeamsVdiPolicy - Grant-CsTeamsWorkLocationDetectionPolicy - Grant-CsTeamsBYODAndDesksPolicy - Grant-CsTeamsPersonalAttendantPolicy - New-Team - New-TeamChannel - New-TeamsApp - New-CsTeamsAIPolicy - New-CsTeamsMessagingPolicy - New-CsTeamsMeetingPolicy - New-CsOnlineVoicemailPolicy - New-CsTeamsFeedbackPolicy - New-CsTeamsUpdateManagementPolicy - New-CsTeamsChannelsPolicy - New-CsTeamsFilesPolicy - New-CsTeamsMediaConnectivityPolicy - New-CsTeamsMeetingBrandingTheme - New-CsTeamsMeetingBackgroundImage - New-CsTeamsNdiAssuranceSlate - New-CsTeamsMeetingBrandingPolicy - New-CsTeamsEmergencyCallingPolicy - New-CsTeamsEmergencyCallingExtendedNotification - New-CsTeamsCallHoldPolicy - New-CsTeamsVoiceApplicationsPolicy - New-CsTeamsEventsPolicy - New-CsTeamsCallingPolicy - New-CsExternalAccessPolicy - New-CsTeamsAppPermissionPolicy - New-CsTeamsAppSetupPolicy - New-CsTeamsMeetingTemplatePermissionPolicy - New-CsLocationPolicy - New-CsTeamsCarrierEmergencyCallRoutingPolicy - New-CsTeamsHiddenMeetingTemplate - New-CsTeamsVirtualAppointmentsPolicy - New-CsTeamsSharedCallingRoutingPolicy - New-CsTeamsHiddenTemplate - New-CsTeamsTemplatePermissionPolicy - New-CsTeamsComplianceRecordingPolicy - New-CsTeamsComplianceRecordingApplication - New-CsTeamsComplianceRecordingPairedApplication - New-CsTeamsWorkLocationDetectionPolicy - New-CsTeamsRecordingRollOutPolicy - New-CsTeamsRemoteLogCollectionDevice - New-CsCustomPrompt - New-CsCustomPromptPackage - New-CsTeamsShiftsPolicy - New-CsTeamsCustomBannerText - New-CsTeamsVdiPolicy - New-CsTeamsBYODAndDesksPolicy - New-CsTeamsPersonalAttendantPolicy - Remove-SharedWithTeam - Remove-Team - Remove-TeamChannel - Remove-TeamChannelUser - Remove-TeamsApp - Remove-TeamUser - Remove-CsTeamsAIPolicy - Remove-CsTeamsMessagingPolicy - Remove-CsTeamsMeetingPolicy - Remove-CsOnlineVoicemailPolicy - Remove-CsTeamsFeedbackPolicy - Remove-CsTeamsFilesPolicy - Remove-CsTeamsUpdateManagementPolicy - Remove-CsTeamsChannelsPolicy - Remove-CsTeamsMediaConnectivityPolicy - Remove-CsTeamsMeetingBrandingPolicy - Remove-CsTeamsEmergencyCallingPolicy - Remove-CsTeamsCallHoldPolicy - Remove-CsTeamsVoiceApplicationsPolicy - Remove-CsTeamsEventsPolicy - Remove-CsTeamsCallingPolicy - Remove-CsExternalAccessPolicy - Remove-CsTeamsAppPermissionPolicy - Remove-CsTeamsAppSetupPolicy - Remove-CsTeamsMeetingTemplatePermissionPolicy - Remove-CsLocationPolicy - Remove-CsTeamsCarrierEmergencyCallRoutingPolicy - Remove-CsTeamsVirtualAppointmentsPolicy - Remove-CsTeamsSharedCallingRoutingPolicy - Remove-CsTeamsTemplatePermissionPolicy - Remove-CsTeamsComplianceRecordingPolicy - Remove-CsTeamsComplianceRecordingApplication - Remove-CsTeamsShiftsPolicy - Remove-CsTeamsCustomBannerText - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLocationDetectionPolicy - Remove-CsTeamsRecordingRollOutPolicy - Remove-CsTeamsRemoteLogCollectionDevice - Remove-CsTeamsBYODAndDesksPolicy - Remove-CsTeamsNotificationAndFeedsPolicy - Remove-CsTeamsPersonalAttendantPolicy - Set-Team - Set-TeamArchivedState - Set-TeamChannel - Set-TeamPicture - Set-TeamsApp - Set-CsTeamsAcsFederationConfiguration - Set-CsTeamsAIPolicy - Set-CsTeamsMessagingPolicy - Set-CsTeamsMeetingPolicy - Set-CsOnlineVoicemailPolicy - Set-CsTeamsFilesPolicy - Set-CsOnlineVoicemailValidationConfiguration - Set-CsTeamsFeedbackPolicy - Set-CsTeamsUpdateManagementPolicy - Set-CsTeamsChannelsPolicy - Set-CsTeamsMediaConnectivityPolicy - Set-CsTeamsMeetingBrandingPolicy - Set-CsTeamsEmergencyCallingPolicy - Set-CsTeamsEducationConfiguration - Set-CsTeamsCallHoldPolicy - Set-CsTeamsMessagingConfiguration - Set-CsTeamsVoiceApplicationsPolicy - Set-CsTeamsEventsPolicy - Set-CsTeamsExternalAccessConfiguration - Set-CsTeamsCallingPolicy - Set-CsTeamsClientConfiguration - Set-CsExternalAccessPolicy - Set-CsTeamsAppPermissionPolicy - Set-CsTeamsAppSetupPolicy - Set-CsTeamsFirstPartyMeetingTemplateConfiguration - Set-CsTeamsMeetingTemplatePermissionPolicy - Set-CsTeamsMultiTenantOrganizationConfiguration - Set-CsLocationPolicy - Set-CsTeamsCarrierEmergencyCallRoutingPolicy - Set-CsTeamsVirtualAppointmentsPolicy - Set-CsTeamsSharedCallingRoutingPolicy - Set-CsTeamsTemplatePermissionPolicy - Set-CsTeamsComplianceRecordingPolicy - Set-CsTeamsEducationAssignmentsAppPolicy - Set-CsTeamsComplianceRecordingApplication - Set-CsTeamsShiftsPolicy - Set-CsTeamsUpgradeConfiguration - Set-CsTeamsAudioConferencingCustomPromptsConfiguration - Set-CsTeamsSipDevicesConfiguration - Set-CsTeamsMeetingConfiguration - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLocationDetectionPolicy - Set-CsTeamsRemoteLogCollectionDevice - Set-CsTeamsRecordingRollOutPolicy - Set-CsTeamsCustomBannerText - Set-CsTeamsBYODAndDesksPolicy - Set-CsTeamsNotificationAndFeedsPolicy - Set-CsTeamsPersonalAttendantPolicy - Set-CsPrivacyConfiguration - Update-M365TeamsApp - Update-M365UnifiedTenantSettings - Update-M365UnifiedCustomPendingApp - Get-CsBatchOperationDefinition - Get-CsBatchOperationStatus - Get-CsConfiguration - Get-CsGroupPolicyAssignments - Get-CsLoginInfo - Get-CsUserProvHistory - Get-GPAGroupMembers - Get-GPAUserMembership - Get-NgtProvInstanceFailOverStatus - Get-CsTeamsTenantAbuseConfiguration - Invoke-CsDirectoryObjectSync - Invoke-CsGenericNgtProvCommand - Invoke-CsRefreshGroupUsers - Invoke-CsReprocessBatchOperation - Invoke-CsReprocessGroupPolicyAssignment - Move-NgtProvInstance - New-CsConfiguration - Remove-CsConfiguration - Set-CsConfiguration - Set-CsTeamsTenantAbuseConfiguration - Set-CsPublishPolicySchemaDefaults - Get-TeamTargetingHierarchyStatus - Remove-TeamTargetingHierarchy - Set-TeamTargetingHierarchy - Clear-CsOnlineTelephoneNumberOrder - Complete-CsOnlineTelephoneNumberOrder - Disable-CsOnlineSipDomain - Enable-CsOnlineSipDomain - Export-CsAcquiredPhoneNumber - Export-CsAutoAttendantHolidays - Export-CsOnlineAudioFile - Find-CsGroup - Find-CsOnlineApplicationInstance - Get-CsApplicationAccessPolicy - Get-CsApplicationMeetingConfiguration - Get-CsAutoAttendant - Get-CsAutoAttendantHolidays - Get-CsAutoAttendantStatus - Get-CsAutoAttendantSupportedLanguage - Get-CsAutoAttendantSupportedTimeZone - Get-CsAutoAttendantTenantInformation - Get-CsBatchPolicyAssignmentOperation - Get-CsCallingLineIdentity - Get-CsCallQueue - Get-CsCloudCallDataConnection - Get-CsEffectiveTenantDialPlan - Get-CsExportAcquiredPhoneNumberStatus - Get-CsGroupPolicyAssignment - Get-CsHybridTelephoneNumber - Get-CsInboundBlockedNumberPattern - Get-CsInboundExemptNumberPattern - Get-CsMainlineAttendantAppointmentBookingFlow - Get-CsMainlineAttendantFlow - Get-CsMainlineAttendantQuestionAnswerFlow - Get-CsMeetingMigrationStatus - Get-CsOnlineApplicationInstance - Get-CsOnlineApplicationInstanceAssociation - Get-CsOnlineApplicationInstanceAssociationStatus - Get-CsOnlineAudioConferencingRoutingPolicy - Get-CsOnlineAudioFile - Get-CsOnlineDialInConferencingBridge - Get-CsOnlineDialInConferencingLanguagesSupported - Get-CsOnlineDialinConferencingPolicy - Get-CsOnlineDialInConferencingServiceNumber - Get-CsOnlineDialinConferencingTenantConfiguration - Get-CsOnlineDialInConferencingTenantSettings - Get-CsOnlineDialInConferencingUser - Get-CsOnlineDialOutPolicy - Get-CsOnlineDirectoryTenant - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - Get-CsOnlineLisCivicAddress - Get-CsOnlineLisLocation - Get-CsOnlineLisPort - Get-CsOnlineLisSubnet - Get-CsOnlineLisSwitch - Get-CsOnlineLisWirelessAccessPoint - Get-CsOnlinePSTNGateway - Get-CsOnlinePstnUsage - Get-CsOnlineSchedule - Get-CsOnlineSipDomain - Get-CsOnlineTelephoneNumber - Get-CsOnlineTelephoneNumberCountry - Get-CsOnlineTelephoneNumberOrder - Get-CsOnlineTelephoneNumberType - Get-CsOnlineUser - Get-CsOnlineVoicemailUserSettings - Get-CsOnlineVoiceRoute - Get-CsOnlineVoiceRoutingPolicy - Get-CsOnlineVoiceUser - Get-CsPhoneNumberAssignment - Get-CsPhoneNumberPolicyAssignment - Get-CsPhoneNumberTag - Get-CsPolicyPackage - Get-CsSdgBulkSignInRequestStatus - Get-CsSDGBulkSignInRequestsSummary - Get-CsTeamsAudioConferencingPolicy - Get-CsTeamsCallParkPolicy - Get-CsTeamsCortanaPolicy - Get-CsTeamsEmergencyCallRoutingPolicy - Get-CsTeamsEnhancedEncryptionPolicy - Get-CsTeamsGuestCallingConfiguration - Get-CsTeamsGuestMeetingConfiguration - Get-CsTeamsGuestMessagingConfiguration - Get-CsTeamsIPPhonePolicy - Get-CsTeamsMediaLoggingPolicy - Get-CsTeamsMeetingBroadcastConfiguration - Get-CsTeamsMeetingBroadcastPolicy - Get-CsTeamsMigrationConfiguration - Get-CsTeamsMobilityPolicy - Get-CsTeamsNetworkRoamingPolicy - Get-CsTeamsRoomVideoTeleConferencingPolicy - Get-CsTeamsSettingsCustomApp - Get-CsTeamsShiftsAppPolicy - Get-CsTeamsShiftsConnectionConnector - Get-CsTeamsShiftsConnectionErrorReport - Get-CsTeamsShiftsConnection - Get-CsTeamsShiftsConnectionInstance - Get-CsTeamsShiftsConnectionOperation - Get-CsTeamsShiftsConnectionSyncResult - Get-CsTeamsShiftsConnectionTeamMap - Get-CsTeamsShiftsConnectionWfmTeam - Get-CsTeamsShiftsConnectionWfmUser - Get-CsTeamsSurvivableBranchAppliance - Get-CsTeamsSurvivableBranchAppliancePolicy - Get-CsTeamsTargetingPolicy - Get-CsTeamsTranslationRule - Get-CsTeamsUnassignedNumberTreatment - Get-CsTeamsUpgradePolicy - Get-CsTeamsVdiPolicy - Get-CsTeamsVideoInteropServicePolicy - Get-CsTeamsWorkLoadPolicy - Get-CsTeamTemplate - Get-CsTeamTemplateList - Get-CsTenant - Get-CsTenantBlockedCallingNumbers - Get-CsTenantDialPlan - Get-CsTenantFederationConfiguration - Get-CsTenantLicensingConfiguration - Get-CsTenantMigrationConfiguration - Get-CsTenantNetworkConfiguration - Get-CsTenantNetworkRegion - Get-CsTenantNetworkSubnet - Get-CsTenantTrustedIPAddress - Get-CsUserCallingSettings - Get-CsUserPolicyAssignment - Get-CsUserPolicyPackage - Get-CsUserPolicyPackageRecommendation - Get-CsVideoInteropServiceProvider - Grant-CsApplicationAccessPolicy - Get-CsComplianceRecordingForCallQueueTemplate - Get-CsSharedCallQueueHistoryTemplate - Get-CsTagsTemplate - Grant-CsCallingLineIdentity - Grant-CsDialoutPolicy - Grant-CsGroupPolicyPackageAssignment - Grant-CsOnlineAudioConferencingRoutingPolicy - Grant-CsOnlineVoicemailPolicy - Grant-CsOnlineVoiceRoutingPolicy - Grant-CsTeamsAudioConferencingPolicy - Grant-CsTeamsCallHoldPolicy - Grant-CsTeamsCallParkPolicy - Grant-CsTeamsChannelsPolicy - Grant-CsTeamsCortanaPolicy - Grant-CsTeamsEmergencyCallingPolicy - Grant-CsTeamsEmergencyCallRoutingPolicy - Grant-CsTeamsEnhancedEncryptionPolicy - Grant-CsTeamsFeedbackPolicy - Grant-CsTeamsIPPhonePolicy - Grant-CsTeamsMediaLoggingPolicy - Grant-CsTeamsMeetingBroadcastPolicy - Grant-CsTeamsMeetingPolicy - Grant-CsTeamsMessagingPolicy - Grant-CsTeamsMobilityPolicy - Grant-CsTeamsRoomVideoTeleConferencingPolicy - Grant-CsTeamsSurvivableBranchAppliancePolicy - Grant-CsTeamsUpdateManagementPolicy - Grant-CsTeamsUpgradePolicy - Grant-CsTeamsVideoInteropServicePolicy - Grant-CsTeamsVoiceApplicationsPolicy - Grant-CsTeamsWorkLoadPolicy - Grant-CsTenantDialPlan - Grant-CsUserPolicyPackage - Grant-CsTeamsComplianceRecordingPolicy - Import-CsAutoAttendantHolidays - Import-CsOnlineAudioFile - Invoke-CsInternalPSTelemetry - Move-CsInternalHelper - New-CsApplicationAccessPolicy - New-CsAutoAttendant - New-CsAutoAttendantCallableEntity - New-CsAutoAttendantCallFlow - New-CsAutoAttendantCallHandlingAssociation - New-CsAutoAttendantDialScope - New-CsAutoAttendantMenu - New-CsAutoAttendantMenuOption - New-CsAutoAttendantPrompt - New-CsBatchPolicyAssignmentOperation - New-CsBatchPolicyPackageAssignmentOperation - New-CsCallingLineIdentity - New-CsCallQueue - New-CsCloudCallDataConnection - New-CsCustomPolicyPackage - New-CsEdgeAllowAllKnownDomains - New-CsEdgeAllowList - New-CsEdgeDomainPattern - New-CsGroupPolicyAssignment - New-CsHybridTelephoneNumber - New-CsInboundBlockedNumberPattern - New-CsInboundExemptNumberPattern - New-CsMainlineAttendantAppointmentBookingFlow - New-CsMainlineAttendantQuestionAnswerFlow - New-CsOnlineApplicationInstance - New-CsOnlineApplicationInstanceAssociation - New-CsOnlineAudioConferencingRoutingPolicy - New-CsOnlineDateTimeRange - New-CsOnlineLisCivicAddress - New-CsOnlineLisLocation - New-CsOnlinePSTNGateway - New-CsOnlineSchedule - New-CsOnlineTelephoneNumberOrder - New-CsOnlineTimeRange - New-CsOnlineVoiceRoute - New-CsOnlineVoiceRoutingPolicy - New-CsSdgBulkSignInRequest - New-CsTeamsAudioConferencingPolicy - New-CsTeamsCallParkPolicy - New-CsTeamsCortanaPolicy - New-CsTeamsEmergencyCallRoutingPolicy - New-CsTeamsEmergencyNumber - New-CsTeamsEnhancedEncryptionPolicy - New-CsTeamsIPPhonePolicy - New-CsTeamsMeetingBroadcastPolicy - New-CsTeamsMobilityPolicy - New-CsTeamsNetworkRoamingPolicy - New-CsTeamsRoomVideoTeleConferencingPolicy - New-CsTeamsShiftsConnectionBatchTeamMap - New-CsTeamsShiftsConnection - New-CsTeamsShiftsConnectionInstance - New-CsTeamsSurvivableBranchAppliance - New-CsTeamsSurvivableBranchAppliancePolicy - New-CsTeamsTranslationRule - New-CsTeamsUnassignedNumberTreatment - New-CsTeamsVdiPolicy - New-CsTeamsWorkLoadPolicy - New-CsTeamTemplate - New-CsTenantDialPlan - New-CsTenantNetworkRegion - New-CsTenantNetworkSite - New-CsTenantNetworkSubnet - New-CsTenantTrustedIPAddress - New-CsUserCallingDelegate - New-CsVideoInteropServiceProvider - New-CsVoiceNormalizationRule - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - New-CsOnlineTelephoneNumberReleaseOrder - New-CsComplianceRecordingForCallQueueTemplate - New-CsTagsTemplate - New-CsTag - New-CsSharedCallQueueHistoryTemplate - Register-CsOnlineDialInConferencingServiceNumber - Remove-CsApplicationAccessPolicy - Remove-CsAutoAttendant - Remove-CsCallingLineIdentity - Remove-CsCallQueue - Remove-CsCustomPolicyPackage - Remove-CsGroupPolicyAssignment - Remove-CsHybridTelephoneNumber - Remove-CsInboundBlockedNumberPattern - Remove-CsInboundExemptNumberPattern - Remove-CsMainlineAttendantAppointmentBookingFlow - Remove-CsMainlineAttendantQuestionAnswerFlow - Remove-CsOnlineApplicationInstanceAssociation - Remove-CsOnlineAudioConferencingRoutingPolicy - Remove-CsOnlineAudioFile - Remove-CsOnlineDialInConferencingTenantSettings - Remove-CsOnlineLisCivicAddress - Remove-CsOnlineLisLocation - Remove-CsOnlineLisPort - Remove-CsOnlineLisSubnet - Remove-CsOnlineLisSwitch - Remove-CsOnlineLisWirelessAccessPoint - Remove-CsOnlinePSTNGateway - Remove-CsOnlineSchedule - Remove-CsOnlineTelephoneNumber - Remove-CsOnlineVoiceRoute - Remove-CsOnlineVoiceRoutingPolicy - Remove-CsPhoneNumberAssignment - Remove-CsPhoneNumberTag - Remove-CsTeamsAudioConferencingPolicy - Remove-CsTeamsCallParkPolicy - Remove-CsTeamsCortanaPolicy - Remove-CsTeamsEmergencyCallRoutingPolicy - Remove-CsTeamsEnhancedEncryptionPolicy - Remove-CsTeamsIPPhonePolicy - Remove-CsTeamsMeetingBroadcastPolicy - Remove-CsTeamsMobilityPolicy - Remove-CsTeamsNetworkRoamingPolicy - Remove-CsTeamsRoomVideoTeleConferencingPolicy - Remove-CsTeamsShiftsConnection - Remove-CsTeamsShiftsConnectionInstance - Remove-CsTeamsShiftsConnectionTeamMap - Remove-CsTeamsShiftsScheduleRecord - Remove-CsTeamsSurvivableBranchAppliance - Remove-CsTeamsSurvivableBranchAppliancePolicy - Remove-CsTeamsTargetingPolicy - Remove-CsTeamsTranslationRule - Remove-CsTeamsUnassignedNumberTreatment - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLoadPolicy - Remove-CsTeamTemplate - Remove-CsTenantDialPlan - Remove-CsTenantNetworkRegion - Remove-CsTenantNetworkSite - Remove-CsTenantNetworkSubnet - Remove-CsTenantTrustedIPAddress - Remove-CsUserCallingDelegate - Remove-CsUserLicenseGracePeriod - Remove-CsVideoInteropServiceProvider - Remove-CsComplianceRecordingForCallQueueTemplate - Remove-CsTagsTemplate - Remove-CsSharedCallQueueHistoryTemplate - Set-CsApplicationAccessPolicy - Set-CsApplicationMeetingConfiguration - Set-CsAutoAttendant - Set-CsCallingLineIdentity - Set-CsCallQueue - Set-CsInboundBlockedNumberPattern - Set-CsInboundExemptNumberPattern - Set-CsMainlineAttendantAppointmentBookingFlow - Set-CsMainlineAttendantQuestionAnswerFlow - Set-CsOnlineApplicationInstance - Set-CsOnlineAudioConferencingRoutingPolicy - Set-CsOnlineDialInConferencingBridge - Set-CsOnlineDialInConferencingServiceNumber - Set-CsOnlineDialInConferencingTenantSettings - Set-CsOnlineDialInConferencingUser - Set-CsOnlineDialInConferencingUserDefaultNumber - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - Set-CsOnlineLisCivicAddress - Set-CsOnlineLisLocation - Set-CsOnlineLisPort - Set-CsOnlineLisSubnet - Set-CsOnlineLisSwitch - Set-CsOnlineLisWirelessAccessPoint - Set-CsOnlinePSTNGateway - Set-CsOnlinePstnUsage - Set-CsOnlineSchedule - Set-CsOnlineVoiceApplicationInstance - Set-CsOnlineVoicemailUserSettings - Set-CsOnlineVoiceRoute - Set-CsOnlineVoiceRoutingPolicy - Set-CsOnlineVoiceUser - Set-CsPhoneNumberAssignment - Set-CsPhoneNumberPolicyAssignment - Set-CsPhoneNumberTag - Set-CsTeamsAudioConferencingPolicy - Set-CsTeamsCallParkPolicy - Set-CsTeamsCortanaPolicy - Set-CsTeamsEmergencyCallRoutingPolicy - Set-CsTeamsEnhancedEncryptionPolicy - Set-CsTeamsGuestCallingConfiguration - Set-CsTeamsGuestMeetingConfiguration - Set-CsTeamsGuestMessagingConfiguration - Set-CsTeamsIPPhonePolicy - Set-CsTeamsMeetingBroadcastConfiguration - Set-CsTeamsMeetingBroadcastPolicy - Set-CsTeamsMigrationConfiguration - Set-CsTeamsMobilityPolicy - Set-CsTeamsNetworkRoamingPolicy - Set-CsTeamsRoomVideoTeleConferencingPolicy - Set-CsTeamsSettingsCustomApp - Set-CsTeamsShiftsAppPolicy - Set-CsTeamsShiftsConnection - Set-CsTeamsShiftsConnectionInstance - Set-CsTeamsSurvivableBranchAppliance - Set-CsTeamsSurvivableBranchAppliancePolicy - Set-CsTeamsTargetingPolicy - Set-CsTeamsTranslationRule - Set-CsTeamsUnassignedNumberTreatment - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLoadPolicy - Set-CsTenantBlockedCallingNumbers - Set-CsTenantDialPlan - Set-CsTenantFederationConfiguration - Set-CsTenantMigrationConfiguration - Set-CsTenantNetworkRegion - Set-CsTenantNetworkSite - Set-CsTenantNetworkSubnet - Set-CsTenantTrustedIPAddress - Set-CsUser - Set-CsUserCallingDelegate - Set-CsUserCallingSettings - Set-CsVideoInteropServiceProvider - Set-CsComplianceRecordingForCallQueueTemplate - Set-CsTagsTemplate - Set-CsSharedCallQueueHistoryTemplate - Start-CsExMeetingMigration - Sync-CsOnlineApplicationInstance - Test-CsEffectiveTenantDialPlan - Test-CsInboundBlockedNumberPattern - Test-CsTeamsShiftsConnectionValidate - Test-CsTeamsTranslationRule - Test-CsTeamsUnassignedNumberTreatment - Test-CsVoiceNormalizationRule - Unregister-CsOnlineDialInConferencingServiceNumber - Update-CsAutoAttendant - Update-CsCustomPolicyPackage - Update-CsPhoneNumberTag - Update-CsTeamsShiftsConnection - Update-CsTeamsShiftsConnectionInstance - Update-CsTeamTemplate - New-CsBatchTeamsDeployment - Get-CsBatchTeamsDeploymentStatus - Get-CsPersonalAttendantSettings - Set-CsPersonalAttendantSettings - Set-CsOCEContext - Clear-CsOCEContext - Get-CsRegionContext - Set-CsRegionContext - Clear-CsRegionContext - Get-CsMeetingMigrationTransactionHistory - Get-CsMasVersionedSchemaData - Get-CsMasObjectChangelog - Get-CsBusinessVoiceDirectoryDiagnosticData - Get-CsCloudTenant - Get-CsCloudUser - Get-CsHostingProvider - Set-CsTenantUserBackfill - Invoke-CsCustomHandlerNgtprov - Invoke-CsCustomHandlerCallBackNgtprov - New-CsSdgDeviceTaggingRequest - Get-CsMoveTenantServiceInstanceTaskStatus - Move-CsTenantServiceInstance - Move-CsTenantCrossRegion - Invoke-CsDirectObjectSync - New-CsSDGDeviceTransferRequest - Get-CsAadTenant - Get-CsAadUser - Clear-CsCacheOperation - Move-CsAvsTenantPartition - Invoke-CsMsodsSync - Get-CsUssUserSettings - Set-CsUssUserSettings - Invoke-CsRehomeuser - Set-CsNotifyCache - - - - - Cmdlet - - - - Add-TeamChannelUser - Add-TeamUser - Connect-MicrosoftTeams - Disconnect-MicrosoftTeams - Set-TeamsEnvironmentConfig - Clear-TeamsEnvironmentConfig - Get-AssociatedTeam - Get-MultiGeoRegion - Get-Operation - Get-SharedWithTeam - Get-SharedWithTeamUser - Get-Team - Get-TeamAllChannel - Get-TeamChannel - Get-TeamChannelUser - Get-TeamIncomingChannel - Get-TeamsApp - Get-TeamsArtifacts - Get-TeamUser - Get-M365TeamsApp - Get-AllM365TeamsApps - Get-M365UnifiedTenantSettings - Get-M365UnifiedCustomPendingApps - Get-CsTeamsAcsFederationConfiguration - Get-CsTeamsMessagingPolicy - Get-CsTeamsMeetingPolicy - Get-CsOnlineVoicemailPolicy - Get-CsOnlineVoicemailValidationConfiguration - Get-CsTeamsAIPolicy - Get-CsTeamsFeedbackPolicy - Get-CsTeamsUpdateManagementPolicy - Get-CsTeamsChannelsPolicy - Get-CsTeamsMeetingBrandingPolicy - Get-CsTeamsEmergencyCallingPolicy - Get-CsTeamsCallHoldPolicy - Get-CsTeamsMessagingConfiguration - Get-CsTeamsVoiceApplicationsPolicy - Get-CsTeamsEventsPolicy - Get-CsTeamsExternalAccessConfiguration - Get-CsTeamsFilesPolicy - Get-CsTeamsCallingPolicy - Get-CsTeamsClientConfiguration - Get-CsExternalAccessPolicy - Get-CsTeamsAppPermissionPolicy - Get-CsTeamsAppSetupPolicy - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - Get-CsTeamsMeetingTemplatePermissionPolicy - Get-CsLocationPolicy - Get-CsTeamsShiftsPolicy - Get-CsTenantNetworkSite - Get-CsTeamsCarrierEmergencyCallRoutingPolicy - Get-CsTeamsMeetingTemplateConfiguration - Get-CsTeamsVirtualAppointmentsPolicy - Get-CsTeamsSharedCallingRoutingPolicy - Get-CsTeamsTemplatePermissionPolicy - Get-CsTeamsComplianceRecordingPolicy - Get-CsTeamsComplianceRecordingApplication - Get-CsTeamsEducationAssignmentsAppPolicy - Get-CsTeamsUpgradeConfiguration - Get-CsTeamsAudioConferencingCustomPromptsConfiguration - Get-CsTeamsSipDevicesConfiguration - Get-CsTeamsCustomBannerText - Get-CsTeamsVdiPolicy - Get-CsTeamsMediaConnectivityPolicy - Get-CsTeamsMeetingConfiguration - Get-CsTeamsWorkLocationDetectionPolicy - Get-CsTeamsRecordingRollOutPolicy - Get-CsTeamsRemoteLogCollectionConfiguration - Get-CsTeamsRemoteLogCollectionDevice - Get-CsTeamsEducationConfiguration - Get-CsTeamsBYODAndDesksPolicy - Get-CsTeamsNotificationAndFeedsPolicy - Get-CsTeamsMultiTenantOrganizationConfiguration - Get-CsTeamsPersonalAttendantPolicy - Get-CsPrivacyConfiguration - Grant-CsTeamsAIPolicy - Grant-CsTeamsMeetingBrandingPolicy - Grant-CsExternalAccessPolicy - Grant-CsTeamsCallingPolicy - Grant-CsTeamsAppPermissionPolicy - Grant-CsTeamsAppSetupPolicy - Grant-CsTeamsEventsPolicy - Grant-CsTeamsFilesPolicy - Grant-CsTeamsMediaConnectivityPolicy - Grant-CsTeamsMeetingTemplatePermissionPolicy - Grant-CsTeamsCarrierEmergencyCallRoutingPolicy - Grant-CsTeamsVirtualAppointmentsPolicy - Grant-CsTeamsSharedCallingRoutingPolicy - Grant-CsTeamsShiftsPolicy - Grant-CsTeamsRecordingRollOutPolicy - Grant-CsTeamsVdiPolicy - Grant-CsTeamsWorkLocationDetectionPolicy - Grant-CsTeamsBYODAndDesksPolicy - Grant-CsTeamsPersonalAttendantPolicy - New-Team - New-TeamChannel - New-TeamsApp - New-CsTeamsAIPolicy - New-CsTeamsMessagingPolicy - New-CsTeamsMeetingPolicy - New-CsOnlineVoicemailPolicy - New-CsTeamsFeedbackPolicy - New-CsTeamsUpdateManagementPolicy - New-CsTeamsChannelsPolicy - New-CsTeamsFilesPolicy - New-CsTeamsMediaConnectivityPolicy - New-CsTeamsMeetingBrandingTheme - New-CsTeamsMeetingBackgroundImage - New-CsTeamsNdiAssuranceSlate - New-CsTeamsMeetingBrandingPolicy - New-CsTeamsEmergencyCallingPolicy - New-CsTeamsEmergencyCallingExtendedNotification - New-CsTeamsCallHoldPolicy - New-CsTeamsVoiceApplicationsPolicy - New-CsTeamsEventsPolicy - New-CsTeamsCallingPolicy - New-CsExternalAccessPolicy - New-CsTeamsAppPermissionPolicy - New-CsTeamsAppSetupPolicy - New-CsTeamsMeetingTemplatePermissionPolicy - New-CsLocationPolicy - New-CsTeamsCarrierEmergencyCallRoutingPolicy - New-CsTeamsHiddenMeetingTemplate - New-CsTeamsVirtualAppointmentsPolicy - New-CsTeamsSharedCallingRoutingPolicy - New-CsTeamsHiddenTemplate - New-CsTeamsTemplatePermissionPolicy - New-CsTeamsComplianceRecordingPolicy - New-CsTeamsComplianceRecordingApplication - New-CsTeamsComplianceRecordingPairedApplication - New-CsTeamsWorkLocationDetectionPolicy - New-CsTeamsRecordingRollOutPolicy - New-CsTeamsRemoteLogCollectionDevice - New-CsCustomPrompt - New-CsCustomPromptPackage - New-CsTeamsShiftsPolicy - New-CsTeamsCustomBannerText - New-CsTeamsVdiPolicy - New-CsTeamsBYODAndDesksPolicy - New-CsTeamsPersonalAttendantPolicy - Remove-SharedWithTeam - Remove-Team - Remove-TeamChannel - Remove-TeamChannelUser - Remove-TeamsApp - Remove-TeamUser - Remove-CsTeamsAIPolicy - Remove-CsTeamsMessagingPolicy - Remove-CsTeamsMeetingPolicy - Remove-CsOnlineVoicemailPolicy - Remove-CsTeamsFeedbackPolicy - Remove-CsTeamsFilesPolicy - Remove-CsTeamsUpdateManagementPolicy - Remove-CsTeamsChannelsPolicy - Remove-CsTeamsMediaConnectivityPolicy - Remove-CsTeamsMeetingBrandingPolicy - Remove-CsTeamsEmergencyCallingPolicy - Remove-CsTeamsCallHoldPolicy - Remove-CsTeamsVoiceApplicationsPolicy - Remove-CsTeamsEventsPolicy - Remove-CsTeamsCallingPolicy - Remove-CsExternalAccessPolicy - Remove-CsTeamsAppPermissionPolicy - Remove-CsTeamsAppSetupPolicy - Remove-CsTeamsMeetingTemplatePermissionPolicy - Remove-CsLocationPolicy - Remove-CsTeamsCarrierEmergencyCallRoutingPolicy - Remove-CsTeamsVirtualAppointmentsPolicy - Remove-CsTeamsSharedCallingRoutingPolicy - Remove-CsTeamsTemplatePermissionPolicy - Remove-CsTeamsComplianceRecordingPolicy - Remove-CsTeamsComplianceRecordingApplication - Remove-CsTeamsShiftsPolicy - Remove-CsTeamsCustomBannerText - Remove-CsTeamsVdiPolicy - Remove-CsTeamsWorkLocationDetectionPolicy - Remove-CsTeamsRecordingRollOutPolicy - Remove-CsTeamsRemoteLogCollectionDevice - Remove-CsTeamsBYODAndDesksPolicy - Remove-CsTeamsNotificationAndFeedsPolicy - Remove-CsTeamsPersonalAttendantPolicy - Set-Team - Set-TeamArchivedState - Set-TeamChannel - Set-TeamPicture - Set-TeamsApp - Set-CsTeamsAcsFederationConfiguration - Set-CsTeamsAIPolicy - Set-CsTeamsMessagingPolicy - Set-CsTeamsMeetingPolicy - Set-CsOnlineVoicemailPolicy - Set-CsTeamsFilesPolicy - Set-CsOnlineVoicemailValidationConfiguration - Set-CsTeamsFeedbackPolicy - Set-CsTeamsUpdateManagementPolicy - Set-CsTeamsChannelsPolicy - Set-CsTeamsMediaConnectivityPolicy - Set-CsTeamsMeetingBrandingPolicy - Set-CsTeamsEmergencyCallingPolicy - Set-CsTeamsEducationConfiguration - Set-CsTeamsCallHoldPolicy - Set-CsTeamsMessagingConfiguration - Set-CsTeamsVoiceApplicationsPolicy - Set-CsTeamsEventsPolicy - Set-CsTeamsExternalAccessConfiguration - Set-CsTeamsCallingPolicy - Set-CsTeamsClientConfiguration - Set-CsExternalAccessPolicy - Set-CsTeamsAppPermissionPolicy - Set-CsTeamsAppSetupPolicy - Set-CsTeamsFirstPartyMeetingTemplateConfiguration - Set-CsTeamsMeetingTemplatePermissionPolicy - Set-CsTeamsMultiTenantOrganizationConfiguration - Set-CsLocationPolicy - Set-CsTeamsCarrierEmergencyCallRoutingPolicy - Set-CsTeamsVirtualAppointmentsPolicy - Set-CsTeamsSharedCallingRoutingPolicy - Set-CsTeamsTemplatePermissionPolicy - Set-CsTeamsComplianceRecordingPolicy - Set-CsTeamsEducationAssignmentsAppPolicy - Set-CsTeamsComplianceRecordingApplication - Set-CsTeamsShiftsPolicy - Set-CsTeamsUpgradeConfiguration - Set-CsTeamsAudioConferencingCustomPromptsConfiguration - Set-CsTeamsSipDevicesConfiguration - Set-CsTeamsMeetingConfiguration - Set-CsTeamsVdiPolicy - Set-CsTeamsWorkLocationDetectionPolicy - Set-CsTeamsRemoteLogCollectionDevice - Set-CsTeamsRecordingRollOutPolicy - Set-CsTeamsCustomBannerText - Set-CsTeamsBYODAndDesksPolicy - Set-CsTeamsNotificationAndFeedsPolicy - Set-CsTeamsPersonalAttendantPolicy - Set-CsPrivacyConfiguration - Update-M365TeamsApp - Update-M365UnifiedTenantSettings - Update-M365UnifiedCustomPendingApp - Get-CsBatchOperationDefinition - Get-CsBatchOperationStatus - Get-CsConfiguration - Get-CsGroupPolicyAssignments - Get-CsLoginInfo - Get-CsUserProvHistory - Get-GPAGroupMembers - Get-GPAUserMembership - Get-NgtProvInstanceFailOverStatus - Get-CsTeamsTenantAbuseConfiguration - Invoke-CsDirectoryObjectSync - Invoke-CsGenericNgtProvCommand - Invoke-CsRefreshGroupUsers - Invoke-CsReprocessBatchOperation - Invoke-CsReprocessGroupPolicyAssignment - Move-NgtProvInstance - New-CsConfiguration - Remove-CsConfiguration - Set-CsConfiguration - Set-CsTeamsTenantAbuseConfiguration - Set-CsPublishPolicySchemaDefaults - Get-TeamTargetingHierarchyStatus - Remove-TeamTargetingHierarchy - Set-TeamTargetingHierarchy - - - - - Workflow - - - - - - **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes - - - - - https://www.powershellgallery.com/api/v2 - PSGallery - NuGet - - - System.Management.Automation.PSCustomObject - System.Object - - - Microsoft Corporation. All rights reserved. - Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core._x000D__x000A__x000D__x000A_For more information, please visit the following: https://docs.microsoft.com/MicrosoftTeams/teams-powershell-overview - False - **7.4.0-GA** (The project - MicrosoftTeams contains changes till this release)_x000D__x000A_- Releases Get-TeamsArtifacts cmdlet._x000D__x000A_- Adds MainlineAttendantAgentVoiceId parameter to New-CsAutoAttendant cmdlet._x000D__x000A_- Releases [New|Set|Remove|Get]-CsTagsTemplate cmdlets._x000D__x000A_- Releases New-CsTag cmdlet._x000D__x000A_- [BREAKING CHANGE] Renames BotId and PairedApplication parameters in [New|Set|Get]-CsComplianceRecordingForCallQueueTemplate cmdlets to BotApplicationInstanceObjectId and PairedApplicationInstanceObjectId respectively._x000D__x000A_- Releases Get-TeamsRemoteLogCollectionConfiguration and [Get|Set|New|Remove]-TeamsRemoteLogCollectionDevice cmdlets._x000D__x000A__x000D__x000A_- The complete release notes can be found in the below link:_x000D__x000A_https://docs.microsoft.com/MicrosoftTeams/teams-powershell-release-notes - True - True - 95457 - 14350974 - 18512054 - 06-10-2025 13:29:35 +02:00 - 06-10-2025 13:29:35 +02:00 - 03-11-2025 17:30:00 +01:00 - Office365 MicrosoftTeams Teams PSModule PSEdition_Core PSEdition_Desktop - False - 2025-11-03T17:30:00Z - 7.4.0 - Microsoft Corporation - false - Module - MicrosoftTeams.nuspec|GetTeamSettings.format.ps1xml|LICENSE.txt|Microsoft.Teams.ConfigAPI.Cmdlets.custom.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.format.ps1xml|Microsoft.Teams.ConfigAPI.Cmdlets.psd1|Microsoft.Teams.ConfigAPI.Cmdlets.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.oce.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineDialinConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.OnlineVoicemail.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.preview.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psd1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.psm1|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsAppPolicyConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMeetingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMigrationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsMultiTenantOrganizationConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsRoutingConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsSipDevicesConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.TenantConfiguration.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.VoicemailConfig.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.Core.xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAIPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreAudioConferencing.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreBYODAndDesksPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreMediaConnectivityPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CorePersonalAttendantPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreRecordingRollOutPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreVirtualAppointmentsPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.Cmdlets.CoreWorkLocationDetectionPolicy.format.ps1xml|Microsoft.Teams.Policy.Administration.psd1|Microsoft.Teams.Policy.Administration.psm1|Microsoft.Teams.Policy.Administration.xml|Microsoft.Teams.PowerShell.Module.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|Microsoft.Teams.PowerShell.TeamsCmdlets.psd1|Microsoft.Teams.PowerShell.TeamsCmdlets.psm1|Microsoft.Teams.PowerShell.TeamsCmdlets.xml|MicrosoftTeams.psd1|MicrosoftTeams.psm1|SetMSTeamsReleaseEnvironment.ps1|SfbRpsModule.format.ps1xml|bin\BrotliSharpLib.dll|bin\Microsoft.IdentityModel.JsonWebTokens.dll|bin\Microsoft.IdentityModel.Logging.dll|bin\Microsoft.IdentityModel.Tokens.dll|bin\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json|bin\Microsoft.Teams.ConfigAPI.Cmdlets.private.dll|bin\System.IdentityModel.Tokens.Jwt.dll|custom\CmdletConfig.json|custom\Merged_custom_PsExt.ps1|custom\Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1|en-US\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml|en-US\Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml|en-US\Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml|en-US\MicrosoftTeams-help.xml|exports\ProxyCmdletDefinitionsWithHelp.ps1|internal\Merged_internal.ps1|internal\Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1|net472\CmdletSettings.json|net472\Microsoft.ApplicationInsights.dll|net472\Microsoft.Applications.Events.Server.dll|net472\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|net472\Microsoft.Azure.KeyVault.Core.dll|net472\Microsoft.Azure.KeyVault.Cryptography.dll|net472\Microsoft.Azure.KeyVault.Jose.dll|net472\Microsoft.Data.Sqlite.dll|net472\Microsoft.Extensions.Configuration.Abstractions.dll|net472\Microsoft.Extensions.Configuration.dll|net472\Microsoft.Extensions.DependencyInjection.Abstractions.dll|net472\Microsoft.Extensions.Logging.Abstractions.dll|net472\Microsoft.Extensions.Logging.dll|net472\Microsoft.Extensions.Primitives.dll|net472\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|net472\Microsoft.Identity.Client.Broker.dll|net472\Microsoft.Identity.Client.Desktop.dll|net472\Microsoft.Identity.Client.dll|net472\Microsoft.Identity.Client.Extensions.Msal.dll|net472\Microsoft.Identity.Client.NativeInterop.dll|net472\Microsoft.IdentityModel.Abstractions.dll|net472\Microsoft.IdentityModel.JsonWebTokens.dll|net472\Microsoft.IdentityModel.Logging.dll|net472\Microsoft.IdentityModel.Tokens.dll|net472\Microsoft.Rest.ClientRuntime.Azure.dll|net472\Microsoft.Rest.ClientRuntime.dll|net472\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|net472\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|net472\Microsoft.Teams.Policy.Administration.dll|net472\Microsoft.Teams.PowerShell.Module.dll|net472\Microsoft.Teams.PowerShell.Module.pdb|net472\Microsoft.Teams.PowerShell.Module.xml|net472\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|net472\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|net472\Microsoft.Web.WebView2.Core.dll|net472\Microsoft.Web.WebView2.WinForms.dll|net472\Microsoft.Web.WebView2.Wpf.dll|net472\Newtonsoft.Json.dll|net472\OneCollectorChannel.dll|net472\Polly.Contrib.WaitAndRetry.dll|net472\Polly.dll|net472\System.Buffers.dll|net472\System.Diagnostics.DiagnosticSource.dll|net472\System.IdentityModel.Tokens.Jwt.dll|net472\System.IO.FileSystem.AccessControl.dll|net472\System.Management.Automation.dll|net472\System.Memory.dll|net472\System.Numerics.Vectors.dll|net472\System.Runtime.CompilerServices.Unsafe.dll|net472\System.Security.AccessControl.dll|net472\System.Security.Cryptography.ProtectedData.dll|net472\System.Security.Principal.Windows.dll|net472\System.ValueTuple.dll|net472\runtimes\win-arm64\native\msalruntime_arm64.dll|net472\runtimes\win-x64\native\msalruntime.dll|net472\runtimes\win-x86\native\msalruntime_x005F_x86.dll|netcoreapp3.1\CmdletSettings.json|netcoreapp3.1\Microsoft.ApplicationInsights.dll|netcoreapp3.1\Microsoft.Applications.Events.Server.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.AzureServiceDeploy.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Core.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Cryptography.dll|netcoreapp3.1\Microsoft.Azure.KeyVault.Jose.dll|netcoreapp3.1\Microsoft.Data.Sqlite.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Configuration.dll|netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll|netcoreapp3.1\Microsoft.Extensions.Logging.dll|netcoreapp3.1\Microsoft.Extensions.Primitives.dll|netcoreapp3.1\Microsoft.Ic3.TenantAdminApi.Common.Helper.dll|netcoreapp3.1\Microsoft.Identity.Client.Broker.dll|netcoreapp3.1\Microsoft.Identity.Client.Desktop.dll|netcoreapp3.1\Microsoft.Identity.Client.dll|netcoreapp3.1\Microsoft.Identity.Client.Extensions.Msal.dll|netcoreapp3.1\Microsoft.Identity.Client.NativeInterop.dll|netcoreapp3.1\Microsoft.IdentityModel.Abstractions.dll|netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll|netcoreapp3.1\Microsoft.IdentityModel.Logging.dll|netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.Azure.dll|netcoreapp3.1\Microsoft.Rest.ClientRuntime.dll|netcoreapp3.1\Microsoft.Teams.ConfigAPI.CmdletHostContract.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll|netcoreapp3.1\Microsoft.Teams.Policy.Administration.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.deps.json|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.dll|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.pdb|netcoreapp3.1\Microsoft.Teams.PowerShell.Module.xml|netcoreapp3.1\Microsoft.Teams.PowerShell.TeamsCmdlets.dll|netcoreapp3.1\Microsoft.TeamsCmdlets.PowerShell.Connect.dll|netcoreapp3.1\Microsoft.Web.WebView2.Core.dll|netcoreapp3.1\Microsoft.Web.WebView2.WinForms.dll|netcoreapp3.1\Microsoft.Web.WebView2.Wpf.dll|netcoreapp3.1\Newtonsoft.Json.dll|netcoreapp3.1\OneCollectorChannel.dll|netcoreapp3.1\Polly.Contrib.WaitAndRetry.dll|netcoreapp3.1\Polly.dll|netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll|netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll|netcoreapp3.1\System.IO.FileSystem.AccessControl.dll|netcoreapp3.1\System.Management.Automation.dll|netcoreapp3.1\System.Management.dll|netcoreapp3.1\System.Runtime.CompilerServices.Unsafe.dll|netcoreapp3.1\System.Security.AccessControl.dll|netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll|netcoreapp3.1\System.Security.Principal.Windows.dll|netcoreapp3.1\runtimes\win-arm64\native\msalruntime_arm64.dll|netcoreapp3.1\runtimes\win-x64\native\msalruntime.dll|netcoreapp3.1\runtimes\win-x86\native\msalruntime_x005F_x86.dll|_manifest\spdx_2.2\bsi.cose|_manifest\spdx_2.2\bsi.json|_manifest\spdx_2.2\ESRPClientLogs1001085417078.json|_manifest\spdx_2.2\manifest.cat|_manifest\spdx_2.2\manifest.spdx.cose|_manifest\spdx_2.2\manifest.spdx.json|_manifest\spdx_2.2\manifest.spdx.json.sha256 - Add-TeamChannelUser Add-TeamUser Connect-MicrosoftTeams Disconnect-MicrosoftTeams Set-TeamsEnvironmentConfig Clear-TeamsEnvironmentConfig Get-AssociatedTeam Get-MultiGeoRegion Get-Operation Get-SharedWithTeam Get-SharedWithTeamUser Get-Team Get-TeamAllChannel Get-TeamChannel Get-TeamChannelUser Get-TeamIncomingChannel Get-TeamsApp Get-TeamsArtifacts Get-TeamUser Get-M365TeamsApp Get-AllM365TeamsApps Get-M365UnifiedTenantSettings Get-M365UnifiedCustomPendingApps Get-CsTeamsAcsFederationConfiguration Get-CsTeamsMessagingPolicy Get-CsTeamsMeetingPolicy Get-CsOnlineVoicemailPolicy Get-CsOnlineVoicemailValidationConfiguration Get-CsTeamsAIPolicy Get-CsTeamsFeedbackPolicy Get-CsTeamsUpdateManagementPolicy Get-CsTeamsChannelsPolicy Get-CsTeamsMeetingBrandingPolicy Get-CsTeamsEmergencyCallingPolicy Get-CsTeamsCallHoldPolicy Get-CsTeamsMessagingConfiguration Get-CsTeamsVoiceApplicationsPolicy Get-CsTeamsEventsPolicy Get-CsTeamsExternalAccessConfiguration Get-CsTeamsFilesPolicy Get-CsTeamsCallingPolicy Get-CsTeamsClientConfiguration Get-CsExternalAccessPolicy Get-CsTeamsAppPermissionPolicy Get-CsTeamsAppSetupPolicy Get-CsTeamsFirstPartyMeetingTemplateConfiguration Get-CsTeamsMeetingTemplatePermissionPolicy Get-CsLocationPolicy Get-CsTeamsShiftsPolicy Get-CsTenantNetworkSite Get-CsTeamsCarrierEmergencyCallRoutingPolicy Get-CsTeamsMeetingTemplateConfiguration Get-CsTeamsVirtualAppointmentsPolicy Get-CsTeamsSharedCallingRoutingPolicy Get-CsTeamsTemplatePermissionPolicy Get-CsTeamsComplianceRecordingPolicy Get-CsTeamsComplianceRecordingApplication Get-CsTeamsEducationAssignmentsAppPolicy Get-CsTeamsUpgradeConfiguration Get-CsTeamsAudioConferencingCustomPromptsConfiguration Get-CsTeamsSipDevicesConfiguration Get-CsTeamsCustomBannerText Get-CsTeamsVdiPolicy Get-CsTeamsMediaConnectivityPolicy Get-CsTeamsMeetingConfiguration Get-CsTeamsWorkLocationDetectionPolicy Get-CsTeamsRecordingRollOutPolicy Get-CsTeamsRemoteLogCollectionConfiguration Get-CsTeamsRemoteLogCollectionDevice Get-CsTeamsEducationConfiguration Get-CsTeamsBYODAndDesksPolicy Get-CsTeamsNotificationAndFeedsPolicy Get-CsTeamsMultiTenantOrganizationConfiguration Get-CsTeamsPersonalAttendantPolicy Get-CsPrivacyConfiguration Grant-CsTeamsAIPolicy Grant-CsTeamsMeetingBrandingPolicy Grant-CsExternalAccessPolicy Grant-CsTeamsCallingPolicy Grant-CsTeamsAppPermissionPolicy Grant-CsTeamsAppSetupPolicy Grant-CsTeamsEventsPolicy Grant-CsTeamsFilesPolicy Grant-CsTeamsMediaConnectivityPolicy Grant-CsTeamsMeetingTemplatePermissionPolicy Grant-CsTeamsCarrierEmergencyCallRoutingPolicy Grant-CsTeamsVirtualAppointmentsPolicy Grant-CsTeamsSharedCallingRoutingPolicy Grant-CsTeamsShiftsPolicy Grant-CsTeamsRecordingRollOutPolicy Grant-CsTeamsVdiPolicy Grant-CsTeamsWorkLocationDetectionPolicy Grant-CsTeamsBYODAndDesksPolicy Grant-CsTeamsPersonalAttendantPolicy New-Team New-TeamChannel New-TeamsApp New-CsTeamsAIPolicy New-CsTeamsMessagingPolicy New-CsTeamsMeetingPolicy New-CsOnlineVoicemailPolicy New-CsTeamsFeedbackPolicy New-CsTeamsUpdateManagementPolicy New-CsTeamsChannelsPolicy New-CsTeamsFilesPolicy New-CsTeamsMediaConnectivityPolicy New-CsTeamsMeetingBrandingTheme New-CsTeamsMeetingBackgroundImage New-CsTeamsNdiAssuranceSlate New-CsTeamsMeetingBrandingPolicy New-CsTeamsEmergencyCallingPolicy New-CsTeamsEmergencyCallingExtendedNotification New-CsTeamsCallHoldPolicy New-CsTeamsVoiceApplicationsPolicy New-CsTeamsEventsPolicy New-CsTeamsCallingPolicy New-CsExternalAccessPolicy New-CsTeamsAppPermissionPolicy New-CsTeamsAppSetupPolicy New-CsTeamsMeetingTemplatePermissionPolicy New-CsLocationPolicy New-CsTeamsCarrierEmergencyCallRoutingPolicy New-CsTeamsHiddenMeetingTemplate New-CsTeamsVirtualAppointmentsPolicy New-CsTeamsSharedCallingRoutingPolicy New-CsTeamsHiddenTemplate New-CsTeamsTemplatePermissionPolicy New-CsTeamsComplianceRecordingPolicy New-CsTeamsComplianceRecordingApplication New-CsTeamsComplianceRecordingPairedApplication New-CsTeamsWorkLocationDetectionPolicy New-CsTeamsRecordingRollOutPolicy New-CsTeamsRemoteLogCollectionDevice New-CsCustomPrompt New-CsCustomPromptPackage New-CsTeamsShiftsPolicy New-CsTeamsCustomBannerText New-CsTeamsVdiPolicy New-CsTeamsBYODAndDesksPolicy New-CsTeamsPersonalAttendantPolicy Remove-SharedWithTeam Remove-Team Remove-TeamChannel Remove-TeamChannelUser Remove-TeamsApp Remove-TeamUser Remove-CsTeamsAIPolicy Remove-CsTeamsMessagingPolicy Remove-CsTeamsMeetingPolicy Remove-CsOnlineVoicemailPolicy Remove-CsTeamsFeedbackPolicy Remove-CsTeamsFilesPolicy Remove-CsTeamsUpdateManagementPolicy Remove-CsTeamsChannelsPolicy Remove-CsTeamsMediaConnectivityPolicy Remove-CsTeamsMeetingBrandingPolicy Remove-CsTeamsEmergencyCallingPolicy Remove-CsTeamsCallHoldPolicy Remove-CsTeamsVoiceApplicationsPolicy Remove-CsTeamsEventsPolicy Remove-CsTeamsCallingPolicy Remove-CsExternalAccessPolicy Remove-CsTeamsAppPermissionPolicy Remove-CsTeamsAppSetupPolicy Remove-CsTeamsMeetingTemplatePermissionPolicy Remove-CsLocationPolicy Remove-CsTeamsCarrierEmergencyCallRoutingPolicy Remove-CsTeamsVirtualAppointmentsPolicy Remove-CsTeamsSharedCallingRoutingPolicy Remove-CsTeamsTemplatePermissionPolicy Remove-CsTeamsComplianceRecordingPolicy Remove-CsTeamsComplianceRecordingApplication Remove-CsTeamsShiftsPolicy Remove-CsTeamsCustomBannerText Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLocationDetectionPolicy Remove-CsTeamsRecordingRollOutPolicy Remove-CsTeamsRemoteLogCollectionDevice Remove-CsTeamsBYODAndDesksPolicy Remove-CsTeamsNotificationAndFeedsPolicy Remove-CsTeamsPersonalAttendantPolicy Set-Team Set-TeamArchivedState Set-TeamChannel Set-TeamPicture Set-TeamsApp Set-CsTeamsAcsFederationConfiguration Set-CsTeamsAIPolicy Set-CsTeamsMessagingPolicy Set-CsTeamsMeetingPolicy Set-CsOnlineVoicemailPolicy Set-CsTeamsFilesPolicy Set-CsOnlineVoicemailValidationConfiguration Set-CsTeamsFeedbackPolicy Set-CsTeamsUpdateManagementPolicy Set-CsTeamsChannelsPolicy Set-CsTeamsMediaConnectivityPolicy Set-CsTeamsMeetingBrandingPolicy Set-CsTeamsEmergencyCallingPolicy Set-CsTeamsEducationConfiguration Set-CsTeamsCallHoldPolicy Set-CsTeamsMessagingConfiguration Set-CsTeamsVoiceApplicationsPolicy Set-CsTeamsEventsPolicy Set-CsTeamsExternalAccessConfiguration Set-CsTeamsCallingPolicy Set-CsTeamsClientConfiguration Set-CsExternalAccessPolicy Set-CsTeamsAppPermissionPolicy Set-CsTeamsAppSetupPolicy Set-CsTeamsFirstPartyMeetingTemplateConfiguration Set-CsTeamsMeetingTemplatePermissionPolicy Set-CsTeamsMultiTenantOrganizationConfiguration Set-CsLocationPolicy Set-CsTeamsCarrierEmergencyCallRoutingPolicy Set-CsTeamsVirtualAppointmentsPolicy Set-CsTeamsSharedCallingRoutingPolicy Set-CsTeamsTemplatePermissionPolicy Set-CsTeamsComplianceRecordingPolicy Set-CsTeamsEducationAssignmentsAppPolicy Set-CsTeamsComplianceRecordingApplication Set-CsTeamsShiftsPolicy Set-CsTeamsUpgradeConfiguration Set-CsTeamsAudioConferencingCustomPromptsConfiguration Set-CsTeamsSipDevicesConfiguration Set-CsTeamsMeetingConfiguration Set-CsTeamsVdiPolicy Set-CsTeamsWorkLocationDetectionPolicy Set-CsTeamsRemoteLogCollectionDevice Set-CsTeamsRecordingRollOutPolicy Set-CsTeamsCustomBannerText Set-CsTeamsBYODAndDesksPolicy Set-CsTeamsNotificationAndFeedsPolicy Set-CsTeamsPersonalAttendantPolicy Set-CsPrivacyConfiguration Update-M365TeamsApp Update-M365UnifiedTenantSettings Update-M365UnifiedCustomPendingApp Get-CsBatchOperationDefinition Get-CsBatchOperationStatus Get-CsConfiguration Get-CsGroupPolicyAssignments Get-CsLoginInfo Get-CsUserProvHistory Get-GPAGroupMembers Get-GPAUserMembership Get-NgtProvInstanceFailOverStatus Get-CsTeamsTenantAbuseConfiguration Invoke-CsDirectoryObjectSync Invoke-CsGenericNgtProvCommand Invoke-CsRefreshGroupUsers Invoke-CsReprocessBatchOperation Invoke-CsReprocessGroupPolicyAssignment Move-NgtProvInstance New-CsConfiguration Remove-CsConfiguration Set-CsConfiguration Set-CsTeamsTenantAbuseConfiguration Set-CsPublishPolicySchemaDefaults Get-TeamTargetingHierarchyStatus Remove-TeamTargetingHierarchy Set-TeamTargetingHierarchy - Clear-CsOnlineTelephoneNumberOrder Complete-CsOnlineTelephoneNumberOrder Disable-CsOnlineSipDomain Enable-CsOnlineSipDomain Export-CsAcquiredPhoneNumber Export-CsAutoAttendantHolidays Export-CsOnlineAudioFile Find-CsGroup Find-CsOnlineApplicationInstance Get-CsApplicationAccessPolicy Get-CsApplicationMeetingConfiguration Get-CsAutoAttendant Get-CsAutoAttendantHolidays Get-CsAutoAttendantStatus Get-CsAutoAttendantSupportedLanguage Get-CsAutoAttendantSupportedTimeZone Get-CsAutoAttendantTenantInformation Get-CsBatchPolicyAssignmentOperation Get-CsCallingLineIdentity Get-CsCallQueue Get-CsCloudCallDataConnection Get-CsEffectiveTenantDialPlan Get-CsExportAcquiredPhoneNumberStatus Get-CsGroupPolicyAssignment Get-CsHybridTelephoneNumber Get-CsInboundBlockedNumberPattern Get-CsInboundExemptNumberPattern Get-CsMainlineAttendantAppointmentBookingFlow Get-CsMainlineAttendantFlow Get-CsMainlineAttendantQuestionAnswerFlow Get-CsMeetingMigrationStatus Get-CsOnlineApplicationInstance Get-CsOnlineApplicationInstanceAssociation Get-CsOnlineApplicationInstanceAssociationStatus Get-CsOnlineAudioConferencingRoutingPolicy Get-CsOnlineAudioFile Get-CsOnlineDialInConferencingBridge Get-CsOnlineDialInConferencingLanguagesSupported Get-CsOnlineDialinConferencingPolicy Get-CsOnlineDialInConferencingServiceNumber Get-CsOnlineDialinConferencingTenantConfiguration Get-CsOnlineDialInConferencingTenantSettings Get-CsOnlineDialInConferencingUser Get-CsOnlineDialOutPolicy Get-CsOnlineDirectoryTenant Get-CsOnlineEnhancedEmergencyServiceDisclaimer Get-CsOnlineLisCivicAddress Get-CsOnlineLisLocation Get-CsOnlineLisPort Get-CsOnlineLisSubnet Get-CsOnlineLisSwitch Get-CsOnlineLisWirelessAccessPoint Get-CsOnlinePSTNGateway Get-CsOnlinePstnUsage Get-CsOnlineSchedule Get-CsOnlineSipDomain Get-CsOnlineTelephoneNumber Get-CsOnlineTelephoneNumberCountry Get-CsOnlineTelephoneNumberOrder Get-CsOnlineTelephoneNumberType Get-CsOnlineUser Get-CsOnlineVoicemailUserSettings Get-CsOnlineVoiceRoute Get-CsOnlineVoiceRoutingPolicy Get-CsOnlineVoiceUser Get-CsPhoneNumberAssignment Get-CsPhoneNumberPolicyAssignment Get-CsPhoneNumberTag Get-CsPolicyPackage Get-CsSdgBulkSignInRequestStatus Get-CsSDGBulkSignInRequestsSummary Get-CsTeamsAudioConferencingPolicy Get-CsTeamsCallParkPolicy Get-CsTeamsCortanaPolicy Get-CsTeamsEmergencyCallRoutingPolicy Get-CsTeamsEnhancedEncryptionPolicy Get-CsTeamsGuestCallingConfiguration Get-CsTeamsGuestMeetingConfiguration Get-CsTeamsGuestMessagingConfiguration Get-CsTeamsIPPhonePolicy Get-CsTeamsMediaLoggingPolicy Get-CsTeamsMeetingBroadcastConfiguration Get-CsTeamsMeetingBroadcastPolicy Get-CsTeamsMigrationConfiguration Get-CsTeamsMobilityPolicy Get-CsTeamsNetworkRoamingPolicy Get-CsTeamsRoomVideoTeleConferencingPolicy Get-CsTeamsSettingsCustomApp Get-CsTeamsShiftsAppPolicy Get-CsTeamsShiftsConnectionConnector Get-CsTeamsShiftsConnectionErrorReport Get-CsTeamsShiftsConnection Get-CsTeamsShiftsConnectionInstance Get-CsTeamsShiftsConnectionOperation Get-CsTeamsShiftsConnectionSyncResult Get-CsTeamsShiftsConnectionTeamMap Get-CsTeamsShiftsConnectionWfmTeam Get-CsTeamsShiftsConnectionWfmUser Get-CsTeamsSurvivableBranchAppliance Get-CsTeamsSurvivableBranchAppliancePolicy Get-CsTeamsTargetingPolicy Get-CsTeamsTranslationRule Get-CsTeamsUnassignedNumberTreatment Get-CsTeamsUpgradePolicy Get-CsTeamsVdiPolicy Get-CsTeamsVideoInteropServicePolicy Get-CsTeamsWorkLoadPolicy Get-CsTeamTemplate Get-CsTeamTemplateList Get-CsTenant Get-CsTenantBlockedCallingNumbers Get-CsTenantDialPlan Get-CsTenantFederationConfiguration Get-CsTenantLicensingConfiguration Get-CsTenantMigrationConfiguration Get-CsTenantNetworkConfiguration Get-CsTenantNetworkRegion Get-CsTenantNetworkSubnet Get-CsTenantTrustedIPAddress Get-CsUserCallingSettings Get-CsUserPolicyAssignment Get-CsUserPolicyPackage Get-CsUserPolicyPackageRecommendation Get-CsVideoInteropServiceProvider Grant-CsApplicationAccessPolicy Get-CsComplianceRecordingForCallQueueTemplate Get-CsSharedCallQueueHistoryTemplate Get-CsTagsTemplate Grant-CsCallingLineIdentity Grant-CsDialoutPolicy Grant-CsGroupPolicyPackageAssignment Grant-CsOnlineAudioConferencingRoutingPolicy Grant-CsOnlineVoicemailPolicy Grant-CsOnlineVoiceRoutingPolicy Grant-CsTeamsAudioConferencingPolicy Grant-CsTeamsCallHoldPolicy Grant-CsTeamsCallParkPolicy Grant-CsTeamsChannelsPolicy Grant-CsTeamsCortanaPolicy Grant-CsTeamsEmergencyCallingPolicy Grant-CsTeamsEmergencyCallRoutingPolicy Grant-CsTeamsEnhancedEncryptionPolicy Grant-CsTeamsFeedbackPolicy Grant-CsTeamsIPPhonePolicy Grant-CsTeamsMediaLoggingPolicy Grant-CsTeamsMeetingBroadcastPolicy Grant-CsTeamsMeetingPolicy Grant-CsTeamsMessagingPolicy Grant-CsTeamsMobilityPolicy Grant-CsTeamsRoomVideoTeleConferencingPolicy Grant-CsTeamsSurvivableBranchAppliancePolicy Grant-CsTeamsUpdateManagementPolicy Grant-CsTeamsUpgradePolicy Grant-CsTeamsVideoInteropServicePolicy Grant-CsTeamsVoiceApplicationsPolicy Grant-CsTeamsWorkLoadPolicy Grant-CsTenantDialPlan Grant-CsUserPolicyPackage Grant-CsTeamsComplianceRecordingPolicy Import-CsAutoAttendantHolidays Import-CsOnlineAudioFile Invoke-CsInternalPSTelemetry Move-CsInternalHelper New-CsApplicationAccessPolicy New-CsAutoAttendant New-CsAutoAttendantCallableEntity New-CsAutoAttendantCallFlow New-CsAutoAttendantCallHandlingAssociation New-CsAutoAttendantDialScope New-CsAutoAttendantMenu New-CsAutoAttendantMenuOption New-CsAutoAttendantPrompt New-CsBatchPolicyAssignmentOperation New-CsBatchPolicyPackageAssignmentOperation New-CsCallingLineIdentity New-CsCallQueue New-CsCloudCallDataConnection New-CsCustomPolicyPackage New-CsEdgeAllowAllKnownDomains New-CsEdgeAllowList New-CsEdgeDomainPattern New-CsGroupPolicyAssignment New-CsHybridTelephoneNumber New-CsInboundBlockedNumberPattern New-CsInboundExemptNumberPattern New-CsMainlineAttendantAppointmentBookingFlow New-CsMainlineAttendantQuestionAnswerFlow New-CsOnlineApplicationInstance New-CsOnlineApplicationInstanceAssociation New-CsOnlineAudioConferencingRoutingPolicy New-CsOnlineDateTimeRange New-CsOnlineLisCivicAddress New-CsOnlineLisLocation New-CsOnlinePSTNGateway New-CsOnlineSchedule New-CsOnlineTelephoneNumberOrder New-CsOnlineTimeRange New-CsOnlineVoiceRoute New-CsOnlineVoiceRoutingPolicy New-CsSdgBulkSignInRequest New-CsTeamsAudioConferencingPolicy New-CsTeamsCallParkPolicy New-CsTeamsCortanaPolicy New-CsTeamsEmergencyCallRoutingPolicy New-CsTeamsEmergencyNumber New-CsTeamsEnhancedEncryptionPolicy New-CsTeamsIPPhonePolicy New-CsTeamsMeetingBroadcastPolicy New-CsTeamsMobilityPolicy New-CsTeamsNetworkRoamingPolicy New-CsTeamsRoomVideoTeleConferencingPolicy New-CsTeamsShiftsConnectionBatchTeamMap New-CsTeamsShiftsConnection New-CsTeamsShiftsConnectionInstance New-CsTeamsSurvivableBranchAppliance New-CsTeamsSurvivableBranchAppliancePolicy New-CsTeamsTranslationRule New-CsTeamsUnassignedNumberTreatment New-CsTeamsVdiPolicy New-CsTeamsWorkLoadPolicy New-CsTeamTemplate New-CsTenantDialPlan New-CsTenantNetworkRegion New-CsTenantNetworkSite New-CsTenantNetworkSubnet New-CsTenantTrustedIPAddress New-CsUserCallingDelegate New-CsVideoInteropServiceProvider New-CsVoiceNormalizationRule New-CsOnlineDirectRoutingTelephoneNumberUploadOrder New-CsOnlineTelephoneNumberReleaseOrder New-CsComplianceRecordingForCallQueueTemplate New-CsTagsTemplate New-CsTag New-CsSharedCallQueueHistoryTemplate Register-CsOnlineDialInConferencingServiceNumber Remove-CsApplicationAccessPolicy Remove-CsAutoAttendant Remove-CsCallingLineIdentity Remove-CsCallQueue Remove-CsCustomPolicyPackage Remove-CsGroupPolicyAssignment Remove-CsHybridTelephoneNumber Remove-CsInboundBlockedNumberPattern Remove-CsInboundExemptNumberPattern Remove-CsMainlineAttendantAppointmentBookingFlow Remove-CsMainlineAttendantQuestionAnswerFlow Remove-CsOnlineApplicationInstanceAssociation Remove-CsOnlineAudioConferencingRoutingPolicy Remove-CsOnlineAudioFile Remove-CsOnlineDialInConferencingTenantSettings Remove-CsOnlineLisCivicAddress Remove-CsOnlineLisLocation Remove-CsOnlineLisPort Remove-CsOnlineLisSubnet Remove-CsOnlineLisSwitch Remove-CsOnlineLisWirelessAccessPoint Remove-CsOnlinePSTNGateway Remove-CsOnlineSchedule Remove-CsOnlineTelephoneNumber Remove-CsOnlineVoiceRoute Remove-CsOnlineVoiceRoutingPolicy Remove-CsPhoneNumberAssignment Remove-CsPhoneNumberTag Remove-CsTeamsAudioConferencingPolicy Remove-CsTeamsCallParkPolicy Remove-CsTeamsCortanaPolicy Remove-CsTeamsEmergencyCallRoutingPolicy Remove-CsTeamsEnhancedEncryptionPolicy Remove-CsTeamsIPPhonePolicy Remove-CsTeamsMeetingBroadcastPolicy Remove-CsTeamsMobilityPolicy Remove-CsTeamsNetworkRoamingPolicy Remove-CsTeamsRoomVideoTeleConferencingPolicy Remove-CsTeamsShiftsConnection Remove-CsTeamsShiftsConnectionInstance Remove-CsTeamsShiftsConnectionTeamMap Remove-CsTeamsShiftsScheduleRecord Remove-CsTeamsSurvivableBranchAppliance Remove-CsTeamsSurvivableBranchAppliancePolicy Remove-CsTeamsTargetingPolicy Remove-CsTeamsTranslationRule Remove-CsTeamsUnassignedNumberTreatment Remove-CsTeamsVdiPolicy Remove-CsTeamsWorkLoadPolicy Remove-CsTeamTemplate Remove-CsTenantDialPlan Remove-CsTenantNetworkRegion Remove-CsTenantNetworkSite Remove-CsTenantNetworkSubnet Remove-CsTenantTrustedIPAddress Remove-CsUserCallingDelegate Remove-CsUserLicenseGracePeriod Remove-CsVideoInteropServiceProvider Remove-CsComplianceRecordingForCallQueueTemplate Remove-CsTagsTemplate Remove-CsSharedCallQueueHistoryTemplate Set-CsApplicationAccessPolicy Set-CsApplicationMeetingConfiguration Set-CsAutoAttendant Set-CsCallingLineIdentity Set-CsCallQueue Set-CsInboundBlockedNumberPattern Set-CsInboundExemptNumberPattern Set-CsMainlineAttendantAppointmentBookingFlow Set-CsMainlineAttendantQuestionAnswerFlow Set-CsOnlineApplicationInstance Set-CsOnlineAudioConferencingRoutingPolicy Set-CsOnlineDialInConferencingBridge Set-CsOnlineDialInConferencingServiceNumber Set-CsOnlineDialInConferencingTenantSettings Set-CsOnlineDialInConferencingUser Set-CsOnlineDialInConferencingUserDefaultNumber Set-CsOnlineEnhancedEmergencyServiceDisclaimer Set-CsOnlineLisCivicAddress Set-CsOnlineLisLocation Set-CsOnlineLisPort Set-CsOnlineLisSubnet Set-CsOnlineLisSwitch Set-CsOnlineLisWirelessAccessPoint Set-CsOnlinePSTNGateway Set-CsOnlinePstnUsage Set-CsOnlineSchedule Set-CsOnlineVoiceApplicationInstance Set-CsOnlineVoicemailUserSettings Set-CsOnlineVoiceRoute Set-CsOnlineVoiceRoutingPolicy Set-CsOnlineVoiceUser Set-CsPhoneNumberAssignment Set-CsPhoneNumberPolicyAssignment Set-CsPhoneNumberTag Set-CsTeamsAudioConferencingPolicy Set-CsTeamsCallParkPolicy Set-CsTeamsCortanaPolicy Set-CsTeamsEmergencyCallRoutingPolicy Set-CsTeamsEnhancedEncryptionPolicy Set-CsTeamsGuestCallingConfiguration Set-CsTeamsGuestMeetingConfiguration Set-CsTeamsGuestMessagingConfiguration Set-CsTeamsIPPhonePolicy Set-CsTeamsMeetingBroadcastConfiguration Set-CsTeamsMeetingBroadcastPolicy Set-CsTeamsMigrationConfiguration Set-CsTeamsMobilityPolicy Set-CsTeamsNetworkRoamingPolicy Set-CsTeamsRoomVideoTeleConferencingPolicy Set-CsTeamsSettingsCustomApp Set-CsTeamsShiftsAppPolicy Set-CsTeamsShiftsConnection Set-CsTeamsShiftsConnectionInstance Set-CsTeamsSurvivableBranchAppliance Set-CsTeamsSurvivableBranchAppliancePolicy Set-CsTeamsTargetingPolicy Set-CsTeamsTranslationRule Set-CsTeamsUnassignedNumberTreatment Set-CsTeamsVdiPolicy Set-CsTeamsWorkLoadPolicy Set-CsTenantBlockedCallingNumbers Set-CsTenantDialPlan Set-CsTenantFederationConfiguration Set-CsTenantMigrationConfiguration Set-CsTenantNetworkRegion Set-CsTenantNetworkSite Set-CsTenantNetworkSubnet Set-CsTenantTrustedIPAddress Set-CsUser Set-CsUserCallingDelegate Set-CsUserCallingSettings Set-CsVideoInteropServiceProvider Set-CsComplianceRecordingForCallQueueTemplate Set-CsTagsTemplate Set-CsSharedCallQueueHistoryTemplate Start-CsExMeetingMigration Sync-CsOnlineApplicationInstance Test-CsEffectiveTenantDialPlan Test-CsInboundBlockedNumberPattern Test-CsTeamsShiftsConnectionValidate Test-CsTeamsTranslationRule Test-CsTeamsUnassignedNumberTreatment Test-CsVoiceNormalizationRule Unregister-CsOnlineDialInConferencingServiceNumber Update-CsAutoAttendant Update-CsCustomPolicyPackage Update-CsPhoneNumberTag Update-CsTeamsShiftsConnection Update-CsTeamsShiftsConnectionInstance Update-CsTeamTemplate New-CsBatchTeamsDeployment Get-CsBatchTeamsDeploymentStatus Get-CsPersonalAttendantSettings Set-CsPersonalAttendantSettings Set-CsOCEContext Clear-CsOCEContext Get-CsRegionContext Set-CsRegionContext Clear-CsRegionContext Get-CsMeetingMigrationTransactionHistory Get-CsMasVersionedSchemaData Get-CsMasObjectChangelog Get-CsBusinessVoiceDirectoryDiagnosticData Get-CsCloudTenant Get-CsCloudUser Get-CsHostingProvider Set-CsTenantUserBackfill Invoke-CsCustomHandlerNgtprov Invoke-CsCustomHandlerCallBackNgtprov New-CsSdgDeviceTaggingRequest Get-CsMoveTenantServiceInstanceTaskStatus Move-CsTenantServiceInstance Move-CsTenantCrossRegion Invoke-CsDirectObjectSync New-CsSDGDeviceTransferRequest Get-CsAadTenant Get-CsAadUser Clear-CsCacheOperation Move-CsAvsTenantPartition Invoke-CsMsodsSync Get-CsUssUserSettings Set-CsUssUserSettings Invoke-CsRehomeuser Set-CsNotifyCache - d910df43-3ca6-4c9c-a2e3-e9f45a8e2ad9 - 5.1 - 4.7.2 - 4.0 - Microsoft Corporation - - - C:\Users\kris6\Documents\Programming\CIPP-Project\CIPP-API\Modules\MicrosoftTeams\MicrosoftTeams\7.4.0 -
-
-
diff --git a/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 b/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 deleted file mode 100644 index 933a7990f95ad..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/SetMSTeamsReleaseEnvironment.ps1 +++ /dev/null @@ -1,237 +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 -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6QSrbNq5qY4CX -# 15x6qVrEe3OnMqckrZDKvtChfXP5jaCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# EuB4ozFdAAAAAASEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM1WhcNMjYwNjE3MTgyMTM1WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDtekqMKDnzfsyc1T1QpHfFtr+rkir8ldzLPKmMXbRDouVXAsvBfd6E82tPj4Yz -# aSluGDQoX3NpMKooKeVFjjNRq37yyT/h1QTLMB8dpmsZ/70UM+U/sYxvt1PWWxLj -# MNIXqzB8PjG6i7H2YFgk4YOhfGSekvnzW13dLAtfjD0wiwREPvCNlilRz7XoFde5 -# KO01eFiWeteh48qUOqUaAkIznC4XB3sFd1LWUmupXHK05QfJSmnei9qZJBYTt8Zh -# ArGDh7nQn+Y1jOA3oBiCUJ4n1CMaWdDhrgdMuu026oWAbfC3prqkUn8LWp28H+2S -# LetNG5KQZZwvy3Zcn7+PQGl5AgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUBN/0b6Fh6nMdE4FAxYG9kWCpbYUw -# VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh -# dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwNTM2MjAfBgNVHSMEGDAW -# gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v -# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw -# MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov -# L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx -# XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB -# AGLQps1XU4RTcoDIDLP6QG3NnRE3p/WSMp61Cs8Z+JUv3xJWGtBzYmCINmHVFv6i -# 8pYF/e79FNK6P1oKjduxqHSicBdg8Mj0k8kDFA/0eU26bPBRQUIaiWrhsDOrXWdL -# m7Zmu516oQoUWcINs4jBfjDEVV4bmgQYfe+4/MUJwQJ9h6mfE+kcCP4HlP4ChIQB -# UHoSymakcTBvZw+Qst7sbdt5KnQKkSEN01CzPG1awClCI6zLKf/vKIwnqHw/+Wvc -# Ar7gwKlWNmLwTNi807r9rWsXQep1Q8YMkIuGmZ0a1qCd3GuOkSRznz2/0ojeZVYh -# ZyohCQi1Bs+xfRkv/fy0HfV3mNyO22dFUvHzBZgqE5FbGjmUnrSr1x8lCrK+s4A+ -# bOGp2IejOphWoZEPGOco/HEznZ5Lk6w6W+E2Jy3PHoFE0Y8TtkSE4/80Y2lBJhLj -# 27d8ueJ8IdQhSpL/WzTjjnuYH7Dx5o9pWdIGSaFNYuSqOYxrVW7N4AEQVRDZeqDc -# fqPG3O6r5SNsxXbd71DCIQURtUKss53ON+vrlV0rjiKBIdwvMNLQ9zK0jy77owDy -# XXoYkQxakN2uFIBO1UNAvCYXjs4rw3SRmBX9qiZ5ENxcn/pLMkiyb68QdwHUXz+1 -# fI6ea3/jjpNPz6Dlc/RMcXIWeMMkhup/XEbwu73U+uz/MIIHejCCBWKgAwIBAgIK -# YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV -# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv -# c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm -# aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw -# OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD -# VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG -# 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la -# UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc -# 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D -# dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ -# lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk -# kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 -# A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd -# X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL -# 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd -# sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 -# T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS -# 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI -# bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL -# BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD -# uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv -# c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf -# MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF -# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h -# cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA -# YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn -# 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 -# v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b -# pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ -# KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy -# CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp -# mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi -# hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb -# BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS -# oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL -# gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX -# cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p -# Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAASEmOIS4HijMV0AAAAA -# BIQwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw -# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIKwh -# nAu5OLUmTWVzGDxzwu87ECHdTJ+a4iX/WmYDn6qeMEIGCisGAQQBgjcCAQwxNDAy -# oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20wDQYJKoZIhvcNAQEBBQAEggEAGAFmuGT0xYp48V7BoXX6c89KcPLcocoWe9yk -# OsZ2mM0SV8SDsDRat3chIFt6CQlTBXdfH/0kHRTKmp5a9zPdfiqOEfpcSIfM1spN -# EfChvGCHMmj6tm9rVOiTm/ACgZ/a36TYoO/Xk2qLB5LR8RceaGaJktbddSv2HmVw -# t2T0Y3p2Wb/NdaaxfibTrbis1pf4UFkndDUrsBN9xntUYr+2s9Lb46uB8CMItikt -# 5+eKPnrWrjU/sTq2Z8FyRt5t24eGJJJhBkXBFMuqgCHzezt+iayOKjPlHBVQgQlu -# 1pLfVECoeblhROX5wExp4DSg2/bNqGMPgq7Q8RPTECU992WI2aGCF7AwghesBgor -# BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI -# AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE -# WQoDATAxMA0GCWCGSAFlAwQCAQUABCCybXx942s9ucM9RAj+edkEKhgA/IQAl6IT -# JKKbMorgnwIGaKR4CbEBGBMyMDI1MTAwMTA4MzMwNi4wODJaMASAAgH0oIHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB+vs7 -# RNN3M8bTAAEAAAH6MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w -# IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExMVoXDTI1MTAyMjE4MzExMVowgdMxCzAJ -# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k -# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv -# c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs -# ZCBUU1MgRVNOOjQzMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt -# ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -# yhZVBM3PZcBfEpAf7fIIhygwYVVP64USeZbSlRR3pvJebva0LQCDW45yOrtpwIpG -# yDGX+EbCbHhS5Td4J0Ylc83ztLEbbQD7M6kqR0Xj+n82cGse/QnMH0WRZLnwggJd -# enpQ6UciM4nMYZvdQjybA4qejOe9Y073JlXv3VIbdkQH2JGyT8oB/LsvPL/kAnJ4 -# 5oQIp7Sx57RPQ/0O6qayJ2SJrwcjA8auMdAnZKOixFlzoooh7SyycI7BENHTpkVK -# rRV5YelRvWNTg1pH4EC2KO2bxsBN23btMeTvZFieGIr+D8mf1lQQs0Ht/tMOVdah -# 14t7Yk+xl5P4Tw3xfAGgHsvsa6ugrxwmKTTX1kqXH5XCdw3TVeKCax6JV+ygM5i1 -# NroJKwBCW11Pwi0z/ki90ZeO6XfEE9mCnJm76Qcxi3tnW/Y/3ZumKQ6X/iVIJo7L -# k0Z/pATRwAINqwdvzpdtX2hOJib4GR8is2bpKks04GurfweWPn9z6jY7GBC+js8p -# SwGewrffwgAbNKm82ZDFvqBGQQVJwIHSXpjkS+G39eyYOG2rcILBIDlzUzMFFJbN -# h5tDv3GeJ3EKvC4vNSAxtGfaG/mQhK43YjevsB72LouU78rxtNhuMXSzaHq5fFiG -# 3zcsYHaa4+w+YmMrhTEzD4SAish35BjoXP1P1Ct4Va0CAwEAAaOCAUkwggFFMB0G -# A1UdDgQWBBRjjHKbL5WV6kd06KocQHphK9U/vzAfBgNVHSMEGDAWgBSfpxVdAF5i -# XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv -# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB -# JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw -# Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp -# bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud -# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF -# AAOCAgEAuFbCorFrvodG+ZNJH3Y+Nz5QpUytQVObOyYFrgcGrxq6MUa4yLmxN4xW -# dL1kygaW5BOZ3xBlPY7Vpuf5b5eaXP7qRq61xeOrX3f64kGiSWoRi9EJawJWCzJf -# UQRThDL4zxI2pYc1wnPp7Q695bHqwZ02eaOBudh/IfEkGe0Ofj6IS3oyZsJP1yat -# cm4kBqIH6db1+weM4q46NhAfAf070zF6F+IpUHyhtMbQg5+QHfOuyBzrt67CiMJS -# KcJ3nMVyfNlnv6yvttYzLK3wS+0QwJUibLYJMI6FGcSuRxKlq6RjOhK9L3QOjh0V -# CM11rHM11ZmN0euJbbBCVfQEufOLNkG88MFCUNE10SSbM/Og/CbTko0M5wbVvQJ6 -# CqLKjtHSoeoAGPeeX24f5cPYyTcKlbM6LoUdO2P5JSdI5s1JF/On6LiUT50adpRs -# tZajbYEeX/N7RvSbkn0djD3BvT2Of3Wf9gIeaQIHbv1J2O/P5QOPQiVo8+0AKm6M -# 0TKOduihhKxAt/6Yyk17Fv3RIdjT6wiL2qRIEsgOJp3fILw4mQRPu3spRfakSoQe -# 5N0e4HWFf8WW2ZL0+c83Qzh3VtEPI6Y2e2BO/eWhTYbIbHpqYDfAtAYtaYIde87Z -# ymXG3MO2wUjhL9HvSQzjoquq+OoUmvfBUcB2e5L6QCHO6qTO7WowggdxMIIFWaAD -# AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD -# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe -# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv -# ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy -# MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo -# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y -# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw -# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 -# vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 -# NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu -# je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl -# 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg -# yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I -# 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 -# ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ -# TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy -# 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y -# 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H -# XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB -# AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW -# BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B -# ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz -# L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB -# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB -# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL -# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv -# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr -# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS -# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq -# reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 -# DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv -# vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak -# vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK -# NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 -# kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ -# c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep -# 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk -# txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg -# DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ -# 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW -# MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH -# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL -# EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT -# Hm5TaGllbGQgVFNTIEVTTjo0MzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z -# b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA94Z+bUJn+nKw -# BvII6sg0Ny7aPDaggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz -# aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv -# cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx -# MDANBgkqhkiG9w0BAQsFAAIFAOyG+iMwIhgPMjAyNTEwMDEwMDUzNTVaGA8yMDI1 -# MTAwMjAwNTM1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA7Ib6IwIBADAKAgEA -# AgItJAIB/zAHAgEAAgIZEzAKAgUA7IhLowIBADA2BgorBgEEAYRZCgQCMSgwJjAM -# BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB -# CwUAA4IBAQA583XbQoKh/10MA7+Ujzrcdwv4sL0mvb8WSmgA4kJCPmh14/C3jvzy -# RpcSNYxQbRkMEclEpVCXRsfgrmGL5p52U8qKEGXyvGAp8XaxhklYYuWfACDfCKdH -# T0KhlXTQrGiZP2m+F0Di5QKstoDY/fq5m7Y5b3UYa3lEi6n3Lms0ezpf9rXWusot -# K0SVpTayoddl986SLKLVzqvlEUSdF4jFJp6KZ/flzIE00qqvoRE3jESffoTNMI6c -# fShEm1O3Fg0ubJanNSHN+xNLFF+wE87TzV59AP/Ixwwt4BFsQn4lL1kUKs81VzHp -# XsO6bcaF5N2PtFKTmtAt3qVZEpio+Dj4MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE -# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc -# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 -# IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH6+ztE03czxtMAAQAAAfowDQYJYIZI -# AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG -# 9w0BCQQxIgQg7HjPTEjWdbHC5DbQT2CRTnCRPtHiIR1bwkSqcqBdea4wgfoGCyqG -# SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCB98n8tya8+B2jjU/dpJRIwHwHHpco5ogNS -# tYocbkOeVjCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n -# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y -# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz -# AAAB+vs7RNN3M8bTAAEAAAH6MCIEICgabd0aMglwPIRAQpeLtPTt+Pmsi4Ljxvse -# jujm3TVJMA0GCSqGSIb3DQEBCwUABIICAKftgUAhg5jy45bSUwWDwbN2MyiesyeP -# EbW/RtV5SWp04Sh8iODjU2kr16FqEYRLcQiFngcx7nulT2HZS2PjxNRMdYEZQhDu -# Bw0rrcusqyGYqwrdwOuphEEtSyDX9o99H3ZWhJLWEtH63dNeBg/t+y9JOcD1EoIa -# iUPLcQSrJ8W13tuRDLAfQ+4EKH6F1l8mePWB8tbV8ukD8yqu46TxSUj3ssuMzm5x -# Ry1attYEp+HiHFvAX8zq5RR0flTziW23ytEy3VXSDaUb3pghGXMQ6WjDcQYxmPII -# Wle+N7Q4S2DBOEAf7/5DNUrDEMLCDpOv6qMurDbA1RCxKARtgPY01o/7nlrqn2ET -# 2rEgJGNmB0LMIW64Es4aIr8w3IZSvPzYYNonkf3PfMFoS08eysKN7g3z0RuR67rE -# ol4Q7/6JMbcvTaK/ha5nr08PnPDdhFQXxx2OU9SeAwmTpz3ESeXyjSq1qeGE4mUc -# a4GaQcRLCOgGACt2F7mZuy8c/D6MEAl1wUYeHHwVBj1hpP30q2fL8dXTVEQPR7hL -# bR9gVoy7xHb3jrqhcQiy/N9ys3kt6B3H6iNgUOhKnJcRFIZ9NBn35/Y7dZ3tzovy -# r8BNizclS3wvtMoaDn4i+zaqqUMpGnlf+nw6MDk5p/04fGzjMUT5mTa1blP+ODvu -# hmtke0jN2dH2 -# SIG # End signature block diff --git a/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml b/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml deleted file mode 100644 index e35f4203faf18..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/SfbRpsModule.format.ps1xml +++ /dev/null @@ -1,26537 +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 - - - - 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 deleted file mode 100644 index 0bcf9b1b11d51..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/ESRPClientLogs1001085417078.json +++ /dev/null @@ -1 +0,0 @@ -{"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/7.4.0/_manifest/spdx_2.2/bsi.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose deleted file mode 100644 index a0e730c8c710d..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/bsi.cose and /dev/null 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 deleted file mode 100644 index 26f241cd93d50..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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":"72855948","Build.BuildNumber":"2.251001.2","Build.DefinitionName":"infrastructure_itpro_teamspowershellmodule","Build.DefinitionRevision":"133","Build.Repository.Name":"infrastructure_itpro_teamspowershellmodule","Build.Repository.Provider":"TfsGit","Build.Repository.Id":"fe62ea1f-ff64-4287-87a3-b6184a6fc36c","Build.SourceBranch":"refs/heads/release/7.4.0-GA","Build.SourceBranchName":"7.4.0-GA","Build.SourceVersion":"94bae19a76521c4ce4aec4a421dda93eeda9337b","Build.Repository.Uri":"https://skype.visualstudio.com/SBS/_git/infrastructure_itpro_teamspowershellmodule","EbomId":"0a43dfb1-b70b-5f20-9da2-10c9c55b951c","1ES.PT.TemplateType":"official"},"Feed":null} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat deleted file mode 100644 index 5a0b504e91d01..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.cat and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose b/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose deleted file mode 100644 index 55ebc2964d738..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.cose and /dev/null 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 deleted file mode 100644 index 8d7834b0ce09d..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json +++ /dev/null @@ -1,17762 +0,0 @@ -{ - "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 deleted file mode 100644 index 4a69653675755..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/_manifest/spdx_2.2/manifest.spdx.json.sha256 +++ /dev/null @@ -1 +0,0 @@ -663b4d504debf6479010de4d619fb15b9d84d87f6b36704b3c6a0bf61f9b848d \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll b/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll deleted file mode 100644 index 9c516c3749ae3..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/BrotliSharpLib.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 00838f3421bd3..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index 00f9303f6572b..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index 47da8dcd8f319..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.IdentityModel.Tokens.dll and /dev/null 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 deleted file mode 100644 index 046a68764c046..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json deleted file mode 100644 index 115635f737e60..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.deps.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETStandard,Version=v2.0/", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETStandard,Version=v2.0": {}, - ".NETStandard,Version=v2.0/": { - "Microsoft.Teams.ConfigAPI.Cmdlets.private/1.0.0": { - "dependencies": { - "BrotliSharpLib": "0.3.3", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Teams.ConfigAPI.CmdletHostContract": "3.2.4", - "NETStandard.Library": "2.0.3", - "Newtonsoft.Json": "13.0.3", - "PowerShellStandard.Library": "5.1.0", - "StyleCop.Analyzers": "1.1.118", - "System.IdentityModel.Tokens.Jwt": "6.8.0" - }, - "runtime": { - "Microsoft.Teams.ConfigAPI.Cmdlets.private.dll": {} - } - }, - "BrotliSharpLib/0.3.3": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.2" - }, - "runtime": { - "lib/netstandard2.0/BrotliSharpLib.dll": { - "assemblyVersion": "0.3.2.0", - "fileVersion": "0.3.3.0" - } - } - }, - "Microsoft.CSharp/4.7.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.CSharp.dll": { - "assemblyVersion": "4.0.5.0", - "fileVersion": "4.700.19.56404" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { - "dependencies": { - "Microsoft.IdentityModel.Tokens": "6.8.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.IdentityModel.Logging/6.8.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.IdentityModel.Tokens/6.8.0": { - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.IdentityModel.Logging": "6.8.0", - "System.Security.Cryptography.Cng": "4.5.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "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.2.4.0", - "fileVersion": "3.2.4.0" - } - } - }, - "NETStandard.Library/2.0.3": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "Newtonsoft.Json/13.0.3": { - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.3.27908" - } - } - }, - "PowerShellStandard.Library/5.1.0": { - "runtime": { - "lib/netstandard2.0/System.Management.Automation.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "5.1.0.0" - } - } - }, - "StyleCop.Analyzers/1.1.118": {}, - "System.IdentityModel.Tokens.Jwt/6.8.0": { - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "6.8.0", - "Microsoft.IdentityModel.Tokens": "6.8.0" - }, - "runtime": { - "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "System.Runtime.CompilerServices.Unsafe/4.5.2": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { - "assemblyVersion": "4.0.4.1", - "fileVersion": "4.6.26919.2" - } - } - }, - "System.Security.Cryptography.Cng/4.5.0": { - "runtime": { - "lib/netstandard2.0/System.Security.Cryptography.Cng.dll": { - "assemblyVersion": "4.3.0.0", - "fileVersion": "4.6.26515.6" - } - } - } - } - }, - "libraries": { - "Microsoft.Teams.ConfigAPI.Cmdlets.private/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "BrotliSharpLib/0.3.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/z74VNg6etlQK/N1mSD5Tz2qQUZqc3RMiuv2F8Q/MOfvg4l7a6lDYhQQTPd9s9saSokh1GqUD7JTuunOiQid8w==", - "path": "brotlisharplib/0.3.3", - "hashPath": "brotlisharplib.0.3.3.nupkg.sha512" - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "path": "microsoft.csharp/4.7.0", - "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==", - "path": "microsoft.identitymodel.jsonwebtokens/6.8.0", - "hashPath": "microsoft.identitymodel.jsonwebtokens.6.8.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Logging/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg==", - "path": "microsoft.identitymodel.logging/6.8.0", - "hashPath": "microsoft.identitymodel.logging.6.8.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Tokens/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==", - "path": "microsoft.identitymodel.tokens/6.8.0", - "hashPath": "microsoft.identitymodel.tokens.6.8.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { - "type": "package", - "serviceable": true, - "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", - "serviceable": true, - "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", - "path": "netstandard.library/2.0.3", - "hashPath": "netstandard.library.2.0.3.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", - "path": "newtonsoft.json/13.0.3", - "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" - }, - "PowerShellStandard.Library/5.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", - "path": "powershellstandard.library/5.1.0", - "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" - }, - "StyleCop.Analyzers/1.1.118": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==", - "path": "stylecop.analyzers/1.1.118", - "hashPath": "stylecop.analyzers.1.1.118.nupkg.sha512" - }, - "System.IdentityModel.Tokens.Jwt/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==", - "path": "system.identitymodel.tokens.jwt/6.8.0", - "hashPath": "system.identitymodel.tokens.jwt.6.8.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/4.5.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", - "path": "system.runtime.compilerservices.unsafe/4.5.2", - "hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==", - "path": "system.security.cryptography.cng/4.5.0", - "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll b/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll deleted file mode 100644 index 4497151fb53ea..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/Microsoft.Teams.ConfigAPI.Cmdlets.private.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll deleted file mode 100644 index 55d1996f9666e..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/bin/System.IdentityModel.Tokens.Jwt.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json b/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json deleted file mode 100644 index 057d44fd88969..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/custom/CmdletConfig.json +++ /dev/null @@ -1,4883 +0,0 @@ -{ - "CmdletConfiguration": { - "Connect-CsConfigAPI": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsSDGBulkSignInRequestStatus": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "SelfHost", - "TeamsPreview" - ] - }, - "New-CsSDGBulkSignInRequest": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "SelfHost", - "TeamsPreview" - ] - }, - "Get-CsSDGBulkSignInRequestsSummary": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "SelfHost", - "TeamsPreview" - ] - }, - "New-CsSDGDeviceTaggingRequest": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "Torus", - "SelfHost" - ] - }, - "New-CsSDGDeviceTransferRequest": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "Torus", - "SelfHost" - ] - }, - "Disconnect-CsConfigAPI": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsEffectiveTenantDialPlanModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Test-CsEffectiveTenantDialPlanModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Test-CsVoiceNormalizationRuleModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsInternalConfigApiModuleVersion": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsSessionState": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Set-CsSessionState": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Register-CsOdcServiceNumber": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Unregister-CsOdcServiceNumber": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsUserPoint": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsUserList": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsUserSearch": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsTenantPoint": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsVoiceUserPoint": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Get-CsVoiceUserList": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Grant-CsTeamsPolicy": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Remove-CsConfigurationModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsBatchPolicyAssignmentOperation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsBatchPolicyAssignmentOperation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsBatchPolicyPackageAssignmentOperation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsCustomPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsCustomPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Update-CsCustomPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsGroupPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsGroupPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsGroupPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Grant-CsGroupPolicyPackageAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsUserPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsUserPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsTeamTemplateList": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamTemplate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Update-CsTeamTemplate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsTeamTemplate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsTeamTemplate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsUserPolicyPackageRecommendation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Grant-CsUserPolicyPackage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsBatchTeamsDeployment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsBatchTeamsDeploymentStatus": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionConnector": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionOperation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Test-CsTeamsShiftsConnectionValidate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsTeamsShiftsConnectionInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsTeamsShiftsConnectionInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Update-CsTeamsShiftsConnectionInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsTeamsShiftsConnectionInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionWfmTeam": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsTeamsShiftsConnectionBatchTeamMap": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsTeamsShiftsConnectionTeamMap": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionTeamMap": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionSyncResult": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionWfmUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsTeamsShiftsScheduleRecord": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnectionErrorReport": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Disable-CsTeamsShiftsConnectionErrorReport": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsTeamsShiftsConnection": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsTeamsShiftsConnection": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsTeamsShiftsConnection": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Update-CsTeamsShiftsConnection": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsTeamsShiftsConnection": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsOnlineAudioFile": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsOnlineAudioFile": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Export-CsOnlineAudioFile": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Move-CsInternalHelper": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Invoke-CsRehomeUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "Torus", - "SelfHost" - ] - }, - "Invoke-CsInternalPSTelemetry": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineTelephoneNumberCountry": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineTelephoneNumberType": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineTelephoneNumberOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineTelephoneNumberOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Complete-CsOnlineTelephoneNumberOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Clear-CsOnlineTelephoneNumberOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsPhoneNumberAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsPhoneNumberAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsPhoneNumberAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsExportAcquiredPhoneNumberStatus": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsPhoneNumberPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsPhoneNumberPolicyAssignment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsConfigurationModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Set-CsConfigurationModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "New-CsConfigurationModern": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost" - ] - }, - "Invoke-CsDeprecatedError": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost" - ] - }, - "Disable-CsOnlineSipDomain": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineSipDomainModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "Action": "Disable" - } - }, - "Enable-CsOnlineSipDomain": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineSipDomainModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "Action": "Enable" - } - }, - "Export-CsAutoAttendantHolidays": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Find-CsGroup": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Find-CsOnlineApplicationInstance": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsApplicationAccessPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationAccessPolicy" - } - }, - "Get-CsApplicationMeetingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationMeetingConfiguration" - } - }, - "Get-CsAutoAttendant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAutoAttendantHolidays": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAutoAttendantStatus": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAutoAttendantSupportedLanguage": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAutoAttendantSupportedTimeZone": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAutoAttendantTenantInformation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsCallingLineIdentity": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "CallingLineIdentity" - } - }, - "Get-CsCallQueue": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "DialPlan" - } - }, - "Get-CsEffectiveTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsEffectiveTenantDialPlanModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsHostingProvider": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "Torus", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "ConfigType": "HostingProvider" - } - }, - "Get-CsHybridTelephoneNumber": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Get-CsInboundBlockedNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundBlockedNumberPattern" - } - }, - "Get-CsInboundExemptNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundExemptNumberPattern" - } - }, - "Get-CsMeetingMigrationStatus": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsMmsStatus", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineApplicationInstance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineApplicationInstanceV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineApplicationInstanceAssociation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineApplicationInstanceAssociationStatus": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineAudioConferencingRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineAudioConferencingRoutingPolicy" - } - }, - "Get-CsBusinessVoiceDirectoryDiagnosticData": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineDialInConferencingBridge": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineDialInConferencingLanguagesSupported": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineDialinConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialinConferencingPolicy" - } - }, - "Get-CsOnlineDialInConferencingServiceNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOdcServiceNumber", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineDialinConferencingTenantConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialinConferencingTenantConfiguration" - } - }, - "Get-CsOnlineDialInConferencingTenantSettings": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialInConferencingTenantSettings" - } - }, - "Get-CsOnlineDialInConferencingUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineDialOutPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialOutPolicy" - } - }, - "Get-CsOnlineDirectoryTenant": { - "CmdletType": "Remoting", - "ModernCmdlet": "Invoke-CsDeprecatedError", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "DeprecatedErrorMessage": "This cmdlet is no longer supported, please consult public documentation or use Get-CsTenant and Get-CsOnlineDialinConferencingBridge to get the relevant attributes." - } - }, - "Get-CsOnlineEnhancedEmergencyServiceDisclaimer": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisCivicAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisCivicAddressModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisLocation": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisLocationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisPort": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisPortModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisSubnetModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisSwitch": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisSwitchModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineLisWirelessAccessPoint": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineLisWirelessAccessPointModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlinePSTNGateway": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePSTNGateway" - } - }, - "Get-CsOnlinePstnUsage": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePstnUsages" - } - }, - "Get-CsOnlineSchedule": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineSipDomain": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsOnlineSipDomainModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineTelephoneNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Invoke-CsDeprecatedError", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "DeprecatedErrorMessage": "This cmdlet is no longer supported, please consult public documentation" - } - }, - "Get-CsOnlineUser": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsUserSearch", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsMasObjectChangelog": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsMasVersionedSchemaData": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Invoke-CsDirectObjectSync": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Set-CsTenantUserBackfill": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Invoke-CsCustomHandlerNgtprov": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Invoke-CsCustomHandlerCallBackNgtprov": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsMoveTenantServiceInstanceTaskStatus": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Move-CsTenantServiceInstance": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Move-CsTenantCrossRegion": { - "CmdletType": "Custom", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineVoicemailUserSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineVoiceRoute": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoute" - } - }, - "Get-CsOnlineVoiceRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoutingPolicy" - } - }, - "Get-CsOnlineVoiceUser": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsVoiceUserList", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsTeamsAudioConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAudioConferencingPolicy" - } - }, - "Get-CsTeamsCallParkPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCallParkPolicy" - } - }, - "Get-CsTeamsCortanaPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCortanaPolicy" - } - }, - "Get-CsTeamsEmergencyCallRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEmergencyCallRoutingPolicy" - } - }, - "Get-CsTeamsGuestCallingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestCallingConfiguration" - } - }, - "Get-CsTeamsGuestMeetingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestMeetingConfiguration" - } - }, - "Get-CsTeamsGuestMessagingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestMessagingConfiguration" - } - }, - "Get-CsTeamsIPPhonePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsIPPhonePolicy" - } - }, - "Get-CsTeamsMeetingBroadcastConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastConfiguration" - } - }, - "Get-CsTeamsMeetingBroadcastPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastPolicy" - } - }, - "Get-CsTeamsEventsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEventsPolicy" - } - }, - "Get-CsTeamsMigrationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMigrationConfiguration" - } - }, - "Get-CsTeamsMobilityPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMobilityPolicy" - } - }, - "Get-CsTeamsNetworkRoamingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsNetworkRoamingPolicy" - } - }, - "Get-CsTeamsShiftsAppPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsShiftsAppPolicy" - } - }, - "Get-CsTeamsSurvivableBranchAppliance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliance" - } - }, - "Get-CsTeamsSurvivableBranchAppliancePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliancePolicy" - } - }, - "Get-CsTeamsTargetingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTargetingPolicy" - } - }, - "Get-CsTeamsTranslationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTranslationRule" - } - }, - "Get-CsTeamsUpgradePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsUpgradePolicy" - } - }, - "Get-CsTeamsVideoInteropServicePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsVideoInteropServicePolicy" - } - }, - "Get-CsTeamsWorkLoadPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsWorkLoadPolicy" - } - }, - "Get-CsTenant": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsTenantPoint", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsTenantBlockedCallingNumbers": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantBlockedCallingNumbers" - } - }, - "Get-CsTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantDialPlan" - } - }, - "Get-CsTenantFederationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantFederationSettings" - } - }, - "Get-CsTenantLicensingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantLicensingConfiguration" - } - }, - "Get-CsTenantMigrationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantMigrationConfiguration" - } - }, - "Get-CsTenantNetworkConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkConfiguration" - } - }, - "Get-CsTenantNetworkRegion": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkRegion" - } - }, - "Get-CsTenantNetworkSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSubnet" - } - }, - "Get-CsTenantTrustedIPAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantTrustedIPAddress" - } - }, - "Get-CsVideoInteropServiceProvider": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "VideoInteropServiceProvider" - } - }, - "Get-CsMainlineAttendantFlow": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Grant-CsApplicationAccessPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "ApplicationAccessPolicy" - } - }, - "Grant-CsCallingLineIdentity": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "CallingLineIdentity" - } - }, - "Grant-CsDialoutPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "OnlineDialOutPolicy" - } - }, - "Grant-CsOnlineAudioConferencingRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "OnlineAudioConferencingRoutingPolicy" - } - }, - "Grant-CsOnlineVoicemailPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "OnlineVoicemailPolicy" - } - }, - "Grant-CsOnlineVoiceRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "OnlineVoiceRoutingPolicy" - } - }, - "Grant-CsTeamsAudioConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsAudioConferencingPolicy" - } - }, - "Grant-CsTeamsCallHoldPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsCallHoldPolicy" - } - }, - "Grant-CsTeamsCallParkPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsCallParkPolicy" - } - }, - "Grant-CsTeamsChannelsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsChannelsPolicy" - } - }, - "Grant-CsTeamsComplianceRecordingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsComplianceRecordingPolicy" - } - }, - "Grant-CsTeamsCortanaPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsCortanaPolicy" - } - }, - "Grant-CsTeamsEmergencyCallingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsEmergencyCallingPolicy" - } - }, - "Grant-CsTeamsEmergencyCallRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsEmergencyCallRoutingPolicy" - } - }, - "Grant-CsTeamsEnhancedEncryptionPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsEnhancedEncryptionPolicy" - } - }, - "Grant-CsTeamsFeedbackPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsFeedbackPolicy" - } - }, - "Grant-CsTeamsIPPhonePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsIPPhonePolicy" - } - }, - "Get-CsTeamsMediaLoggingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMediaLoggingPolicy" - } - }, - "Grant-CsTeamsMediaLoggingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsMediaLoggingPolicy" - } - }, - "Grant-CsTeamsMeetingBroadcastPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsMeetingBroadcastPolicy" - } - }, - "Grant-CsTeamsEventsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsEventsPolicy" - } - }, - "Grant-CsTeamsMeetingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsMeetingPolicy" - } - }, - "Grant-CsTeamsMessagingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsMessagingPolicy" - } - }, - "Grant-CsTeamsMobilityPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsMobilityPolicy" - } - }, - "Grant-CsTeamsSurvivableBranchAppliancePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsSurvivableBranchAppliancePolicy" - } - }, - "Grant-CsTeamsUpdateManagementPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsUpdateManagementPolicy" - } - }, - "Grant-CsTeamsUpgradePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsUpgradePolicy" - } - }, - "Grant-CsTeamsVideoInteropServicePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsVideoInteropServicePolicy" - } - }, - "Grant-CsTeamsVoiceApplicationsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsVoiceApplicationsPolicy" - } - }, - "Grant-CsTeamsWorkLoadPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsWorkLoadPolicy" - } - }, - "Grant-CsTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TenantDialPlan" - } - }, - "Import-CsAutoAttendantHolidays": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Import-CsOnlineAudioFile": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsApplicationAccessPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationAccessPolicy" - } - }, - "New-CsAutoAttendant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantCallableEntity": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantCallFlow": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantCallHandlingAssociation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantDialScope": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantMenu": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantMenuOption": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsAutoAttendantPrompt": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "CallingLineIdentity" - } - }, - "New-CsCallQueue": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsEdgeAllowAllKnownDomains": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsEdgeAllowAllKnownDomainsHelper", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsEdgeAllowList": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsEdgeAllowListHelper", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsEdgeDomainPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsEdgeDomainPatternHelper", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsHybridTelephoneNumber": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsInboundBlockedNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundBlockedNumberPattern" - } - }, - "New-CsInboundExemptNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundExemptNumberPattern" - } - }, - "New-CsOnlineApplicationInstance": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsOnlineApplicationInstanceV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineApplicationInstanceAssociation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineAudioConferencingRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineAudioConferencingRoutingPolicy" - } - }, - "New-CsOnlineDateTimeRange": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineLisCivicAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsOnlineLisCivicAddressModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineLisLocation": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsOnlineLisLocationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlinePSTNGateway": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePSTNGateway" - } - }, - "New-CsOnlineSchedule": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineTimeRange": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineVoiceRoute": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoute" - } - }, - "New-CsOnlineVoiceRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoutingPolicy" - } - }, - "New-CsTeamsAudioConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAudioConferencingPolicy" - } - }, - "New-CsTeamsCallParkPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCallParkPolicy" - } - }, - "New-CsTeamsCortanaPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCortanaPolicy" - } - }, - "New-CsTeamsEmergencyCallRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEmergencyCallRoutingPolicy" - } - }, - "New-CsTeamsEmergencyNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsTeamsEmergencyNumberHelper", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsTeamsIPPhonePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsIPPhonePolicy" - } - }, - "New-CsTeamsMeetingBroadcastPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastPolicy" - } - }, - "New-CsTeamsEventsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEventsPolicy" - } - }, - "New-CsTeamsMobilityPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMobilityPolicy" - } - }, - "New-CsTeamsNetworkRoamingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsNetworkRoamingPolicy" - } - }, - "New-CsTeamsSurvivableBranchAppliance": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliance" - } - }, - "New-CsTeamsSurvivableBranchAppliancePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliancePolicy" - } - }, - "New-CsTeamsTranslationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTranslationRule" - } - }, - "New-CsTeamsWorkLoadPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsWorkLoadPolicy" - } - }, - "New-CsTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantDialPlan" - } - }, - "New-CsTenantNetworkRegion": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkRegion" - } - }, - "New-CsTenantNetworkSite": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSite" - } - }, - "New-CsTenantNetworkSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSubnet" - } - }, - "New-CsTenantTrustedIPAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantTrustedIPAddress" - } - }, - "New-CsVideoInteropServiceProvider": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "VideoInteropServiceProvider" - } - }, - "New-CsVoiceNormalizationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsVoiceNormalizationRuleHelper", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Register-CsOnlineDialInConferencingServiceNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Register-CsOdcServiceNumber", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsApplicationAccessPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationAccessPolicy" - } - }, - "Remove-CsAutoAttendant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsCallingLineIdentity": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "CallingLineIdentity" - } - }, - "Remove-CsCallQueue": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsInboundBlockedNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundBlockedNumberPattern" - } - }, - "Remove-CsInboundExemptNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundExemptNumberPattern" - } - }, - "Remove-CsOnlineApplicationInstanceAssociation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineAudioConferencingRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineAudioConferencingRoutingPolicy" - } - }, - "Remove-CsOnlineDialInConferencingTenantSettings": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialInConferencingTenantSettings" - } - }, - "Remove-CsOnlineLisCivicAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisCivicAddressModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineLisLocation": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisLocationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineLisPort": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisPortModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineLisSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisSubnetModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineLisSwitch": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisSwitchModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineLisWirelessAccessPoint": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineLisWirelessAccessPointModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlinePSTNGateway": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePSTNGateway" - } - }, - "Remove-CsOnlineSchedule": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineTelephoneNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsOnlineTelephoneNumberModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineTelephoneNumberReleaseOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "New-CsOnlineDirectRoutingTelephoneNumberUploadOrder": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Remove-CsOnlineVoiceRoute": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoute" - } - }, - "Remove-CsOnlineVoiceRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoutingPolicy" - } - }, - "Remove-CsTeamsAudioConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAudioConferencingPolicy" - } - }, - "Remove-CsTeamsCallParkPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCallParkPolicy" - } - }, - "Remove-CsTeamsCortanaPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCortanaPolicy" - } - }, - "Remove-CsTeamsEmergencyCallRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEmergencyCallRoutingPolicy" - } - }, - "Remove-CsTeamsIPPhonePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsIPPhonePolicy" - } - }, - "Remove-CsTeamsMeetingBroadcastPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastPolicy" - } - }, - "Remove-CsTeamsEventsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEventsPolicy" - } - }, - "Remove-CsTeamsMobilityPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMobilityPolicy" - } - }, - "Remove-CsTeamsNetworkRoamingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsNetworkRoamingPolicy" - } - }, - "Remove-CsTeamsSurvivableBranchAppliance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliance" - } - }, - "Remove-CsTeamsSurvivableBranchAppliancePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliancePolicy" - } - }, - "Remove-CsTeamsTargetingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTargetingPolicy" - } - }, - "Remove-CsTeamsTranslationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTranslationRule" - } - }, - "Remove-CsTeamsWorkLoadPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsWorkLoadPolicy" - } - }, - "Remove-CsTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantDialPlan" - } - }, - "Remove-CsTenantNetworkRegion": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkRegion" - } - }, - "Remove-CsTenantNetworkSite": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSite" - } - }, - "Remove-CsTenantNetworkSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSubnet" - } - }, - "Remove-CsTenantTrustedIPAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantTrustedIPAddress" - } - }, - "Remove-CsVideoInteropServiceProvider": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "VideoInteropServiceProvider" - } - }, - "Set-CsApplicationAccessPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationAccessPolicy" - } - }, - "Set-CsApplicationMeetingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "ApplicationMeetingConfiguration" - } - }, - "Set-CsAutoAttendant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsCallingLineIdentity": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "CallingLineIdentity" - } - }, - "Set-CsCallQueue": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "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", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundBlockedNumberPattern" - } - }, - "Set-CsInboundExemptNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "InboundExemptNumberPattern" - } - }, - "Set-CsOnlineApplicationInstance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineApplicationInstanceV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineAudioConferencingRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineAudioConferencingRoutingPolicy" - } - }, - "Set-CsOnlineDialInConferencingBridge": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineDialInConferencingServiceNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOdcServiceNumber", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineDialInConferencingTenantSettings": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineDialInConferencingTenantSettings" - } - }, - "Set-CsOnlineDialInConferencingUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineDialInConferencingUserDefaultNumber": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineEnhancedEmergencyServiceDisclaimer": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisCivicAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisCivicAddressModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisLocation": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisLocationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisPort": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisPortModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisSubnetModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisSwitch": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisSwitchModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineLisWirelessAccessPoint": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineLisWirelessAccessPointModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlinePSTNGateway": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePSTNGateway" - } - }, - "Set-CsOnlinePstnUsage": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlinePstnUsages" - } - }, - "Set-CsOnlineSchedule": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineVoiceApplicationInstance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineVoiceApplicationInstanceV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineVoicemailUserSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsOnlineVoiceRoute": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoute" - } - }, - "Set-CsOnlineVoiceRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "OnlineVoiceRoutingPolicy" - } - }, - "Set-CsOnlineVoiceUser": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsOnlineVoiceUserV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsTeamsAudioConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsAudioConferencingPolicy" - } - }, - "Set-CsTeamsCallParkPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCallParkPolicy" - } - }, - "Set-CsTeamsCortanaPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsCortanaPolicy" - } - }, - "Set-CsTeamsEmergencyCallRoutingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEmergencyCallRoutingPolicy" - } - }, - "Set-CsTeamsGuestCallingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestCallingConfiguration" - } - }, - "Set-CsTeamsGuestMeetingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestMeetingConfiguration" - } - }, - "Set-CsTeamsGuestMessagingConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsGuestMessagingConfiguration" - } - }, - "Set-CsTeamsIPPhonePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsIPPhonePolicy" - } - }, - "Set-CsTeamsMeetingBroadcastConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastConfiguration" - } - }, - "Set-CsTeamsMeetingBroadcastPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMeetingBroadcastPolicy" - } - }, - "Set-CsTeamsEventsPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEventsPolicy" - } - }, - "Set-CsTeamsMigrationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMigrationConfiguration" - } - }, - "Set-CsTeamsMobilityPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsMobilityPolicy" - } - }, - "Set-CsTeamsNetworkRoamingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsNetworkRoamingPolicy" - } - }, - "Set-CsTeamsShiftsAppPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsShiftsAppPolicy" - } - }, - "Set-CsTeamsSurvivableBranchAppliance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliance" - } - }, - "Set-CsTeamsSurvivableBranchAppliancePolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsSurvivableBranchAppliancePolicy" - } - }, - "Set-CsTeamsTargetingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTargetingPolicy" - } - }, - "Set-CsTeamsTranslationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsTranslationRule" - } - }, - "Set-CsTeamsWorkLoadPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsWorkLoadPolicy" - } - }, - "Set-CsTenantBlockedCallingNumbers": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantBlockedCallingNumbers" - } - }, - "Set-CsTenantDialPlan": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantDialPlan" - } - }, - "Set-CsTenantFederationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantFederationSettings" - } - }, - "Set-CsTenantMigrationConfiguration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantMigrationConfiguration" - } - }, - "Set-CsTenantNetworkRegion": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkRegion" - } - }, - "Set-CsTenantNetworkSite": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSite" - } - }, - "Set-CsTenantNetworkSubnet": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantNetworkSubnet" - } - }, - "Set-CsTenantTrustedIPAddress": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TenantTrustedIPAddress" - } - }, - "Set-CsUser": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsUserModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsVideoInteropServiceProvider": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "VideoInteropServiceProvider" - } - }, - "Start-CsExMeetingMigration": { - "CmdletType": "Remoting", - "ModernCmdlet": "Start-CsMeetingMigrationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Sync-CsOnlineApplicationInstance": { - "CmdletType": "Remoting", - "ModernCmdlet": "Sync-CsOnlineApplicationInstanceV2", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsOnlineApplicationInstanceDiagnosticData": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Test-CsEffectiveTenantDialPlan": { - "CmdletType": "Remoting", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ModernCmdlet": "Test-CsEffectiveTenantDialPlanModern", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Test-CsInboundBlockedNumberPattern": { - "CmdletType": "Remoting", - "ModernCmdlet": "Test-CsInboundBlockedNumberPatternModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Test-CsTeamsUnassignedNumberTreatment": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Test-CsTeamsTranslationRule": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Test-CsVoiceNormalizationRule": { - "CmdletType": "Remoting", - "ModernCmdlet": "Test-CsVoiceNormalizationRuleModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Unregister-CsOnlineDialInConferencingServiceNumber": { - "CmdletType": "Remoting", - "ModernCmdlet": "Unregister-CsOdcServiceNumber", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Update-CsAutoAttendant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Set-CsTeamsUnassignedNumberTreatment": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsUnassignedNumberTreatment" - } - }, - "Remove-CsTeamsUnassignedNumberTreatment": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsUnassignedNumberTreatment" - } - }, - "New-CsTeamsUnassignedNumberTreatment": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsUnassignedNumberTreatment" - } - }, - "Get-CsTeamsUnassignedNumberTreatment": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsUnassignedNumberTreatment" - } - }, - "Get-CsTeamsEnhancedEncryptionPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEnhancedEncryptionPolicy" - } - }, - "Set-CsTeamsEnhancedEncryptionPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEnhancedEncryptionPolicy" - } - }, - "Remove-CsTeamsEnhancedEncryptionPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEnhancedEncryptionPolicy" - } - }, - "New-CsTeamsEnhancedEncryptionPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsEnhancedEncryptionPolicy" - } - }, - "Get-CsTeamsRoomVideoTeleConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Get-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" - } - }, - "Set-CsTeamsRoomVideoTeleConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Set-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" - } - }, - "Remove-CsTeamsRoomVideoTeleConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Remove-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" - } - }, - "New-CsTeamsRoomVideoTeleConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "New-CsConfigurationModern", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "ConfigType": "TeamsRoomVideoTeleConferencingPolicy" - } - }, - "Grant-CsTeamsRoomVideoTeleConferencingPolicy": { - "CmdletType": "Remoting", - "ModernCmdlet": "Grant-CsTeamsPolicy", - "AutoRestModuleName": "Microsoft.Teams.ConfigAPI.Cmdlets", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ], - "DefaultAutoRestParameters": { - "PolicyType": "TeamsRoomVideoTeleConferencingPolicy" - } - }, - "Get-CsUssUserSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Set-CsUssUserSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsUserCallingSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsUserCallingSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "New-CsUserCallingDelegate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsUserCallingDelegate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsUserCallingDelegate": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsOCEContext": { - "CmdletType": "Custom", - "ExportsTo": [ - "Torus" - ] - }, - "Clear-CsOCEContext": { - "CmdletType": "Custom", - "ExportsTo": [ - "Torus" - ] - }, - "Set-CsRegionContext": { - "CmdletType": "Custom", - "ExportsTo": [ - "Torus" - ] - }, - "Get-CsRegionContext": { - "CmdletType": "Custom", - "ExportsTo": [ - "Torus" - ] - }, - "Clear-CsRegionContext": { - "CmdletType": "Custom", - "ExportsTo": [ - "Torus" - ] - }, - "Get-CsMeetingMigrationTransactionHistory": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "Torus" - ] - }, - "Get-CsCloudTenant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsCloudUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsTeamsSettingsCustomApp": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsTeamsSettingsCustomApp": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Remove-CsUserLicenseGracePeriod": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost", - "Torus" - ] - }, - "Get-CsAadTenant": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsAadUser": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Clear-CsCacheOperation": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Move-CsAvsTenantPartition": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Invoke-CsMsodsSync": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "SelfHost", - "Torus" - ] - }, - "Get-CsPersonalAttendantSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - }, - "Set-CsPersonalAttendantSettings": { - "CmdletType": "AutoRest", - "ExportsTo": [ - "TeamsGA", - "TeamsPreview", - "SelfHost" - ] - } - } -} diff --git a/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 b/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 deleted file mode 100644 index dcc801138e2aa..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/custom/Merged_custom_PsExt.ps1 +++ /dev/null @@ -1,13512 +0,0 @@ -# ---------------------------------------------------------------------------------- -# -# 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 file is to throw an error message that it is deprecated or there is equivalent cmdlets that do the work - -function Invoke-CsDeprecatedError { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [System.String] - # Error action. - ${DeprecatedErrorMessage}, - - [Parameter(Mandatory=$false)] - [System.Collections.Hashtable] - $PropertyBag - ) - - process { - Write-Error -Message $DeprecatedErrorMessage - } -} -# ---------------------------------------------------------------------------------- -# -# 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 enum of the cmdlet output - -class ProcessedGetOnlineEnhancedEmergencyServiceDisclaimerResponse { - [string]$Country - [string]$Version - [string]$Content - [string]$Response - [string]$RespondedByObjectId - [DateTime]$ResponseTimestamp - [string]$CorrelationId - [string]$Locale -} - -function Get-CsOnlineEnhancedEmergencyServiceDisclaimerModern { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true)] - [System.String] - # CountryOrRegion of the Emergency Disclaimer - ${CountryOrRegion}, - - [Parameter(Mandatory=$false)] - [System.String] - # Version of the Emergency Disclaimer - ${Version}, - - [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() - - $edresponse = '' - - $input = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineEnhancedEmergencyServiceDisclaimer @PSBoundParameters -ErrorAction Stop @httpPipelineArgs - - if ($input -ne $null -and $input.Response -ne $null) - { - switch ($input.Response) - { - 0 {$edresponse = 'None'} - 1 {$edresponse = 'Accepted'} - 2 {$edresponse = 'NotAccepted'} - } - - $result = [ProcessedGetOnlineEnhancedEmergencyServiceDisclaimerResponse]::new() - $result.Content = $input.Content - $result.CorrelationId = $input.CorrelationId - $result.Country = $input.Country - $result.Locale = $input.Locale - $result.RespondedByObjectId = $input.RespondedByObjectId - $result.Response = $edresponse - $result.ResponseTimestamp = $input.ResponseTimestamp - $result.Version = $input.Version - - return $result - } - } - catch - { - Write-Host $_ - } - } - - 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: Provide option to Accept or Reject Disclaimer - -class ProcessedSetOnlineEnhancedEmergencyServiceDisclaimerResponse { - [string]$Country - [string]$Version - [string]$Content - [string]$Response - [string]$RespondedByObjectId - [DateTime]$ResponseTimestamp - [string]$CorrelationId - [string]$Locale -} - -function Set-CsOnlineEnhancedEmergencyServiceDisclaimerModern { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # CountryOrRegion of the Emergency Disclaimer - ${CountryOrRegion}, - [Parameter(Mandatory=$false, position=1)] - [System.String] - # Version of the Emergency Disclaimer - ${Version}, - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # ForceAccept Emergency Disclaimer, Disclaimer will pop up without this parameter provided - ${ForceAccept}, - [Parameter(Mandatory=$false)] - [System.String] - # Response of the Emergency Disclaimer - ${Response}, - [Parameter(Mandatory=$false)] - [System.String] - # RespondedByObjectId of the Emergency Disclaimer - ${RespondedByObjectId}, - [Parameter(Mandatory=$false)] - [System.String] - # ResponseTimestamp of the Emergency Disclaimer - ${ResponseTimestamp}, - [Parameter(Mandatory=$false)] - [System.String] - # Locale of the Emergency Disclaimer - ${Locale}, - - [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("ForceAccept")) { - $PSBoundParameters.Remove("ForceAccept") | Out-Null - } - - $ged = $null - $edContent = $null - $edCountry = $null - $edVersion = $null - $edResponse = $null - $edRespondedByObjectId = $null - $edResponseTimestamp = $null - $edLocale = $null - - try - { - $ged = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineEnhancedEmergencyServiceDisclaimer @PSBoundParameters -ErrorAction Stop @httpPipelineArgs - $edContent = Out-String -InputObject $ged.Content - $edCountry = Out-String -InputObject $ged.Country - $edVersion = Out-String -InputObject $ged.Version - $edResponse = Out-String -InputObject $ged.Response - $edRespondedByObjectId = Out-String -InputObject $ged.RespondedByObjectId - $edResponseTimestamp = [DateTime]::UtcNow.ToString('u') - $edLocale = Out-String -InputObject $ged.Locale - - if ([string]::IsNullOrEmpty($edContent)) - { - $DiagnosticCode = Out-String -InputObject $ged.DiagnosticCode - $DiagnosticCorrelationId = Out-String -InputObject $ged.DiagnosticCorrelationId - #$DiagnosticDebugContent = Out-String -InputObject $ged.DiagnosticDebugContent - $DiagnosticGenevaLogsUrl = Out-String -InputObject $ged.DiagnosticGenevaLogsUrl - $DiagnosticReason = Out-String -InputObject $ged.DiagnosticReason - $DiagnosticSubCode = Out-String -InputObject $ged.DiagnosticSubCode - - Write-Host "DiagnosticCode : "$DiagnosticCode - Write-Host "DiagnosticCorrelationId :" $DiagnosticCorrelationId - #Write-Host $DiagnosticDebugContent - Write-Host "DiagnosticGenevaLogsUrl : " $DiagnosticGenevaLogsUrl - Write-Host "DiagnosticReason : " $DiagnosticReason - Write-Host "DiagnosticSubCode : "$DiagnosticSubCode - Return - } - } catch { - throw - } - - if(!${ForceAccept}) - { - $confirmation = Read-Host $edContent"`n[Y] Yes [N] No (default is `"N`")" - switch($confirmation) { - 'Y' { - Break - } - Default { - Return - } - } - - } else { - $null = $PSBoundParameters.Remove('ForceAccept') - } - - try { - - [System.String[]]$global:configscopes = @("48ac35b8-9aa8-4d74-927d-1f4a14a0b239/user_impersonation") - - Write-Host "Timestamp " $edResponseTimestamp - - $edResponse = 1 - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineEnhancedEmergencyServiceDisclaimer -Country ${CountryOrRegion} -Version ${Version} -Content $edContent -Response $edResponse -RespondedByObjectId $edRespondedByObjectId -ResponseTimestamp $edResponseTimestamp -Locale ${Locale} -ErrorAction Stop @httpPipelineArgs - } catch { - throw - } - - } 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 Get-CsConfigurationModern { - [CmdletBinding(DefaultParameterSetName = 'ConfigType')] - param( - [Parameter(Mandatory=$true, ParameterSetName='ConfigType')] - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [Parameter(Mandatory=$true, ParameterSetName='Filter')] - [System.String] - # Type of configuration retrieved. - ${ConfigType}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - # Name of configuration retrieved. - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Filter')] - [System.String] - # Name of configuration retrieved. - ${Filter}, - - [Parameter(Mandatory=$false)] - [System.Collections.Hashtable] - ${PropertyBag}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try { - - $null = $customCmdletUtils.ProcessArgs() - - $xdsConfigurationOutput0 = $null - - $HashArguments = @{ ConfigType = $ConfigType} - - if (![string]::IsNullOrWhiteSpace($Identity)) - { - $HashArguments.Add('ConfigName', $Identity) - } - - $TeamsMeetingBroadcastConfiguration_FixupFormat = $false - - if($PropertyBag -ne $null) - { - if($ConfigType -eq 'TeamsMeetingBroadcastConfiguration') - { - if($PropertyBag['ExposeSDNConfigurationJsonBlob'] -eq $true) - { - $TeamsMeetingBroadcastConfiguration_FixupFormat = $true - $HashArguments.Add('HttpPipelinePrepend', { param($req, $callback, $next ) $req.RequestUri = [Uri]($req.RequestUri.ToString() + '?ExposeSDNConfigurationJsonBlob=true'); return $next.SendAsync($req, $callback); }) - } - } - else - { - #ignore - } - } - - $null = $customCmdletUtils.PutHttpPipelineSteps($HashArguments) - - $xdsConfigurationOutput0 = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsConfiguration @HashArguments - - $xdsConfigurationOutput = ($xdsConfigurationOutput0 | %{ - Convert-PsCustomObjectToPsObject (ConvertFrom-Json -InputObject $_) - }) - - if (![string]::IsNullOrWhiteSpace($Filter)) - { - $xdsConfigurationOutput = $xdsConfigurationOutput | Where-Object {($_.Identity -Like "$Filter") -or ($_.Identity -Like "Tag:$Filter")} - } - - $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Set-FormatOnConfigObject -ConfigObject $_ -ConfigType $ConfigType } - - if($ConfigType -eq 'TenantFederationSettings') - { - $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Convert-PsCustomObjectToPsObject (Set-FixTenantFedConfigObject -ConfigObject $_) } - } - - if($ConfigType -eq 'OnlinePSTNGateway') - { - $xdsConfigurationOutput = $xdsConfigurationOutput | %{ Convert-PsCustomObjectToPsObject (Set-FixTypoInOnlinePSTNGatewayConfigObject -ConfigObject $_) } - } - - if($TeamsMeetingBroadcastConfiguration_FixupFormat) - { - #why are we special handling this? when legacy is run, the format type name is sdnconfigurationextension which is not a wellknown type inside SfbRpsModule.format.ps1xml - #so we hack this here so that we order them and select what we need (so we dont return key, datasource) - $xdsConfigurationOutput = ($xdsConfigurationOutput | select Identity, SupportURL, AllowSdnProviderForBroadcastMeeting, SdnName, SdnLicenseId, SdnAzureSubscriptionId, SdnApiTemplateUrl, SdnApiToken, SdnRuntimeconfiguration, SdnAttendeeFallbackCount) - } - - return (Sort-GlobalFirst $xdsConfigurationOutput) - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} - -# output Identity=Global before other identities -function Sort-GlobalFirst($out) -{ - # keep legacy behavior to return nothing instead of $null when nothing is found - if (($out | measure).Count -eq 0) { return } - - $out | ?{ $_.Identity -eq "Global" } - $out | ?{ $_.Identity -ne "Global" } -} - -# convert PSCustom Object to PSObject by using psserializer -function Custom-ToString($xnode) -{ - $props_to_hide = @("Element","XsAnyElements","XsAnyAttributes") - - $nodes = $xnode.SelectNodes('*[name() = "MS" or name() = "Props"]/*') - $values = ($nodes | % { - if ($_.N -notin $props_to_hide) - { - $val = $_.SelectSingleNode("text()").Value - if ($_.Name -eq "B") { $val = [bool]::Parse($val)} - "$($_.N)=$val" - } - }) - if ($values) { [string]::Join(";", $values) } -} - -function Convert-PsCustomObjectToPsObject($in) -{ - $serialized = [System.Management.Automation.PSSerializer]::Serialize($in) - $xml = [xml]$serialized - foreach ($obj in $xml.GetElementsByTagName("Obj")) - { - if ($obj.Item("LST") -eq $null -and $obj.Item("Props") -eq $null) - { - $props = $xml.CreateElement("Props", $xml.Objs.xmlns) - $null = $obj.PrependChild($props) - - if ($obj.Item("ToString") -eq $null) - { - $text = Custom-ToString $obj - if ($text -ne $null) - { - $tostring = $xml.CreateElement("ToString", $xml.Objs.xmlns) - $tostring.InnerText = $text - $null = $obj.PrependChild($tostring) - } - } - } - } - return [System.Management.Automation.PSSerializer]::Deserialize($xml.OuterXml) -} - -function Get-FormatsForConfig { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [string] - # The int status from status record - ${ConfigType} - ) - process { - # order of values like value1 and value2 is important in lines like "ConfigType=value1, value2" - $mappings = @( - "ApplicationAccessPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.ApplicationAccessPolicy", - "ApplicationMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration", - "CallingLineIdentity=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.CallingLineIdentity", - "DialPlan=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile", - "ExternalAccessPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy", - "InboundBlockedNumberPattern=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern", - "InboundExemptNumberPattern=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern", - "OnlineAudioConferencingRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineAudioConferencingRoutingPolicy", - "OnlineDialinConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialinConferencing.OnlineDialinConferencingPolicy", - "OnlineDialinConferencingTenantConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialinConferencingTenantConfiguration", - "OnlineDialInConferencingTenantSettings=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingTenantSettings", - "OnlineDialInConferencingTenantSettings.AllowedDialOutExternalDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.OnlineDialInConferencing.OnlineDialInConferencingAllowedDomain", - "OnlineDialOutPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineDialOut.OnlineDialOutPolicy", - "OnlinePSTNGateway=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig#Decorated2,Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.TrunkConfig", - "OnlinePstnUsages=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlinePstnUsages", - "OnlineVoicemailPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy", - "OnlineVoiceRoute=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineRoute#Decorated", - "OnlineVoiceRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.OnlineVoiceRoutingPolicy", - "PrivacyConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration", - "TeamsAcsFederationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AcsConfiguration.TeamsAcsFederationConfiguration", - "TeamsAppPermissionPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppPermissionPolicy", - "TeamsAppPermissionPolicy.DefaultCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.DefaultCatalogApp", - "TeamsAppPermissionPolicy.GlobalCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.GlobalCatalogApp", - "TeamsAppPermissionPolicy.PrivateCatalogApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PrivateCatalogApp", - "TeamsAppSetupPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsAppSetupPolicy", - "TeamsAppSetupPolicy.AppPresetList=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPreset", - "TeamsAppSetupPolicy.AppPresetMeetingList=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.AppPresetMeeting", - "TeamsAppSetupPolicy.PinnedAppBarApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedApp", - "TeamsAppSetupPolicy.PinnedMessageBarApps=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.PinnedMessageBarApp", - "TeamsAudioConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.TeamsAudioConferencing.TeamsAudioConferencingPolicy", - "TeamsCallHoldPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallHoldPolicy", - "TeamsCallingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallingPolicy", - "TeamsCallParkPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCallParkPolicy", - "TeamsChannelsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsChannelsPolicy", - "TeamsClientConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsClientConfiguration", - "TeamsComplianceRecordingApplication=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication#Decorated,Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication", - "TeamsComplianceRecordingApplication.ComplianceRecordingPairedApplications=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingPairedApplication", - "TeamsComplianceRecordingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsComplianceRecordingPolicy", - "TeamsComplianceRecordingPolicy.ComplianceRecordingApplications=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.ComplianceRecordingApplication", - "TeamsCortanaPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsCortanaPolicy", - "TeamsEducationAssignmentsAppPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEducationAssignmentsAppPolicy", - "TeamsEducationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsEducationConfiguration", - "TeamsEmergencyCallingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallingPolicy", - "TeamsEmergencyCallRoutingPolicy.EmergencyNumbers=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyNumber", - "TeamsEmergencyCallRoutingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEmergencyCallRoutingPolicy", - "TeamsFeedbackPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFeedbackPolicy", - "TeamsGuestCallingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestCallingConfiguration", - "TeamsGuestMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMeetingConfiguration", - "TeamsGuestMessagingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsGuestMessagingConfiguration", - "TeamsIPPhonePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsIPPhonePolicy", - "TeamsMeetingBroadcastConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsMeetingBroadcastConfiguration", - "TeamsMeetingBroadcastPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMeetingBroadcastPolicy", - "TeamsMeetingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMeetingConfiguration.TeamsMeetingConfiguration", - "TeamsMeetingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Meeting.TeamsMeetingPolicy", - "TeamsMessagingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMessagingPolicy", - "TeamsMigrationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsMigrationConfiguration.TeamsMigrationConfiguration", - "TeamsMobilityPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMobilityPolicy", - "TeamsNetworkRoamingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNetworkRoamingPolicy", - "TeamsNotificationAndFeedsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsNotificationAndFeedsPolicy", - "TeamsShiftsAppPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsAppPolicy", - "TeamsShiftsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsShiftsPolicy", - "TeamsSurvivableBranchAppliance=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.SurvivableBranchAppliance#Decorated", - "TeamsSurvivableBranchAppliancePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TeamsBranchSurvivabilityPolicy", - "TeamsTranslationRule=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.AzurePSTNTrunkConfiguration.PstnTranslationRule#Decorated", - "TeamsTargetingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsTargetingPolicy", - "TeamsUnassignedNumberTreatment=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.UnassignedNumberTreatmentConfiguration.UnassignedNumberTreatment#Decorated", - "TeamsUpdateManagementPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpdateManagementPolicy", - "TeamsUpgradeConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TeamsConfiguration.TeamsUpgradeConfiguration", - "TeamsUpgradePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsUpgradePolicy", - "TeamsVdiPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVdiPolicy", - "TeamsVideoInteropServicePolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVideoInteropServicePolicy", - "TeamsVoiceApplicationsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsVoiceApplicationsPolicy", - "TeamsWorkLoadPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsWorkLoadPolicy", - "TenantBlockedCallingNumbers=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantBlockedCallingNumbers", - "TenantBlockedCallingNumbers.InboundBlockedNumberPatterns=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundBlockedNumberPattern", - "TenantBlockedCallingNumbers.InboundExemptNumberPatterns=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.InboundExemptNumberPattern", - "TenantDialPlan=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.TenantDialPlan", - "TenantDialPlan.NormalizationRules=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule", - "TenantFederationSettings=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings", - "TenantFederationSettings.AllowedDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList", - "TenantFederationSettings.BlockedDomains=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern", - "TenantLicensingConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration", - "TenantMigrationConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantMigration.TenantMigrationConfiguration", - "TenantNetworkConfiguration=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TenantNetworkConfigurationSettings", - "TenantNetworkConfiguration.NetworkRegions=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.NetworkRegionType#Decorated", - "TenantNetworkConfiguration.NetworkSites=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkSiteWithExpandParametersType#Decorated", - "TenantNetworkConfiguration.Subnets=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated", - "TenantNetworkRegion=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkRegionType#Decorated", - "TenantNetworkSite=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.DisplayNetworkSiteWithExpandParametersType#Decorated", - "TenantNetworkSubnet=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.SubnetType#Decorated", - "TenantTrustedIPAddress=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantNetworkConfiguration.TrustedIP#Decorated", - "TeamsFilesPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsFilesPolicy", - "TeamsEnhancedEncryptionPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEnhancedEncryptionPolicy", - "TeamsMediaLoggingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsMediaLoggingPolicy", - "TeamsRoomVideoTeleConferencingPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsRoomVideoTeleConferencingPolicy", - "TeamsEventsPolicy=Deserialized.Microsoft.Rtc.Management.WritableConfig.Policy.Teams.TeamsEventsPolicy", - "VideoInteropServiceProvider=Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantVideoInteropServiceConfiguration.VideoInteropServiceProvider#Decorated", - "HostingProvider=Microsoft.Rtc.Management.WritableConfig.Settings.Edge.Hosted.DisplayHostingProviderExtended" - ) - - $mappings | where {$_.StartsWith("$ConfigType")} - } -} - -function Set-FormatOnConfigObject { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true)] - # Object on which typenames need to be set - ${ConfigObject}, - - [Parameter(Mandatory=$true)] - # Type of configuration - ${ConfigType} - ) - process { - $mappings = Get-FormatsForConfig -ConfigType $ConfigType - $parenttn = $mappings | where {$_.StartsWith("$ConfigType=")} - $parenttnList = $parenttn.Split("=")[1].Split(",") - $childtnmappings = $mappings | where {$_.StartsWith("$ConfigType.")} - - foreach ($inst in $ConfigObject) - { - for ($i = 0; $i -lt $parenttnList.Count; $i++) - { - $inst.PsObject.TypeNames.Insert($i, $parenttnList[$i]) - } - - foreach($tn in $childtnmappings) - { - $childtn = $tn.Split("=")[1] - $childPropName = $tn.Split("=")[0].Split(".")[1] - foreach($instc in $inst.$childPropName) - { - $instc.PsObject.TypeNames.Insert(0,$childtn) - } - } - } - - return $ConfigObject - } -} - -function Set-FixToStringOnAllowedDomains($in, $val) -{ - $serialized = [System.Management.Automation.PSSerializer]::Serialize($in) - $xml = [xml]$serialized - foreach ($obj in $xml.GetElementsByTagName("Obj")) - { - if ($obj.Attributes["N"].'#text' -eq 'AllowedDomains') - { - if ($obj.Item("ToString") -ne $null) - { - $obj.Item("ToString").'#text' = $val - } - } - } - return [System.Management.Automation.PSSerializer]::Deserialize($xml.OuterXml) -} - -function Set-FixTenantFedConfigObject { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true)] - # Object for Get-CsTenantFederationConfiguration - ${ConfigObject} - ) - process { - if($ConfigObject.AllowedDomains.AllowedDomain -eq $null) - { - $ConfigObject.AllowedDomains = New-CsEdgeAllowAllKnownDomains -MsftInternalProcessingMode TryModern - } - elseif($ConfigObject.AllowedDomains.AllowedDomain.Count -eq 0) - { - $ConfigObject = Set-FixToStringOnAllowedDomains -val "" -in $ConfigObject - } - elseif($ConfigObject.AllowedDomains.AllowedDomain.Count -gt 0) - { - $str = "Domain=" + [string]::join(",Domain=",$ConfigObject.AllowedDomains.AllowedDomain.Domain) - $ConfigObject = Set-FixToStringOnAllowedDomains -val $str -in $ConfigObject - } - - return $ConfigObject - } -} - -#Add proerty OutboundTeamsNumberTranslationRules into the response object -function Set-FixTypoInOnlinePSTNGatewayConfigObject { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true)] - # Object for Get-CsOnlinePSTNGateway - ${ConfigObject} - ) - process { - foreach ($inst in $ConfigObject) - { - $inst | Add-Member NoteProperty 'OutboundTeamsNumberTranslationRules' $inst.OutbundTeamsNumberTranslationRules - } - - return $ConfigObject - } -} -# ---------------------------------------------------------------------------------- -# -# 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: Transfer $PolicyRankings from user's input from string[] to object[] - -function Grant-CsGroupPolicyPackageAssignment { - [OutputType([System.String])] - [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', - PositionalBinding=$false, - SupportsShouldProcess, - ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - $GroupId, - - [Parameter(Mandatory=$false, position=1)] - [AllowNull()] - [AllowEmptyString()] - $PackageName, - - [Parameter(position=2)] - [System.String[]] - $PolicyRankings, - - [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() - - $Delimiters = ",", ".", ":", ";", " ", "`t" - [psobject[]]$InternalRankingList = @() - foreach ($PolicyTypeAndRank in $PolicyRankings) - { - $PolicyTypeAndRankArray = $PolicyTypeAndRank -Split {$Delimiters -contains $_}, 2 - $PolicyTypeAndRankArray = $PolicyTypeAndRankArray.Trim() - if ($PolicyTypeAndRankArray.Count -lt 2) - { - throw "Invalid Policy Type and Rank pair: $PolicyTypeAndRank. Please use a proper delimeter" - } - $PolicyTypeAndRankObject = [psobject]@{ - PolicyType = $PolicyTypeAndRankArray[0] - Rank = $PolicyTypeAndRankArray[1] -as [int] - } - $InternalRankingList += $PolicyTypeAndRankObject - } - $null = $PSBoundParameters.Remove("PolicyRankings") - $null = $PSBoundParameters.Add("PolicyRankings", $InternalRankingList) - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsGroupPolicyPackageAssignment @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Integrate Grant-CsTeamsPolicy with Grant-CsUserPolicy, Grant-CsTenantPolicy, and Group grant - -function Grant-CsTeamsPolicy { - [CmdletBinding(PositionalBinding=$true, DefaultParameterSetName="Identity", SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param( - [ArgumentCompleter({param ($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters) return @("ApplicationAccessPolicy","BroadcastMeetingPolicy","CallingLineIdentity","ClientPolicy","CloudMeetingPolicy","ConferencingPolicy","DialoutPolicy","ExternalAccessPolicy","ExternalUserCommunicationPolicy","GraphPolicy","GroupPolicyPackageAssignment","HostedVoicemailPolicy","IPPhonePolicy","MobilityPolicy","OnlineAudioConferencingRoutingPolicy","OnlineVoicemailPolicy","OnlineVoiceRoutingPolicy","Policy","TeamsAppPermissionPolicy","TeamsAppSetupPolicy","TeamsAudioConferencingPolicy","TeamsCallHoldPolicy","TeamsCallingPolicy","TeamsCallParkPolicy","TeamsChannelsPolicy","TeamsComplianceRecordingPolicy","TeamsCortanaPolicy","TeamsEmergencyCallingPolicy","TeamsEmergencyCallRoutingPolicy","TeamsEnhancedEncryptionPolicy","TeamsFeedbackPolicy","TeamsFilesPolicy","TeamsIPPhonePolicy","TeamsMeetingBroadcastPolicy","TeamsMeetingPolicy","TeamsMessagingPolicy","TeamsMobilityPolicy","TeamsShiftsPolicy","TeamsSurvivableBranchAppliancePolicy","TeamsUpdateManagementPolicy","TeamsUpgradePolicy","TeamsVdiPolicy","TeamsVerticalPackagePolicy","TeamsVideoInteropServicePolicy","TeamsWorkLoadPolicy","TenantDialPlan","UserOrTenantPolicy","UserPolicyPackage","VoiceRoutingPolicy") | ?{ $_ -like "$WordToComplete*" } })] - [Parameter(Mandatory=$true)] - [System.String] - # Type of the policy - ${PolicyType}, - - [Parameter(Mandatory=$false, Position=1)] - [System.String] - # Name of the policy instance - ${PolicyName}, - - # Mandatory=$false allows for deprecated "identity=$null means Grant-to-tenant" behavior - # eventually we should set Mandatory=$true and require preferred -Global switch for that - [Parameter(Mandatory=$false, Position=0, ParameterSetName="Identity", ValueFromPipelineByPropertyName=$true, ValueFromPipeline=$true)] - [ValidateNotNullOrEmpty()] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$true, Position=0, ParameterSetName="GrantToTenant")] - [Switch] - # Use global indicating grant to tenant - ${Global}, - - [Parameter(Mandatory=$true, Position=0, ParameterSetName="GrantToGroup")] - [ValidateNotNullOrEmpty()] - [System.String] - # Unique identifier for the group - ${Group}, - - [Parameter(Mandatory=$false, ParameterSetName="GrantToGroup")] - [Nullable[int]] - ${Rank}, - - [Parameter(Mandatory=$false)] - ${AdditionalParameters}, - - [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() - - if (-not $PSBoundParameters.ContainsKey("PolicyName")) - { - # this parameter should be Mandatory=$true, however the [AllowNull]/[AllowEmptyString] attributes don't get surfaced to the wrapper cmdlet that is generated - throw [System.Management.Automation.ParameterBindingException]::new("Cannot process command because of one or more missing mandatory parameters: PolicyName.") - } - - if ($PsCmdlet.ParameterSetName -eq "GrantToGroup") - { - $parameters = @{ - GroupId=$Group - PolicyType=$PolicyType - PolicyName=$PolicyName - } - if ($Rank) { $parameters["Rank"] = $Rank } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsGroupPolicyAssignment @parameters - } - elseif ([string]::IsNullOrWhiteSpace($Identity)) - { - if (-not $Global) - { - # The only way to grant to tenant is to use -Global - throw [System.Management.Automation.ParameterBindingException]::new("Cannot process command because of one or more missing mandatory parameters: Global.") - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsTenantPolicy -PolicyType $PolicyType -PolicyName $PolicyName -AdditionalParameters $AdditionalParameters -forceSwitchPresent:$Force - } - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Grant-CsUserPolicy -Identity $Identity -PolicyType $PolicyType -PolicyName $PolicyName -AdditionalParameters $AdditionalParameters - } - } - 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-CsConfigurationModern { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [System.String] - # Type of configuration retrieved. - ${ConfigType}, - - [Parameter(Mandatory=$true)] - [System.Collections.Hashtable] - ${PropertyBag}, - - [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() - - #Todo: validate that $PropertyBag contains Identity or just depend on the service to reject otherwise - $xdsConfigurationOutput = $null - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsConfiguration -ConfigType $ConfigType -Body $PropertyBag -ErrorVariable err @httpPipelineArgs - if ($err) { return } - - #Todo - Handle where new failed - because the identity already exists, rbac or someother server error - #Todo: Ensure to test this under TPM, given we are referring the Microsoft.Teams.ConfigAPI.Cmdlets module - $xdsConfigurationOutput = Get-CsConfigurationModern -ConfigType $ConfigType -Identity $PropertyBag['Identity'] - - $xdsConfigurationOutput - - } 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 identity - -function Remove-CsConfigurationModern { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [System.String] - # Type of configuration deleted. - ${ConfigType}, - - [Parameter(Mandatory=$true)] - [System.String] - # Name of configuration deleted. - ${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() - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsConfiguration -ConfigType $ConfigType -ConfigName $Identity @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: transforming the results to the custom objects - -function Set-CsConfigurationModern { - [CmdletBinding()] - param( - [Parameter(Mandatory=$true)] - [System.String] - # Type of configuration retrieved. - ${ConfigType}, - - [Parameter(Mandatory=$true)] - [System.Collections.Hashtable] - ${PropertyBag}, - - [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(!($PropertyBag.ContainsKey('Identity'))) - { - $PropertyBag['Identity'] = "Global" - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsConfiguration -ConfigType $ConfigType -ConfigName $PropertyBag['Identity'] -Body $PropertyBag @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 Clear-CsOnlineTelephoneNumberOrder { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # OrderId of the Search Order - ${OrderId}, - - [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.Add("Action", "Cancel") - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Complete-CsOnlineTelephoneNumberOrder @PSBoundParameters -ErrorAction Stop @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 Complete-CsOnlineTelephoneNumberOrder { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # OrderId of the Search Order - ${OrderId}, - - [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.Add("Action", "Complete") - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Complete-CsOnlineTelephoneNumberOrder @PSBoundParameters -ErrorAction Stop @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 Get-CsOnlineTelephoneNumberOrder { - [CmdletBinding(DefaultParameterSetName="Search")] - param( - [Parameter(Mandatory=$true, ParameterSetName='Search')] - [Parameter(Mandatory=$true, ParameterSetName='Generic')] - [System.String] - ${OrderId}, - - [Parameter(Mandatory=$false, ParameterSetName='Generic')] - [System.String] - ${OrderType}, - - [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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineTelephoneNumberOrder @PSBoundParameters - $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } 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 byte[] content for the DirectRouting number upload file - -function New-CsOnlineDirectRoutingTelephoneNumberUploadOrder { - [CmdletBinding(DefaultParameterSetName="InputByList")] - param( - [Parameter(Mandatory=$false, ParameterSetName='InputByList')] - [System.String] - ${TelephoneNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] - [System.String] - ${StartingNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] - [System.String] - ${EndingNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByFile')] - [System.Byte[]] - ${FileContent}, - - [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($FileContent -ne $null){ - $base64input = [System.Convert]::ToBase64String($FileContent) - $null = $PSBoundParameters.Remove("FileContent") - $null = $PSBoundParameters.Add("FileContent", $base64input) - } - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineDirectRoutingTelephoneNumberUploadOrder @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Base64 encode the byte[] content for the telephone number release file - -function New-CsOnlineTelephoneNumberReleaseOrder { - [CmdletBinding(DefaultParameterSetName="InputByList")] - param( - [Parameter(Mandatory=$false, ParameterSetName='InputByList')] - [System.String] - ${TelephoneNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] - [System.String] - ${StartingNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByRange')] - [System.String] - ${EndingNumber}, - - [Parameter(Mandatory=$false, ParameterSetName='InputByFile')] - [System.Byte[]] - ${FileContent}, - - [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($FileContent -ne $null){ - $base64input = [System.Convert]::ToBase64String($FileContent) - $null = $PSBoundParameters.Remove("FileContent") - $null = $PSBoundParameters.Add("FileContent", $base64input) - } - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineTelephoneNumberReleaseOrder @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 Remove-CsOnlineTelephoneNumberModern { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String[]] - # Telephone numbers to remove - ${TelephoneNumber}, - - [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() - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineTelephoneNumberPrivate -TelephoneNumber $TelephoneNumber @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 Remove-CsPhoneNumberAssignment { - [CmdletBinding(DefaultParameterSetName="RemoveSome")] - param( - [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] - [Parameter(Mandatory=$true, ParameterSetName='RemoveAll')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] - [System.String] - ${PhoneNumber}, - - [Parameter(Mandatory=$true, ParameterSetName='RemoveSome')] - [System.String] - ${PhoneNumberType}, - - [Parameter(Mandatory=$true, ParameterSetName='RemoveAll')] - [Switch] - ${RemoveAll}, - - [Parameter(Mandatory=$false, ParameterSetName='RemoveSome')] - [Parameter(Mandatory=$false, ParameterSetName='RemoveAll')] - [Switch] - ${Notify}, - - [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) - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsPhoneNumberAssignment @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-CsPhoneNumberAssignment { - # Do not change this default parameter set. Since LocationUpdate parameter set is a subset - # of Assignment, changing default parameter set to something else will make Identity to be - # always requried and LocationUpdate never be executed. - [CmdletBinding(DefaultParameterSetName="LocationUpdate")] - param( - [Parameter(Mandatory=$true, ParameterSetName='Assignment')] - [Parameter(Mandatory=$true, ParameterSetName='Attribute')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Assignment')] - [Parameter(Mandatory=$true, ParameterSetName='LocationUpdate')] - [Parameter(Mandatory=$true, ParameterSetName='NetworkSiteUpdate')] - [Parameter(Mandatory=$true, ParameterSetName='ReverseNumberLookupUpdate')] - [System.String] - ${PhoneNumber}, - - [Parameter(Mandatory=$true, ParameterSetName='Assignment')] - [System.String] - ${PhoneNumberType}, - - [Parameter(ParameterSetName='Assignment')] - [Parameter(Mandatory=$true, ParameterSetName='LocationUpdate')] - [System.String] - ${LocationId}, - - [Parameter(ParameterSetName='Assignment')] - [Parameter(Mandatory=$true, ParameterSetName='NetworkSiteUpdate')] - [System.String] - ${NetworkSiteId}, - - [Parameter(ParameterSetName='Assignment')] - [System.String] - ${AssignmentCategory}, - - [Parameter(ParameterSetName='Assignment')] - [Parameter(Mandatory=$true, ParameterSetName='ReverseNumberLookupUpdate')] - [System.String] - ${ReverseNumberLookup}, - - [Parameter(Mandatory=$true, ParameterSetName='Attribute')] - [System.Boolean] - ${EnterpriseVoiceEnabled}, - - [Parameter(ParameterSetName='Assignment')] - [Switch] - ${Notify}, - - [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) - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsPhoneNumberAssignment @PSBoundParameters @httpPipelineArgs - - if ($result -eq $null) { - return $null - } - - Write-Warning($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: Write diagnostic message back to console - -function Get-CsBusinessVoiceDirectoryDiagnosticData { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # PartitionKey of the table. - ${PartitionKey}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Region to query Bvd table. - ${Region}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Bvd table name. - ${Table}, - - [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)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try - { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsBusinessVoiceDirectoryDiagnosticData @PSBoundParameters - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - $output = @() - foreach($internalProperty in $internalOutput.Property) - { - $entityProperty = [Microsoft.Rtc.Management.Hosted.Group.Models.EntityProperty]::new() - $entityProperty.ParseFrom($internalProperty) - $output += $entityProperty - } - - $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: Integrate Get-CsOnlineDialinConferencingUser with Get-CsOdcUser and Search-CsOdcUser -function Get-CsOnlineDialInConferencingUser { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # Number of users to be returned - ${ResultSize}, - - [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 (![string]::IsNullOrWhiteSpace($Identity)) - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOdcUser -Identity $Identity @httpPipelineArgs - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsOdcUser -Top $ResultSize @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Format output of Register-CsOdcServiceNumber - -function Register-CsOdcServiceNumber { - [CmdletBinding(PositionalBinding=$false, DefaultParameterSetName="ById")] - param( - - [string] - [ValidateNotNullOrEmpty()] - [Parameter(Mandatory=$true, ParameterSetName="ById", Position=0)] - ${Identity}, - - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - [ValidateNotNull()] - [Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName="ByInstance")] - ${Instance}, - - [string] - [ValidateNotNull()] - ${BridgeId}, - - [string] - [ValidateNotNullOrEmpty()] - ${BridgeName}, - - [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() - - if ($Identity -ne "") - { - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Register-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs - } - elseif ($Instance -ne $null) - { - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber]::new() - $Body.Number = $Instance.Number - $Body.PrimaryLanguage = $Instance.PrimaryLanguage - $Body.SecondaryLanguages = $Instance.SecondaryLanguages - - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Register-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName @httpPipelineArgs - } - - $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 output of Set-CsOdcBridgeModern - -function Set-CsOnlineDialInConferencingBridge { - [CmdletBinding(PositionalBinding=$false)] - param( - [string] - ${Name}, - - [string] - ${DefaultServiceNumber}, - - [switch] - ${SetDefault}, - - [string] - ${Identity}, - - [switch] - ${Force}, - - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge] - [Parameter(ValueFromPipeline)] - ${Instance}, - - [switch] - ${AsJob}, - - [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 ($Identity -ne "") { - # This should map to SetCsOdcBridge_SetExpanded.cs - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge @PSBoundParameters @httpPipelineArgs - } - elseif ($Name -ne "") { - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest]::new() - - if ($PSBoundParameters.ContainsKey("DefaultServiceNumber") -and $PSBoundParameters["DefaultServiceNumber"] -ne "") { - $Body.DefaultServiceNumber = $DefaultServiceNumber - } - - $Body.SetDefault = $SetDefault - - # This should map to SetCsOdcBridge_Set1.cs - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge -Name $Name -Body $Body @httpPipelineArgs - } - elseif ($Instance -ne $null) { - if ($DefaultServiceNumber -eq "" -and !($Instance.DefaultServiceNumber -eq $null)) { - $DefaultServiceNumber = $Instance.DefaultServiceNumber.Number - } - - if ($PSBoundParameters.ContainsKey('SetDefault') -eq $false) { - $SetDefault = $Instance.IsDefault - } - - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.BridgeUpdateRequest]::new() - - if ($DefaultServiceNumber -ne "") { - $Body.DefaultServiceNumber = $DefaultServiceNumber - } - - $Body.SetDefault = $SetDefault - $Body.Name = $Instance.Name - - # This should map to SetCsOdcBridge_Set.cs - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcBridge -Identity $Instance.Identity -Body $Body @httpPipelineArgs - } - - $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 output of Set-CsOdcUserModern - -function Set-CsOnlineDialInConferencingUser { - [CmdletBinding(PositionalBinding=$false)] - param( - [System.Object] - [Parameter(ValueFromPipelineByPropertyName, ValueFromPipeline)] - ${Identity}, - - [string] - ${TollFreeServiceNumber}, - - [string] - ${BridgeName}, - - [switch] - ${SendEmail}, - - [string] - ${ServiceNumber}, - - [switch] - ${Force}, - - [switch] - ${ResetLeaderPin}, - - [string] - ${SendEmailToAddress}, - - [string] - ${BridgeId}, - - [Nullable[boolean]] - ${AllowTollFreeDialIn}, - - [switch] - ${AsJob}, - - [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 ($Identity -is [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser]){ - $null = $PSBoundParameters.Remove('Identity') - $PSBoundParameters.Add('Identity', $Identity.Identity) - } - - # Change from AllowTollFreeDialIn boolean to switch. - if ($PSBoundParameters.ContainsKey("AllowTollFreeDialIn")){ - $null = $PSBoundParameters.Remove("AllowTollFreeDialIn") - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcUser -AllowTollFreeDialIn:$AllowTollFreeDialIn @PSBoundParameters @httpPipelineArgs - } - else{ - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcUser @PSBoundParameters @httpPipelineArgs - } - - $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 output of Unregister-CsOdcServiceNumber - -function Unregister-CsOdcServiceNumber { - [CmdletBinding(PositionalBinding=$false, DefaultParameterSetName="ById")] - param( - - [string] - [ValidateNotNullOrEmpty()] - [Parameter(Mandatory=$true, ParameterSetName="ById", Position=0)] - ${Identity}, - - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - [ValidateNotNull()] - [Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName="ByInstance")] - ${Instance}, - - [string] - [ValidateNotNull()] - ${BridgeId}, - - [string] - [ValidateNotNullOrEmpty()] - ${BridgeName}, - - [switch] - ${Force}, - - [switch] - ${RemoveDefaultServiceNumber}, - - [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 ($Identity -ne "") - { - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs - } - elseif ($Instance -ne $null) - { - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber]::new() - $Body.Number = $Instance.Number - $Body.PrimaryLanguage = $Instance.PrimaryLanguage - $Body.SecondaryLanguages = $Instance.SecondaryLanguages - - if($PSBoundParameters.ContainsKey('RemoveDefaultServiceNumber') -eq $false) - { - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName @httpPipelineArgs - } - else - { - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Unregister-CsOdcServiceNumber -Body $Body -BridgeId $BridgeId -BridgeName $BridgeName -RemoveDefaultServiceNumber @httpPipelineArgs - } - } - - $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: cmdlet for Orchestration- This cmdlets compress csv files. - -function New-CsBatchTeamsDeployment -{ - [OutputType([System.String])] - [CmdletBinding( PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - $TeamsFilePath, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - $UsersFilePath, - - [Parameter(Mandatory=$true, position=2)] - [System.String] - $UsersToNotify, - - [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() - - $TeamsFile = "$env:TEMP\Teams.csv" - $UsersFile = "$env:TEMP\Users.csv" - Copy-Item $TeamsFilePath -Destination $TeamsFile -Force - Copy-Item $UsersFilePath -Destination $UsersFile -Force - $zipFile = "$env:TEMP\TeamsDeployment.Zip" - - $compress = @{ - LiteralPath= $TeamsFile , $UsersFile - CompressionLevel = "Fastest" - DestinationPath = $zipFile - } - - Compress-Archive @compress -Update - - $FileStream = [System.IO.File]::ReadAllBytes($zipFile) - $B64String = [System.Convert]::ToBase64String($FileStream, [System.Base64FormattingOptions]::None) - - $null = $PSBoundParameters.Remove("TeamsFilePath") - $null = $PSBoundParameters.Remove("UsersFilePath") - $null = $PSBoundParameters.Add("DeploymentCsv", $B64String) - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsBatchTeamsDeployment @PSBoundParameters @httpPipelineArgs - - Write-Output $internalOutput - - } - catch - { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: To support enums for DeploymentName and ObjectClass and support Boolean - -function Invoke-CsDirectObjectSync { - [CmdletBinding(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')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryDeploymentName] - # Deployment Name. - ${DeploymentName}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryObjectClass] - # 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[]] - # List of ObjectId. - ${ObjectIds}, - - [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.Boolean] - # Sync all the users of the tenant. - ${SynchronizeTenantWithAllObject}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync options like resync entity with all links. - ${ReSyncOption}, - - [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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsDirectObjectSync @PSBoundParameters - - Write-Output $obj - - } 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 Get-CsTeamsSettingsCustomApp { - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [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() - - $settings = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamsSettingsCustomApp @PSBoundParameters @httpPipelineArgs - $targetProperties = $settings | Select-Object -Property isSideloadedAppsInteractionEnabled - if ($targetProperties.isSideloadedAppsInteractionEnabled -eq $null) { - $targetProperties.isSideloadedAppsInteractionEnabled = $false - } - Write-Output $targetProperties - } - 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-CsTeamsSettingsCustomApp { - [CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true)] - [System.Boolean] - ${isSideloadedAppsInteractionEnabled}, - - [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() - - $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamsSettingsCustomApp - # Stop execution if internal cmdlet is failing - if ($getResult -eq $null) { - throw 'Internal Error. Please try again.' - } - - $appSettingsListValue = @() - $null = $PSBoundParameters.Add("isAppsEnabled", $getResult.isAppsEnabled) - $null = $PSBoundParameters.Add("isAppsPurchaseEnabled", $getResult.isAppsPurchaseEnabled) - $null = $PSBoundParameters.Add("isExternalAppsEnabledByDefault", $getResult.isExternalAppsEnabledByDefault) - $null = $PSBoundParameters.Add("isLicenseBasedPinnedAppsEnabled", $getResult.isLicenseBasedPinnedAppsEnabled) - $null = $PSBoundParameters.Add("isTenantWideAutoInstallEnabled", $getResult.isTenantWideAutoInstallEnabled) - $null = $PSBoundParameters.Add("LobTextColor", $getResult.LobTextColor) - $null = $PSBoundParameters.Add("LobBackground", $getResult.LobBackground) - $null = $PSBoundParameters.Add("LobLogo", $getResult.LobLogo) - $null = $PSBoundParameters.Add("LobLogomark", $getResult.LobLogomark) - $null = $PSBoundParameters.Add("appSettingsList", $appSettingsListValue) - $null = $PSBoundParameters.Add("appAccessRequestConfig", $getResult.appAccessRequestConfig) - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsTeamsSettingsCustomApp @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. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Get meeting migration transaction history for a user -.Description -Get meeting migration transaction history for a user -#> -function Get-CsMeetingMigrationTransactionHistory { - param( - [Parameter(Mandatory=$true)] - [System.String] - # Identity. - # Supports UPN and SIP - ${Identity}, - - [Parameter()] - [System.String] - # CorrelationId - ${CorrelationId}, - - [Parameter()] - [System.DateTime] - # start time filter - to get meeting migration transaction history after starttime - ${StartTime}, - - [Parameter()] - [System.DateTime] - # end time filter - to get meeting migration transaction history before endtime - ${EndTime}, - - [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() - - # Fetching only Meeting Migration transaction history - # need to pipe to convert-ToJson | Convert-FromJson to support output in list format and sending down to further pipeline commands. - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationTransactionHistoryModern -userIdentity $Identity -StartTime $StartTime -EndTime $EndTime -CorrelationId $CorrelationId @httpPipelineArgs | Foreach-Object { ( ConvertTo-Json $_) } | Foreach-Object {ConvertFrom-Json $_} - } - 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. -# ---------------------------------------------------------------------------------- - -<# -.Synopsis -Get meeting migration status for a user or at tenant level -.Description -Get meeting migration status for a user or tenant level -#> -function Get-CsMmsStatus { - param( - [Parameter()] - [System.String] - # end time filter - to get meeting migration status before endtime - ${EndTime}, - - [Parameter()] - [System.String] - # Identity. - # Supports UPN and SIP, domainName LogonName - ${Identity}, - - [Parameter()] - [System.String] - # Meeting migration type - SfbToSfb, SfbToTeams, TeamsToTeams, AllToTeams, ToSameType, Unknown - ${MigrationType}, - - [Parameter()] - [System.String] - # start time filter - to get meeting migration status after starttime - ${StartTime}, - - [Parameter()] - [switch] - # SummaryOnly - to get only meting migration status summary. - ${SummaryOnly}, - - [Parameter()] - [System.String] - # state of meeting Migration status - Pending, InProgress, Failed, Succeeded - ${State}, - - [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('SummaryOnly')) - { - # Fetching only Meeting Migration status summary - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationStatusSummaryModern -Identity $Identity -StartTime $StartTime -EndTime $EndTime -State $state -MigrationType $MigrationType @httpPipelineArgs | ConvertTo-Json - } - else - { - # Need to display output in a list format and should be able to pipe output to other cmdlets for filtering. - # with Format-List, not able to send the output for piping. So did this Convert-ToJson and Converting object from Json which displays output in list format and also able to refer with index value. - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMeetingMigrationStatusModern -Identity $Identity -StartTime $StartTime -EndTime $EndTime -State $state -MigrationType $MigrationType @httpPipelineArgs | Foreach-Object { ( ConvertTo-Json $_) } | Foreach-Object {ConvertFrom-Json $_} - } - } - 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: cmdlet for signin batch of user- This cmdlets converts the input from the csv file to required type to call the internal cmdlet - -function New-CsSdgBulkSignInRequest -{ - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true)] - [System.String] - $DeviceDetailsFilePath, - [Parameter(Mandatory=$true)] - [System.String] - $Region - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try - { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $deviceDetails = Import-Csv -Path $DeviceDetailsFilePath - $deviceDetailsInput = @(); - $deviceDetails | ForEach-Object { $deviceDetailsInput += [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.SdgBulkSignInRequestItem]@{ Username=$_.Username;HardwareId=$_.HardwareId }} - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsSdgBulkSignInRequest -Body $deviceDetailsInput -TargetRegion $Region - - } - 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: Transfer $PolisyList from user's input from string[] to object[], enable inline input - -function Get-CsTeamTemplateList { - [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject])] - [CmdletBinding(DefaultParameterSetName='DefaultLocaleOverride', PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The language and country code of templates localization. - ${PublicTemplateLocale}, - - [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 ([string]::IsNullOrWhiteSpace($PublicTemplateLocale)) { - $null = $PSBoundParameters.Add("PublicTemplateLocale", "en-US") - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTeamTemplateList @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Validate team template payload contains General channel on create, add if not - -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 of template. - ${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)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [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)] - [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 { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $generalChannel = @{ - DisplayName = "General"; - id= "General"; - isFavoriteByDefault= $true - } - - if ($null -ne $Body) { - $Channel = $Body.Channel - } - - if ($null -eq $Channel) { - if ($null -ne $Body) { - $Body.Channel = $generalChannel - $PSBoundParameters['Body'] = $Body - } else { - $null = $PSBoundParameters.Add("Channel", $generalChannel) - } - } else { - $hasGeneralChannel = $false - foreach ($channel in $Channel){ - if ($channel.displayName -eq "General") { - $hasGeneralChannel = $true - } - } - if ($hasGeneralChannel -eq $false) { - if ($null -ne $Body) { - $Body.Channel += $generalChannel - $PSBoundParameters['Body'] = $Body - } else { - $Channel += $generalChannel - $PSBoundParameters['Channel'] = $Channel - } - } - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTeamTemplate @PSBoundParameters @httpPipelineArgs - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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 Response of Get-CsAadTenant - -function Get-CsAadTenant { - [CmdletBinding(PositionalBinding=$false)] - param( - [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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAadTenant @PSBoundParameters - $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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 Response of Get-CsAadUser - -function Get-CsAadUser { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Unique identifier for the user - ${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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAadUser @PSBoundParameters - $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: Integrate Get-CsMasVersionedSchemaData with Get-CsMasVersionedData - -function Get-CsMasVersionedSchemaData { - [CmdletBinding(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)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try { - - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMasVersionedSchemaData @PSBoundParameters - $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: Integrate Get-CsMoveTenantServiceInstanceTaskStatus with Get-CsTenantMigrationDetail - -function Get-CsMoveTenantServiceInstanceTaskStatus { - [CmdletBinding(PositionalBinding=$true)] - param( - [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.Teams.ConfigAPI.Cmdlets.internal\Get-CsMoveTenantServiceInstanceTaskStatus @PSBoundParameters - $allProperties = $output | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: Integrate Get-CsTenant with Get-CsTenantObou - -function Get-CsTenantPoint { - [CmdletBinding(PositionalBinding=$true)] - param( - [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() - - $defaultPropertySet = "Extended" - $tenant = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsTenantObou -DefaultPropertySet $defaultPropertySet @httpPipelineArgs - $allProperties = $tenant | Select-Object -Property * -ExcludeProperty LastProvisionTimeStamps, LastPublishTimeStamps - $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $tenant.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $tenant.LastPublishTimeStamps.AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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 Invoke-CsCustomHandlerCallBackNgtprov { - [CmdletBinding(PositionalBinding=$false)] - param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Unique Id of the Handler. - ${Id}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.CustomHandlerOperationName] - # Callback Operation. - ${Operation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # EventName for the SendEventPostURI. - ${Eventname}, - - [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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsCustomHandlerCallBackNgtprov @PSBoundParameters - $allProperties = $obj | Select-Object -ExpandProperty AdditionalProperties - - Write-Output $allProperties - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: To support enums for ObjectClass and support Boolean - -function Invoke-CsMsodsSync { - [CmdletBinding(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.Boolean] - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.ObjectClass] - # Object Class enum. - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # TenantId GUID. - ${TenantId}, - - [Parameter(ParameterSetName='PostExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # List of User ObjectId. - ${ObjectId}, - - [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.Boolean] - # Sync all the users of the tenant. - ${SynchronizeTenantWithAllObject}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # ReSync options like resync entity with all links. - ${ReSyncOption}, - - [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() - - $obj = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Invoke-CsMsodsSync @PSBoundParameters @httpPipelineArgs - - Write-Output $obj - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: Integrate Move-CsTenantCrossRegion with New-CsTenantCrossMigration - -function Move-CsTenantCrossRegion { - [CmdletBinding(PositionalBinding=$true)] - param( - [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.Teams.ConfigAPI.Cmdlets.internal\New-CsTenantCrossMigration @httpPipelineArgs - - Write-Output $output - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -# 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: Integrate Move-CsTenantServiceInstance with New-CsTenantCrossMigration - -function Move-CsTenantServiceInstance { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # Can take following values (PrepForMove, StartDualSync, Finalize) - ${MoveOption}, - - [Parameter(Mandatory=$false)] - [System.String] - # Service Instance where tenant is to be migrated - ${TargetServiceInstance}, - - [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.Teams.ConfigAPI.Cmdlets.internal\New-CsTenantCrossMigration -MoveOption $MoveOption -TargetServiceInstance $TargetServiceInstance @httpPipelineArgs - - Write-Output $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: map parameters to request body - -function Set-CsOnlineSipDomainModern { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # Domain Name parameter. - ${Domain}, - - [Parameter(Mandatory=$true, Position=1)] - [System.String] - # Action decides enable or disable sip domain - ${Action}, - - [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() - - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TenantSipDomainRequest]::new() - - $Body.DomainName = $Domain - $Body.Action = $Action - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineSipDomain -Body $Body @httpPipelineArgs - Write-AdminServiceDiagnostic($result.Diagnostic) - - } 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: Integrate Get-CsOnlineUser with Get-CsUser and Search-CsUser - -function Get-CsUserList { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # Number of users to be returned - ${ResultSize}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - #To not display user policies in output - ${SkipUserPolicies}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To only fetch soft-deleted users - ${SoftDeletedUsers}, - - [Parameter(Mandatory=$false)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] - # To only fetch users with specified account type - ${AccountType}, - - [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() - - $defaultPropertySet = "Extended" - $internalfilter = "" - if ($AccountType) - { - if (![string]::IsNullOrWhiteSpace($Identity)) - { - Write-Error "AccountType parameter cannot be used with Identity parameter." - return - } - else - { - $internalfilter = "AccountType -eq '$AccountType'" - } - } - if (![string]::IsNullOrWhiteSpace($Identity)) - { - $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs - $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps - $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties - - Write-Output $allProperties - } - else - { - if ($SoftDeletedUsers) - { - if (![string]::IsNullOrWhiteSpace($internalfilter)) - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $internalfilter -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - else - { - if (![string]::IsNullOrWhiteSpace($internalfilter)) - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $internalfilter -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - } - - } 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: Integrate Get-CsOnlineUser with Get-CsUser - -function Get-CsUserPoint { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To not display user policies in output - ${SkipUserPolicies}, - - [Parameter(Mandatory=$false)] - [System.String[]] - # Select Properties - ${Properties}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try { - $forcedProperties = @( - "Identity", - "UserPrincipalName", - "Alias", - "AccountEnabled", - "DisplayName" - ) - - if ($Properties -ne $null -and $Properties.Count -gt 0) { - $propertiesArray = $Properties | ForEach-Object { $_.Trim() } - $selectArray = $forcedProperties + $propertiesArray - $selectArray = $selectArray | ForEach-Object { $_.ToLower() } | Sort-Object -Unique - $propertiesToSelect = $selectArray -join ',' - } else { - $propertiesToSelect = $null - } - - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - if (![string]::IsNullOrWhiteSpace($Identity)) - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -Select $propertiesToSelect @httpPipelineArgs - } else { - $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet "Extended" @httpPipelineArgs - } - - $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps - $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties - - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $allProperties = $allProperties | Select-Object -Property $selectArray - } - - Write-Output $allProperties - } - - } 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: Integrate Get-CsOnlineUser with Get-CsUser and Search-CsUser - -function Get-CsUserSearch { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false, DontShow = $true)] - [System.String[]] - # List of user identifiers - ${Identities}, - - [Parameter(Mandatory=$false)] - [System.String] - # Filter to be applied to the list of users - ${Filter}, - - [Alias('Sort')] - [Parameter(Mandatory=$false)] - [System.String] - # OrderBy to be applied to the list of users - ${OrderBy}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # Number of users to be returned - ${ResultSize}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To skip user policies in output - ${SkipUserPolicies}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To only fetch soft-deleted users - ${SoftDeletedUsers}, - - [Parameter(Mandatory=$false)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.AccountType] - # To only fetch users with specified account type - ${AccountType}, - - [Parameter(Mandatory=$false)] - [System.String[]] - # Select Properties - ${Properties}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend} - ) - - begin { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try - { - # Will break if $forcedProperties has too few elements. Check https://skype.visualstudio.com/DefaultCollection/SBS/_git/infrastructure_web_interfaces-powershell/pullRequest/1121498#1740129091 - # If the final selection of properties has less than 5 properties, the output formatting will be broken. - $forcedProperties = @( - "identity", - "userPrincipalName", - "alias", - "accountEnabled", - "displayName" - ) - - if ($Properties -ne $null -and $Properties.Count -gt 0) { - $propertiesArray = $Properties | ForEach-Object { $_.Trim() } - $selectArray = $forcedProperties + $propertiesArray - $selectArray = $selectArray | ForEach-Object { $_.ToLower() } | Sort-Object -Unique - $propertiesToSelect = $selectArray -join ',' - } else { - $propertiesToSelect = $null - $selectArray = $null - } - - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $defaultPropertySet = "Extended" - if ($AccountType) - { - if (![string]::IsNullOrWhiteSpace($Identity)) - { - Write-Error "AccountType parameter cannot be used with Identity parameter." - return - } - if (![string]::IsNullOrWhiteSpace($Filter)) - { - $Filter += " -and AccountType -eq '$AccountType'" - } - else - { - $Filter = "AccountType -eq '$AccountType'" - } - } - if ($Identities -ne $null) - { - if (![string]::IsNullOrWhiteSpace($Filter)) - { - Write-Error "Filter parameter cannot be used along with Identity input." - return - } - $i = 0 - $count = $Identities.Count - $filterstring = "" - while ($i -lt $count) - { - $id = $Identities[$i] - if (![string]::IsNullOrWhiteSpace($filterstring)) - { - $filterstring += " or userprincipalname eq '$id'" - } - else - { - $filterstring = "userprincipalname eq '$id'" - } - $i = $i + 1 - } - - if (![string]::IsNullOrEmpty($filterstring)) - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $filterstring @httpPipelineArgs -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } else { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $filterstring @httpPipelineArgs -OrderBy $OrderBy | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - } - - elseif (![string]::IsNullOrWhiteSpace($Identity)) - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Select $propertiesToSelect @httpPipelineArgs - $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps - $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties - $selectedProperties = $allProperties | Select-Object -Property $selectArray - - Write-Output $selectedProperties - } else { - $user = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs - $allProperties = $user | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain, LastProvisionTimeStamps, LastPublishTimeStamps - $allProperties | Add-Member -NotePropertyName LastProvisionTimeStamps -NotePropertyValue $user.LastProvisionTimeStamps.AdditionalProperties -passThru | Add-Member -NotePropertyName LastPublishTimeStamps -NotePropertyValue $user.LastPublishTimeStamps.AdditionalProperties - - Write-Output $allProperties - } - return - } - elseif (![string]::IsNullOrWhiteSpace($Filter)) - { - if ($SoftDeletedUsers) - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } else { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - else - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } else { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -PSFilter $Filter -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - } - else - { - if ($SoftDeletedUsers) - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } else { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet -Softdeleteduser:$true @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - else - { - if (![string]::IsNullOrWhiteSpace($propertiesToSelect)) { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -Select $propertiesToSelect -Includedefaultproperty:$false @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } else { - $users = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Top $ResultSize -OrderBy $OrderBy -SkipUserPolicy:$SkipUserPolicies -DefaultPropertySet $defaultPropertySet @httpPipelineArgs | Select-Object -Property * -ExcludeProperty Location, Number, DataCenter, PSTNconnectivity, SipDomain - } - } - } - - if ($selectArray -ne $null) - { - # Will break if $selectArray has less than 5 elements. Check https://skype.visualstudio.com/DefaultCollection/SBS/_git/infrastructure_web_interfaces-powershell/pullRequest/1121498#1740129091 - $formattedUsers = $users | Select-Object -Property $selectArray - $formattedUsers - } - else{ - $users - } - - } - 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: Integrate Get-CsOnlineVoiceUser with Get-CsUser - -function Get-CsVoiceUserList { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [System.Management.Automation.SwitchParameter] - #To fetch location field - ${ExpandLocation}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Int32]] - # Number of users to be returned - ${First}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To only fetch users which have a number assigned to them - ${NumberAssigned}, - - [Parameter(Mandatory=$false)] - [System.Management.Automation.SwitchParameter] - # To only fetch users which don't have a number assigned to them - ${NumberNotAssigned}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Guid]] - # LocationId of users to be returned - ${LocationId}, - - [Parameter(Mandatory=$false)] - [System.Nullable[System.Guid]] - # CivicAddressId of users to be returned - ${CivicAddressId}, - - [Parameter(Mandatory=$false)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.PSTNConnectivity] - # PSTNConnectivity of the users to be returned - ${PSTNConnectivity}, - - [Parameter(Mandatory=$false)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.EnterpriseVoiceStatus] - # EnterpriseVoiceStatus of the users to be returned - ${EnterpriseVoiceStatus}, - - [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 (![string]::IsNullOrWhiteSpace($Identity)) - { - if($ExpandLocation) - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, - DisplayName,Location,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - Location, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, - DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - @{Name = 'Location' ; Expression = {""}}, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - } - else - { - if($NumberAssigned -and $NumberNotAssigned) - { - Write-Error "You can only pass either NumberAssigned or NumberNotAssigned at a time." - return - } - - if (($LocationId -and !$CivicAddressId) -or ($CivicAddressId -and !$LocationId)) - { - Write-Error "LocationId and CivicAddressId must be provided together." - return - } - - $filters = @() #array of individual filters - $addNumberInSelectProperties = $false - if ($LocationId -and $CivicAddressId) - { - $filters += "Number/LocationId eq '$LocationId' and Number/CivicAddressId eq '$CivicAddressId'" - $addNumberInSelectProperties = $true - } - - if ($PSTNConnectivity) - { - if ($PSTNConnectivity -eq 'OnPremises' -or $PSTNConnectivity -eq 'Online') - { - $filters += "PSTNConnectivity eq '$PSTNConnectivity'" - } - } - - if ($EnterpriseVoiceStatus) - { - if ($EnterpriseVoiceStatus -eq 'Enabled') - { - $filters += "EnterpriseVoiceEnabled eq true" - } - elseif ($EnterpriseVoiceStatus -eq 'Disabled') - { - $filters += "EnterpriseVoiceEnabled eq false" - } - } - - if ($NumberAssigned) - { - $filters += "LineUri ne '$null'" - } - elseif ($NumberNotAssigned) - { - $filters += "LineUri eq '$null'" - } - - $filterstring = $filters -join " and " - $selectProperties = "Objectid,EnterpriseVoiceEnabled,DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" - - if ($addNumberInSelectProperties -eq $true) - { - $selectProperties += ",Number" - } - - if($ExpandLocation) - { - $selectProperties += ",Location" - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Includedefaultproperty:$false -VoiceUserQuery:$true -Select $selectProperties -Filter $filterstring -Top $First @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - Location, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Search-CsUser -Includedefaultproperty:$false -VoiceUserQuery:$true -Select $selectProperties -Filter $filterstring -Top $First @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - @{Name = 'Location' ; Expression = {""}}, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - } - - } 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: Integrate Get-CsOnlineVoiceUser with Get-CsUser - -function Get-CsVoiceUserPoint { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # Unique identifier for the user - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [switch] - #To fetch location field - ${ExpandLocation}, - - [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 (![string]::IsNullOrWhiteSpace($Identity)) - { - if($ExpandLocation) - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, - DisplayName,Location,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - Location, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - else - { - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsUser -Identity $Identity -Includedefaultproperty:$false -VoiceUserQuery:$true -Select "Objectid,EnterpriseVoiceEnabled, - DisplayName,LineUri,TenantID,UsageLocation,DataCenter,PSTNconnectivity,SipDomain" @httpPipelineArgs | - Select-Object -Property @{Name = 'Name' ; Expression = {$_.DisplayName}}, - @{Name = 'Id' ; Expression = {$_.Identity}}, - SipDomain, - DataCenter, - TenantID, - @{Name = 'Number' ; Expression = {$_.LineUri}}, - @{Name = 'Location' ; Expression = {""}}, - PSTNconnectivity, - UsageLocation, - EnterpriseVoiceEnabled - } - } - - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -function Set-CsOnlineVoiceUserV2 { -[CmdletBinding(DefaultParameterSetName='Id', SupportsShouldProcess)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.String][AllowNull()] - ${TelephoneNumber}, - - [Parameter(Mandatory=$false)] - [System.String][AllowNull()] - ${LocationId}, - - [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() - - $Body = @{ - TelephoneNumber=$TelephoneNumber - LocationId=$LocationId - } - $Payload = @{ - UserId = $Identity - Body = $Body - } - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserGenerated @Payload @httpPipelineArgs - } - catch - { - $customCmdletUtils.SendTelemetry() - throw - } - } - - end { - $customCmdletUtils.SendTelemetry() - } -} -function Set-CsUserModern { -[CmdletBinding(DefaultParameterSetName='Id')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$false)] - ${EnterpriseVoiceEnabled}, - - [Parameter(Mandatory=$false)] - ${HostedVoiceMail}, - - [Parameter(Mandatory=$false)] - [System.String][AllowNull()] - ${LineURI}, - - [Parameter(Mandatory=$false)] - [System.String][AllowNull()] - ${OnPremLineURI}, - - [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() - - $PhoneNumber = $LineURI - if ($PSBoundParameters.ContainsKey('OnPremLineURI')) { - Write-Warning -Message "OnPremLineURI will be deprecated. Please use LineURI to update user's phone number." - if (!$PSBoundParameters.ContainsKey('LineURI')){ - $PhoneNumber = $OnPremLineURI - } - else{ - Write-Error "Please specify either one parameter OnPremLineURI or LineURI to assign phone number." - return - } - } - - $Body = @{ - EnterpriseVoiceEnabled=$EnterpriseVoiceEnabled - HostedVoiceMail=$HostedVoiceMail - } - - if ($PSBoundParameters.ContainsKey('LineURI') -or $PSBoundParameters.ContainsKey('OnPremLineURI')) { - $Body.LineUri = $PhoneNumber - } - - $Payload = @{ - UserId = $Identity - Body = $Body - } - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserGenerated @Payload @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 New-CsUserCallingDelegate { - [CmdletBinding(DefaultParameterSetName="Identity")] - param( - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Delegate}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.Boolean] - ${MakeCalls}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.Boolean] - ${ManageSettings}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.Boolean] - ${ReceiveCalls}, - - [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() - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsUserCallingDelegate @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 Remove-CsUserCallingDelegate { - [CmdletBinding(DefaultParameterSetName="Identity")] - param( - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Delegate}, - - [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() - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsUserCallingDelegate @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-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( - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Delegate}, - - [Parameter(Mandatory=$false, ParameterSetName='Identity')] - [System.Boolean] - ${MakeCalls}, - - [Parameter(Mandatory=$false, ParameterSetName='Identity')] - [System.Boolean] - ${ManageSettings}, - - [Parameter(Mandatory=$false, ParameterSetName='Identity')] - [System.Boolean] - ${ReceiveCalls}, - - [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() - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserCallingDelegate @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-CsUserCallingSettings { - [CmdletBinding(DefaultParameterSetName="Identity")] - param( - [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] - [Parameter(Mandatory=$true, ParameterSetName='ForwardingOnOff')] - [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] - [Parameter(Mandatory=$true, ParameterSetName='UnansweredOnOff')] - [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] - [Parameter(Mandatory=$true, ParameterSetName='CallGroupMembership')] - [Parameter(Mandatory=$true, ParameterSetName='CallGroupNotification')] - [Parameter(Mandatory=$true, ParameterSetName='Identity')] - [System.String] - ${Identity}, - - [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] - [Parameter(Mandatory=$true, ParameterSetName='ForwardingOnOff')] - [System.Boolean] - ${IsForwardingEnabled}, - - [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] - [ValidateSet('Immediate','Simultaneous')] - [System.String] - ${ForwardingType}, - - [Parameter(Mandatory=$false, ParameterSetName='Forwarding')] - [System.String] - [AllowNull()] - ${ForwardingTarget}, - - [Parameter(Mandatory=$true, ParameterSetName='Forwarding')] - [ValidateSet('SingleTarget','Voicemail','MyDelegates','Group')] - [System.String] - ${ForwardingTargetType}, - - [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] - [Parameter(Mandatory=$true, ParameterSetName='UnansweredOnOff')] - [System.Boolean] - ${IsUnansweredEnabled}, - - [Parameter(Mandatory=$false, ParameterSetName='Unanswered')] - [System.String] - [AllowNull()] - ${UnansweredTarget}, - - [Parameter(Mandatory=$false, ParameterSetName='Unanswered')] - [ValidateSet("", "SingleTarget","Voicemail","MyDelegates","Group")] - [System.String] - ${UnansweredTargetType}, - - [Parameter(Mandatory=$true, ParameterSetName='Unanswered')] - [System.String] - [AllowNull()] - ${UnansweredDelay}, - - [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] - [ValidateSet('Simultaneous','InOrder')] - [System.String] - ${CallGroupOrder}, - - [Parameter(Mandatory=$true, ParameterSetName='CallGroup')] - [System.Array] - [AllowNull()] - [AllowEmptyCollection()] - ${CallGroupTargets}, - - [Parameter(Mandatory=$true, ParameterSetName='CallGroupMembership')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]] - [AllowEmptyCollection()] - ${GroupMembershipDetails}, - - [Parameter(Mandatory=$true, ParameterSetName='CallGroupNotification')] - [ValidateSet('Ring','Mute','Banner')] - [System.String] - ${GroupNotificationOverride}, - - [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('UnansweredDelay')) - { - if(($UnansweredDelay -as [TimeSpan]) -and ($UnansweredDelay -le (New-TimeSpan -Hours 0 -Minutes 1 -Seconds 0)) -and ($UnansweredDelay -ge (New-TimeSpan -Hours 0 -Minutes 0 -Seconds 0))) - { - $UnansweredDelay = $UnansweredDelay - } - else - { - write-warning "Unanswered delay is not in correct time range" - return - } - } - - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsUserCallingSettings @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Transfer $PolisyList from user's input from string[] to object[], enable inline input - -function New-CsCustomPolicyPackage { - [OutputType([System.String])] - [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', - PositionalBinding=$false, - SupportsShouldProcess, - ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - $Identity, - - [Parameter(Mandatory=$true, position=1)] - [System.String[]] - $PolicyList, - - [Parameter(position=2)] - $Description, - - [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() - - $Delimiters = ",", ".", ":", ";", " ", "`t" - [psobject[]]$InternalPolicyList = @() - foreach ($PolicyTypeAndName in $PolicyList) - { - $PolicyTypeAndNameArray = $PolicyTypeAndName -Split {$Delimiters -contains $_}, 2 - $PolicyTypeAndNameArray = $PolicyTypeAndNameArray.Trim() - if ($PolicyTypeAndNameArray.Count -lt 2) - { - throw "Invalid Policy Type and Name pair: $PolicyTypeAndName. Please use a proper delimeter" - } - $PolicyTypeAndNameObject = [psobject]@{ - PolicyType = $PolicyTypeAndNameArray[0] - PolicyName = $PolicyTypeAndNameArray[1] - } - $InternalPolicyList += $PolicyTypeAndNameObject - } - $null = $PSBoundParameters.Remove("PolicyList") - $null = $PSBoundParameters.Add("PolicyList", $InternalPolicyList) - Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsCustomPolicyPackage @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Transfer $PolisyList from user's input from string[] to object[], enable inline input - -function Update-CsCustomPolicyPackage { - [OutputType([System.String])] - [CmdletBinding(DefaultParameterSetName='RequiredPolicyList', - PositionalBinding=$false, - SupportsShouldProcess, - ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - $Identity, - - [Parameter(Mandatory=$true, position=1)] - [System.String[]] - $PolicyList, - - [Parameter(position=2)] - $Description, - - [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() - - $Delimiters = ",", ".", ":", ";", " ", "`t" - [psobject[]]$InternalPolicyList = @() - foreach ($PolicyTypeAndName in $PolicyList) - { - $PolicyTypeAndNameArray = $PolicyTypeAndName -Split {$Delimiters -contains $_}, 2 - $PolicyTypeAndNameArray = $PolicyTypeAndNameArray.Trim() - if ($PolicyTypeAndNameArray.Count -lt 2) - { - throw "Invalid Policy Type and Name pair: $PolicyTypeAndName. Please use a proper delimeter" - } - $PolicyTypeAndNameObject = [psobject]@{ - PolicyType = $PolicyTypeAndNameArray[0] - PolicyName = $PolicyTypeAndNameArray[1] - } - $InternalPolicyList += $PolicyTypeAndNameObject - } - $null = $PSBoundParameters.Remove("PolicyList") - $null = $PSBoundParameters.Add("PolicyList", $InternalPolicyList) - Microsoft.Teams.ConfigAPI.Cmdlets.internal\Update-CsCustomPolicyPackage @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. -# ---------------------------------------------------------------------------------- - -# Objective of this custom file: Print error message in case of error - -function Export-CsAutoAttendantHolidays { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA whose holiday schedules are to be exported.. - ${Identity}, - - [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() - - $null = $PSBoundParameters.Remove("Force") - - # Use ResponseType 1 as binary output - $PSBoundParameters.Add("ResponseType", 1) - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $internalOutput.ExportHolidayResultSerializedHolidayRecord - - } 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 Export-CsOnlineAudioFile - -function Export-CsOnlineAudioFile { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Identity parameter is the identifier for the audio file. - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [System.String] - # The ApplicationId parameter is the identifier for the application which will use this audio file. - ${ApplicationId}, - - [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 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) - } - - $base64content = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Export-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($base64content -eq $null) { - return $null - } - - $output = [System.Convert]::FromBase64CharArray($base64content, 0, $base64content.Length) - $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: Write diagnostic message back to console - -function Find-CsGroup { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The SearchQuery parameter defines a search query to search the display name or the sip address or the GUID of groups. - ${SearchQuery}, - - [Parameter(Mandatory=$false, position=1)] - [System.Nullable[System.UInt32]] - # The MaxResults parameter identifies the maximum number of results to return. - ${MaxResults}, - - [Parameter(Mandatory=$false, position=2)] - [System.Boolean] - # The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. - ${ExactMatchOnly}, - - [Parameter(Mandatory=$false, position=3)] - [System.Boolean] - # The MailEnabledOnly parameter instructs the cmdlet to return mail enabled only. - ${MailEnabledOnly}, - - [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 - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Find-CsGroup @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = @() - foreach($internalGroup in $internalOutput.Group) - { - $group = [Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel]::new() - $group.ParseFrom($internalGroup) - $output += $group - } - - $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: Put nested ApplicationInstance object as first layer object - -function Find-CsOnlineApplicationInstance { - [OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance])] - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # A query for application instances by display name, telephone number, or GUID of the application instance - ${SearchQuery}, - - [Parameter(Mandatory=$false, position=1)] - [System.Nullable[System.UInt32]] - # The maximum number of results to return - ${MaxResults}, - - [Parameter(Mandatory=$false, position=2)] - [Switch] - # Instruct the cmdlet to return exact matches only - ${ExactMatchOnly}, - - [Parameter(Mandatory=$false, position=3)] - [Switch] - # Instruct the cmdlet to return only application instances that are associated to a configuration - ${AssociatedOnly}, - - [Parameter(Mandatory=$false, position=4)] - [Switch] - # instructs the cmdlet to return only application instances that are not associated to any configuration - ${UnAssociatedOnly}, - - [Parameter(Mandatory=$false, position=5)] - [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 - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Find-CsOnlineApplicationInstance @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = @() - foreach($internalOutputApplicationInstance in $internalOutput.ApplicationInstance) - { - $applicationInstance = [Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult]::new() - $applicationInstance.ParseFrom($internalOutputApplicationInstance) - $output += $applicationInstance - } - - $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 output of the cmdlet - -function Get-CsAutoAttendant { - [CmdletBinding(DefaultParameterSetName='GetAllParamSet', PositionalBinding=$false)] - param( - [Parameter(Mandatory=$true, position=0, ParameterSetName='GetSpecificParamSet')] - [System.String] - # The identity for the AA to be retrieved. - ${Identity}, - - [Parameter(Mandatory=$false, position=1, ParameterSetName='GetAllParamSet')] - [Switch] - # If specified, the status records for each auto attendant in the result set are also retrieved. - ${IncludeStatus}, - - [Parameter(Mandatory=$false, position=2, ParameterSetName='GetAllParamSet')] - [Int] - # The First parameter indicates the maximum number of auto attendants to retrieve as the result. - ${First}, - - [Parameter(Mandatory=$false, position=3, ParameterSetName='GetAllParamSet')] - [Int] - # The Skip parameter indicates the number of initial auto attendants to skip in the result. - ${Skip}, - - [Parameter(Mandatory=$false, position=4, ParameterSetName='GetAllParamSet')] - [Switch] - # If specified, only auto attendants' names, identities and associated application instances will be retrieved. - ${ExcludeContent}, - - [Parameter(Mandatory=$false, position=5, ParameterSetName='GetAllParamSet')] - [System.String] - # If specified, only auto attendants whose names match that value would be returned. - ${NameFilter}, - - [Parameter(Mandatory=$false, position=6, ParameterSetName='GetAllParamSet')] - [System.String] - # If specified, the retrieved auto attendants would be sorted by the specified property. - ${SortBy}, - - [Parameter(Mandatory=$false, position=7, ParameterSetName='GetAllParamSet')] - [Switch] - # If specified, the retrieved auto attendants would be sorted in descending order. - ${Descending}, - - [Parameter(Mandatory=$false, position=8)] - [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 - } - - # Get common parameters - $PSBoundCommonParameters = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $PSBoundCommonParameters += @{$p.Key = $p.Value} - } - $null = $PSBoundCommonParameters.Remove("Identity") - $null = $PSBoundCommonParameters.Remove("First") - $null = $PSBoundCommonParameters.Remove("Skip") - $null = $PSBoundCommonParameters.Remove("ExcludeContent") - $null = $PSBoundCommonParameters.Remove("NameFilter") - $null = $PSBoundCommonParameters.Remove("SortBy") - $null = $PSBoundCommonParameters.Remove("Descending") - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendant @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = @() - foreach($internalOutputAutoAttendant in $internalOutput.AutoAttendant) - { - $autoAttendant = [Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant]::new() - $autoAttendant.ParseFrom($internalOutputAutoAttendant, $ExcludeContent) - - if ($Identity) - { - # Append common parameter here - $getCsAutoAttendantStatusParameters = @{Identity = $autoAttendant.Identity} - foreach($p in $PSBoundCommonParameters.GetEnumerator()) - { - $getCsAutoAttendantStatusParameters += @{$p.Key = $p.Value} - } - - $internalStatus = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @getCsAutoAttendantStatusParameters @httpPipelineArgs - - $autoAttendant.AmendStatus($internalStatus) - } - - $output += $autoAttendant - } - - $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: Print error message in case of error - -function Get-CsAutoAttendantHolidays { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA whose holiday schedules are to be exported.. - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [System.String[]] - # The identity for the AA to be retrieved. - ${Years}, - - [Parameter(Mandatory=$false, position=2)] - [System.String[]] - # If specified, the status records for each auto attendant in the result set are also retrieved. - ${Names}, - - [Parameter(Mandatory=$false, position=3)] - [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") - - if ($PSBoundParameters.ContainsKey("Years")) { - $null = $PSBoundParameters.Remove("Years") - $PSBoundParameters.Add("Year", $Years) - } - - if ($PSBoundParameters.ContainsKey("Names")) { - $null = $PSBoundParameters.Remove("Names") - $PSBoundParameters.Add("Name", $Names) - } - - # Use ResponseType 0 as visualization record - $PSBoundParameters.Add("ResponseType", 0) - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantHolidays @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = @() - foreach($internalHolidayVisualizationRecord in $internalOutput.HolidayVisualizationRecord) - { - $holidayVisualizationRecord = [Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayVisRecord]::new() - $holidayVisualizationRecord.ParseFrom($internalHolidayVisualizationRecord) - $output += $holidayVisualizationRecord - } - - $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 output of the cmdlet - -function Get-CsAutoAttendantStatus { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA to be retrieved. - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [System.String[]] - ${IncludeResources}, - - [Parameter(Mandatory=$false, position=2)] - [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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantStatus @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.StatusRecord]::new() - $output.ParseFrom($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 error message in case of error - -function Get-CsAutoAttendantSupportedLanguage { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # The Identity parameter designates a specific language to be retrieved. - ${Identity}, - - [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() - - $null = $PSBoundParameters.Remove("Force") - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - # Use ResponseType 1 as binary output - if ($PSBoundParameters.ContainsKey('Identity')) { - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantSupportedLanguage @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.Language]::new() - $output.ParseFrom($internalOutput) - - $output - } else { - $tenantInfoOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($tenantInfoOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($tenantInfoOutput.Diagnostic) - - $supportedLanguagesOutput = @() - foreach ($supportedLanguage in $tenantInfoOutput.TenantInformationSupportedLanguage) { - $languageOutput = [Microsoft.Rtc.Management.Hosted.OAA.Models.Language]::new() - $languageOutput.ParseFrom($supportedLanguage) - $supportedLanguagesOutput += $languageOutput - } - - $supportedLanguagesOutput - } - - } 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 error message in case of error - -function Get-CsAutoAttendantSupportedTimeZone { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # The Identity parameter specifies a time zone to be retrieved. - ${Identity}, - - [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() - - $null = $PSBoundParameters.Remove("Force") - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - # Use ResponseType 1 as binary output - if ($PSBoundParameters.ContainsKey('Identity')) { - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantSupportedTimeZone @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.TimeZone]::new() - $output.ParseFrom($internalOutput) - - $output - } else { - $tenantInfoOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($tenantInfoOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($tenantInfoOutput.Diagnostic) - - $supportedTimezonesOutput = @() - foreach ($supportedTimezone in $tenantInfoOutput.TenantInformationSupportedTimeZone) { - $timezoneOutput = [Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone]::new() - $timezoneOutput.ParseFrom($supportedTimezone) - $supportedTimezonesOutput += $timezoneOutput - } - - $supportedTimezonesOutput - } - - } 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 error message in case of error - -function Get-CsAutoAttendantTenantInformation { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsAutoAttendantTenantInformation @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.TenantInformation]::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: transforming the results to the custom objects - -function Get-CsCallQueue { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The identity of the call queue which is retrieved. - ${Identity}, - - [Parameter(Mandatory=$false)] - [int] - # The First parameter gets the first N Call Queues. - ${First}, - - [Parameter(Mandatory=$false)] - [int] - # The Skip parameter skips the first N Call Queues. It is intended to be used for pagination purposes. - ${Skip}, - - [Parameter(Mandatory=$false)] - [switch] - # The ExcludeContent parameter only displays the Name and Id of the Call Queues. - ${ExcludeContent}, - - [Parameter(Mandatory=$false)] - [System.String] - # The Sort parameter specifies the property used to sort. - ${Sort}, - - [Parameter(Mandatory=$false)] - [switch] - # The Descending parameter is used to sort descending. - ${Descending}, - - [Parameter(Mandatory=$false)] - [System.String] - # The NameFilter parameter returns Call Queues where name contains specified string - ${NameFilter}, - - [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() - - if (${Identity} -and (${First} -or ${Skip} -or ${Sort} -or ${Descending} -or ${NameFilter})) { - throw "Identity parameter cannot be used with any other parameter." - } - - # Set the 'FilterInvalidObos' query parameter value to false. - $PSBoundParameters.Add('FilterInvalidObos', $false) - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null - } - - # Endpoint to get single entity does not support content exclusion, so we will filter content when displaying - if ($PSBoundParameters.ContainsKey('Identity') -and $PSBoundParameters.ContainsKey('ExcludeContent')) { - $PSBoundParameters.Remove("ExcludeContent") - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - if (${Identity} -ne '') { - $callQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $callQueue.ParseFrom($result.CallQueue, $ExcludeContent) - } else { - $callQueues = @() - foreach ($model in $result.CallQueue) { - $callQueue = [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $callQueues += $callQueue.ParseFrom($model, $ExcludeContent) - } - $callQueues - } - - } 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 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)] - [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\Get-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs - - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - 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() - 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 Get-CsMainlineAttendantAppointmentBookingFlow { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The identity of the mainline attendant flow which is retrieved. - ${Identity}, - - [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()] - [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) - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - 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() - 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 Get-CsMainlineAttendantFlow { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The identity of the mainline attendant flow which is retrieved. - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.String] - # 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()] - [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) - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - 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 - } - - } 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 Get-CsMainlineAttendantQuestionAnswerFlow { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The identity of the mainline attendant flow which is retrieved. - ${Identity}, - - [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()] - [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) - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - if (${Identity} -ne '') { - $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() - $questionAnswerFlow.ParseFromGetResponse($result) - } else { - $questionAnswerFlows = @() - foreach ($model in $result.MainlineAttendantFlowResponse) { - $questionAnswerFlow = [Microsoft.Rtc.Management.Hosted.Online.Models.MainlineAttendantQuestionAnswerFlow]::new() - $questionAnswerFlows += $questionAnswerFlow.ParseFromDomainModel($model) - } - $questionAnswerFlows - } - - } 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 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}, - - [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() - - # 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 - } - - # 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 ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.ApplicationInstanceAssociation]::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 output of the cmdlet - -function Get-CsOnlineApplicationInstanceAssociationStatus { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the application instance whose association provisioning status is to be retrieved. - ${Identity}, - - [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() - - # 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 - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineApplicationInstanceAssociationStatus @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.StatusRecord]::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 output of Get-CsOnlineAudioFile - -function Get-CsOnlineAudioFile { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [System.String] - # The Identity parameter is the identifier for the audio file. - ${Identity}, - - [Parameter(Mandatory=$false, position=1)] - [System.String] - # The ApplicationId parameter is the identifier for the application which will use this audio file. - ${ApplicationId}, - - [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 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 - } - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile]::new() - $output.ParseFrom($internalOutput) - } - else { - $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - - # 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 - - } 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 Get-CsOnlineSchedule { - [CmdletBinding()] - param( - [Parameter(Mandatory=$false)] - [System.String] - # The identity of the schedule which is retrieved. - ${Id}, - - [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 - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsOnlineSchedule @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - 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 - } - - } 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 error message in case of error - -function Get-CsOnlineVoicemailUserSettings { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the user for the voice mail settings - ${Identity}, - - [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() - - # 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\Get-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - $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 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)] - [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\Get-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs - - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - 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) - } - $AllSharedCallQueueHistory - } - - } 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 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)] - [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\Get-CsTagsTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - 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() - 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 error message in case of error - -function Import-CsAutoAttendantHolidays { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA whose holiday schedules are to be imported. - ${Identity}, - - [Alias('Input')] - [Parameter(Mandatory=$true, position=1)] - [System.Byte[]] - ${InputBytes}, - - [Parameter(Mandatory=$false, position=2)] - [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") - - $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 - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - 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 - - } 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 Import-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}, - - [Parameter(Mandatory=$true, 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}, - - [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") - - $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") - { - $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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Import-CsOnlineAudioFile @PSBoundParameters @httpPipelineArgs - - # 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) - - $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 output of cmdlet - -function New-CsAutoAttendant { - [CmdletBinding(PositionalBinding=$true)] - 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)] - [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)] - [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) - } - - # 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 ($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 ($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) - } - - # 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-CsAutoAttendant @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.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 - - } 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 cmdlet - -function New-CsAutoAttendantCallableEntity { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Identity parameter represents the ID of the callable entity - ${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)] - [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) - } - - # 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."; - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallableEntity @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.CallableEntity]::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: 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}, - - [Parameter(Mandatory=$false, position=4)] - [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") - - 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 ($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) - } - - 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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallFlow @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.CallFlow]::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: 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}, - - [Parameter(Mandatory=$false, position=4)] - [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") - - 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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantCallHandlingAssociation @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.CallHandlingAssociation]::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: Print diagnostic message from server respond - -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=$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, position=2)] - [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") - - if ($GroupScope -eq $true) { - $null = $PSBoundParameters.Remove('GroupScope') - } - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsAutoAttendantDialScope @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.DialScope]::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-CsAutoAttendantMenu { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Name parameter represents a friendly name for the menu. - ${Name}, - - [Parameter(Mandatory=$false, position=1)] - [PSObject[]] - # The Prompts parameter reflects the prompts to play when the menu is activated. - ${Prompts}, - - [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] - # Description of the menu option. - ${Description}, - - [Parameter(Mandatory=$false, position=7)] - [System.String] - # The mainline attendant target only when the action is MainlineAttendantFlow. - ${MainlineAttendantTarget}, - - [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 mainline attendant target only when the action is MainlineAttendantFlow. - ${AgentTarget}, - - [Parameter(Mandatory=$false, position=10)] - [System.String] - # The mainline attendant target only when the action is MainlineAttendantFlow. - ${AgentTargetTagTemplateId}, - - [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) - } - 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 } - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsOnlineSchedule @params @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() - $schedule.ParseFrom($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 return result to the custom object - -function New-CsOnlineTimeRange { - [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}, - - [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-CsOnlineTimeRange @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.TimeRange]::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: transforming the results to the custom objects - -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}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The Description parameter provides a description for the shared call queue history template. - ${Description}, - - [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}, - - [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}, - - [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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - $output = [Microsoft.Rtc.Management.Hosted.Online.Models.SharedCallQueueHistory]::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: transforming the results to the custom objects - -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 { - $customCmdletUtils = [Microsoft.Teams.ConfigAPI.Cmdlets.Telemetry.CustomCmdletUtils]::new($MyInvocation) - } - - process { - try { - $httpPipelineArgs = $customCmdletUtils.ProcessArgs() - - $null = $PSBoundParameters.Remove("Force") - - # Default ErrorAction to $ErrorActionPreference - if (-not $PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - } catch { - $customCmdletUtils.SendTelemetry() - throw - } - - 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) - } - if ($TagDetails.EnableSharedVoicemailSystemPromptSuppression) { - $PSBoundParameters.Add('TagDetailEnableSharedVoicemailSystemPromptSuppression', $true) - } - if ($TagDetails.Type -eq 'ApplicationEndpoint' -or $TagDetails.Type -eq 'ConfigurationEndpoint') { - $PSBoundParameters.Add('TagDetailCallPriority', $TagDetails.CallPriority) - } - } - - try { - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTag @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.IvrTag]::new() - $output.MapFromCreateResponse($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: transforming the results to the custom objects - -function New-CsTagsTemplate { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The Name parameter is a friendly name that is assigned to the IVR tags template. - ${Name}, - - [Parameter(Mandatory=$true, position=1)] - [System.String] - # The Description parameter provides a description for the IVR tags template. - ${Description}, - - [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} - ) - - 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 ($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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\New-CsTagsTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - $output = [Microsoft.Rtc.Management.Hosted.OAA.Models.IvrTagsTemplate]::new() - $output.MapFromCreateResponseModel($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: Display the diagnostic if any - -function Remove-CsAutoAttendant { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA 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)] - [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) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsAutoAttendant @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - } 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 diagnostics - -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') - } - - 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-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() - 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-CsComplianceRecordingForCallQueueTemplate { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identifier of the CR4CQ template 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() - - # 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\Remove-CsComplianceRecordingForCallQueueTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - $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: print out the diagnostic - -function Remove-CsMainlineAttendantAppointmentBookingFlow { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identifier of the mainline attendant appointment booking flow to be removed. - ${Identity}, - - [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() - - # 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\Remove-CsMainlineAttendantAppointmentBookingFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - $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: print out the diagnostic - -function Remove-CsMainlineAttendantQuestionAnswerFlow { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identifier of the mainline attendant question answer flow to be removed. - ${Identity}, - - [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() - - # 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\Remove-CsMainlineAttendantQuestionAnswerFlow @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - $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 Remove-CsOnlineApplicationInstanceAssociation { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String[]] - # The Identity parameter is the identity of application instances to be associated with the provided configuration ID. - ${Identities}, - - [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() - - # 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 - } - - # Get the array of Identities, and remove parameter 'Identities', - # since api internal\Remove-CsOnlineApplicationInstanceAssociation takes only param 'Identity' as a string, - # so need send a request for each identity (endpointId) by looping through all Identities. - $endpointIdArr = @() - - if ($PSBoundParameters.ContainsKey('Identities')) { - $endpointIdArr = $PSBoundParameters['Identities'] - $PSBoundParameters.Remove('Identities') | Out-Null - } - - # Sends request for each identity (endpointId) - foreach ($endpointId in $endpointIdArr) { - # Encode the "endpointID" if it is a SIP URI (aka User Principle Name (UPN)) - $identity = EncodeSipUri($endpointId) - $PSBoundParameters.Add('Identity', $identity) - - $internalOutputs = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Remove-CsOnlineApplicationInstanceAssociation @PSBoundParameters @httpPipelineArgs - $PSBoundParameters.Remove('Identity') | Out-Null - - # 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: 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() - - # 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\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 - } - } - - 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-CsSharedCallQueueHistoryTemplate { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identifier of the shared call queue history template 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() - - # 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\Remove-CsSharedCallQueueHistoryTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - $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: print out the diagnostic - -function Remove-CsTagsTemplate { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identifier of the tags template 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() - - # 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\Remove-CsTagsTemplate @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - $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 cmdlet - -function Set-CsAutoAttendant { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [PSObject] - # The Instance parameter is the object reference to the AA 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() - - $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("Instance") - $null = $PSBoundCommonParameters.Remove("WhatIf") - $null = $PSBoundCommonParameters.Remove("Confirm") - - $null = $PSBoundParameters.Remove('Instance') - if ($Instance.Identity -ne $null) { - $PSBoundParameters.Add('Identity', $Instance.Identity) - } - if ($Instance.Id -ne $null) { - $PSBoundParameters.Add('Id', $Instance.Id) - } - if ($Instance.Name -ne $null) { - $PSBoundParameters.Add('Name', $Instance.Name) - } - if ($Instance.LanguageId -ne $null) { - $PSBoundParameters.Add('LanguageId', $Instance.LanguageId) - } - if ($Instance.TimeZoneId -ne $null) { - $PSBoundParameters.Add('TimeZoneId', $Instance.TimeZoneId) - } - if ($Instance.TenantId -ne $null) { - $PSBoundParameters.Add('TenantId', $Instance.TenantId.ToString()) - } - if ($Instance.VoiceId -ne $null) { - $PSBoundParameters.Add('VoiceId', $Instance.VoiceId) - } - if ($Instance.DialByNameResourceId -ne $null) { - $PSBoundParameters.Add('DialByNameResourceId', $Instance.DialByNameResourceId) - } - if ($Instance.ApplicationInstances -ne $null) { - $PSBoundParameters.Add('ApplicationInstance', $Instance.ApplicationInstances) - } - if ($Instance.VoiceResponseEnabled -eq $true) { - $PSBoundParameters.Add('VoiceResponseEnabled', $true) - } - if ($Instance.DefaultCallFlow -ne $null) { - $PSBoundParameters.Add('DefaultCallFlowId', $Instance.DefaultCallFlow.Id) - $PSBoundParameters.Add('DefaultCallFlowName', $Instance.DefaultCallFlow.Name) - $PSBoundParameters.Add('DefaultCallFlowForceListenMenuEnabled', $Instance.DefaultCallFlow.ForceListenMenuEnabled) - $defaultCallFlowGreetings = @() - if ($Instance.DefaultCallFlow.Greetings -ne $null) { - foreach ($defaultCallFlowGreeting in $Instance.DefaultCallFlow.Greetings) { - $defaultCallFlowGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($defaultCallFlowGreeting) - } - $PSBoundParameters.Add('DefaultCallFlowGreeting', $defaultCallFlowGreetings) - } - if ($Instance.DefaultCallFlow.Menu -ne $null) { - $PSBoundParameters.Add('MenuDialByNameEnabled', $Instance.DefaultCallFlow.Menu.DialByNameEnabled) - $PSBoundParameters.Add('MenuDirectorySearchMethod', $Instance.DefaultCallFlow.Menu.DirectorySearchMethod.ToString()) - $PSBoundParameters.Add('MenuName', $Instance.DefaultCallFlow.Menu.Name) - if ($Instance.DefaultCallFlow.Menu.MenuOptions -ne $null) { - $defaultCallFlowMenuOptions = @() - foreach($defaultCallFlowMenuOption in $Instance.DefaultCallFlow.Menu.MenuOptions) { - $defaultCallFlowMenuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($defaultCallFlowMenuOption) - } - $PSBoundParameters.Add('MenuOption', $defaultCallFlowMenuOptions) - } - if ($Instance.DefaultCallFlow.Menu.Prompts -ne $null) { - $defaultCallFlowMenuPrompts = @() - foreach($defaultCallFlowMenuPrompt in $Instance.DefaultCallFlow.Menu.Prompts) { - $defaultCallFlowMenuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($defaultCallFlowMenuPrompt) - } - $PSBoundParameters.Add('MenuPrompt', $defaultCallFlowMenuPrompts) - } - } - } - if ($Instance.DirectoryLookupScope -ne $null) { - if ($Instance.DirectoryLookupScope.InclusionScope -ne $null) { - $PSBoundParameters.Add('InclusionScopeType', $Instance.DirectoryLookupScope.InclusionScope.Type.ToString()) - if ($Instance.DirectoryLookupScope.InclusionScope.GroupScope -ne $null) { - $PSBoundParameters.Add('InclusionScopeGroupDialScopeGroupId', $Instance.DirectoryLookupScope.InclusionScope.GroupScope.GroupIds) - } - } else { - $PSBoundParameters.Add('InclusionScopeType', "Default") - } - if ($Instance.DirectoryLookupScope.ExclusionScope -ne $null) { - $PSBoundParameters.Add('ExclusionScopeType', $Instance.DirectoryLookupScope.ExclusionScope.Type.ToString()) - if ($Instance.DirectoryLookupScope.ExclusionScope.GroupScope -ne $null) { - $PSBoundParameters.Add('ExclusionScopeGroupDialScopeGroupId', $Instance.DirectoryLookupScope.ExclusionScope.GroupScope.GroupIds) - } - } else { - $PSBoundParameters.Add('ExclusionScopeType', "Default") - } - } - if ($Instance.Operator -ne $null) { - if ($Instance.Operator.EnableTranscription -eq $true) { - $PSBoundParameters.Add('OperatorEnableTranscription', $true) - } - $PSBoundParameters.Add('OperatorId', $Instance.Operator.Id) - $PSBoundParameters.Add('OperatorType', $Instance.Operator.Type.ToString()) - } - if ($Instance.CallFlows -ne $null) { - $callFlows = @() - foreach ($callFlow in $Instance.CallFlows) { - $generatedCallFlow = [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow]::CreateAutoGeneratedFromObject($callFlow) - - if ($callFlow.Greetings -ne $null) { - $inputGreetings = @() - foreach ($greeting in $callFlow.Greetings) { - $inputGreetings += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($greeting) - } - $generatedCallFlow.Greeting = $inputGreetings - } - if ($callFlow.Menu.MenuOptions -ne $null) { - $menuOptions = @() - foreach ($menuOption in $callFlow.Menu.MenuOptions) { - $menuOptions += [Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption]::CreateAutoGeneratedFromObject($menuOption) - } - $generatedCallFlow.MenuOption = $menuOptions - } - if ($callFlow.Menu.Prompts -ne $null) { - $menuPrompts = @() - foreach ($menuPrompt in $callFlow.Menu.Prompts) { - $menuPrompts += [Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt]::CreateAutoGeneratedFromObject($menuPrompt) - } - $generatedCallFlow.MenuPrompt = $menuPrompts - } - - $callFlows += $generatedCallFlow - } - $PSBoundParameters.Add('CallFlow', $callFlows) - } - if ($Instance.CallHandlingAssociations -ne $null) { - $callHandlingAssociations = @() - foreach($callHandlingAssociation in $Instance.CallHandlingAssociations) { - $callHandlingAssociations += [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation]::CreateAutoGeneratedFromObject($callHandlingAssociation) - } - $PSBoundParameters.Add('CallHandlingAssociation', $callHandlingAssociations) - } - - $PSBoundParameters.Add('AuthorizedUser', $Instance.AuthorizedUsers) - $PSBoundParameters.Add('HideAuthorizedUser', $Instance.HideAuthorizedUsers) - - if ($Instance.UserNameExtension -ne $null) { - $PSBoundParameters.Add('UserNameExtension', $Instance.UserNameExtension) - } - - if ($Instance.Schedules -ne $null) { - $schedules = @() - foreach($schedule in $Instance.Schedules) { - $schedules += [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::CreateAutoGeneratedFromObject($schedule) - } - $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 - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - $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 - - } 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: replacing the parameters' names. - -function Set-CsCallQueue { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity of the call queue to be updated. - ${Identity}, - - [Parameter(Mandatory=$false)] - [System.String] - # The Name of the call queue to be updated. - ${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}, - - [Parameter(Mandatory=$false)] - [bool] - # The ConferenceMode parameter indicates whether or not Conference mode will be applied on calls for current call queue. - ${ConferenceMode}, - - [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] - # 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 - ${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') - } - - if ($PSBoundParameters.ContainsKey('Force')) { - $PSBoundParameters.Remove('Force') | Out-Null - } - - # Get the existing CallQueue by Identity. - $getParams = @{Identity = $Identity; FilterInvalidObos = $false} - $getResult = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Get-CsCallQueue @getParams -ErrorAction Stop @httpPipelineArgs - - # Convert the existing CallQueue DTO to domain model. - $existingCallQueue= [Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue]::new() - $existingCallQueue.ParseFrom($getResult.CallQueue) | Out-Null - - # Take the delta from the existing CallQueue and apply it to the param hasthable to form - # an appropriate DTO model for the CallQueue PUT API. FYI, CallQueue PUT API is very much - # different from its AA counterpart which accepts params/properties to be updated only. - - # Param hashtable modification begins. - 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 - } - - if (!$PSBoundParameters.ContainsKey('Name')) { - $PSBoundParameters.Add('Name', $existingCallQueue.Name) - } - - if (!$PSBoundParameters.ContainsKey('AgentAlertTime')) { - $PSBoundParameters.Add('AgentAlertTime', $existingCallQueue.AgentAlertTime) - } - - if ([string]::IsNullOrWhiteSpace($LanguageId) -and ![string]::IsNullOrWhiteSpace($existingCallQueue.LanguageId)) { - $PSBoundParameters.Add('LanguageId', $existingCallQueue.LanguageId) - } - - if (!$PSBoundParameters.ContainsKey('OverflowThreshold')) { - $PSBoundParameters.Add('OverflowThreshold', $existingCallQueue.OverflowThreshold) - } - - if (!$PSBoundParameters.ContainsKey('TimeoutThreshold')) { - $PSBoundParameters.Add('TimeoutThreshold', $existingCallQueue.TimeoutThreshold) - } - - if (!$PSBoundParameters.ContainsKey('RoutingMethod')) { - $PSBoundParameters.Add('RoutingMethod', $existingCallQueue.RoutingMethod) - } - - if (!$PSBoundParameters.ContainsKey('AllowOptOut') ) { - $PSBoundParameters.Add('AllowOptOut', $existingCallQueue.AllowOptOut) - } - - if (!$PSBoundParameters.ContainsKey('ConferenceMode')) { - $PSBoundParameters.Add('ConferenceMode', $existingCallQueue.ConferenceMode) - } - - if (!$PSBoundParameters.ContainsKey('PresenceBasedRouting')) { - $PSBoundParameters.Add('PresenceAwareRouting', $existingCallQueue.PresenceBasedRouting) - } - else { - $PSBoundParameters.Add('PresenceAwareRouting', $PresenceBasedRouting) - $PSBoundParameters.Remove('PresenceBasedRouting') | Out-Null - } - - if (!$PSBoundParameters.ContainsKey('ChannelId')) { - if (![string]::IsNullOrWhiteSpace($existingCallQueue.ChannelId)) { - $PSBoundParameters.Add('ThreadId', $existingCallQueue.ChannelId) - } - } - else { - $PSBoundParameters.Add('ThreadId', $ChannelId) - $PSBoundParameters.Remove('ChannelId') | Out-Null - } - - if (!$PSBoundParameters.ContainsKey('OboResourceAccountIds')) { - if ($null -ne $existingCallQueue.OboResourceAccountIds -and $existingCallQueue.OboResourceAccountIds.Length -gt 0) { - $PSBoundParameters.Add('OboResourceAccountIds', $existingCallQueue.OboResourceAccountIds) - } - } - - if (!$PSBoundParameters.ContainsKey('WelcomeMusicAudioFileId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.WelcomeMusicResourceId)) { - $PSBoundParameters.Add('WelcomeMusicAudioFileId', $existingCallQueue.WelcomeMusicResourceId) - } - - if (!$PSBoundParameters.ContainsKey('MusicOnHoldAudioFileId') -and !$PSBoundParameters.ContainsKey('UseDefaultMusicOnHold')) { - # The already persiting values cannot be conflicting as those were validated by admin service. - if (![string]::IsNullOrWhiteSpace($existingCallQueue.MusicOnHoldResourceId)) { - $PSBoundParameters.Add('MusicOnHoldAudioFileId', $existingCallQueue.MusicOnHoldResourceId) - } - if ($null -ne $existingCallQueue.UseDefaultMusicOnHold) { - $PSBoundParameters.Add('UseDefaultMusicOnHold', $existingCallQueue.UseDefaultMusicOnHold) - } - } - elseif ($UseDefaultMusicOnHold -eq $false -and !$PSBoundParameters.ContainsKey('MusicOnHoldAudioFileId')) { - if (![string]::IsNullOrWhiteSpace($existingCallQueue.MusicOnHoldResourceId)) { - $PSBoundParameters.Add('MusicOnHoldAudioFileId', $existingCallQueue.MusicOnHoldResourceId) - } - } - - if (!$PSBoundParameters.ContainsKey('DistributionLists')) { - if ($null -ne $existingCallQueue.DistributionLists -and $existingCallQueue.DistributionLists.Length -gt 0) { - $PSBoundParameters.Add('DistributionLists', $existingCallQueue.DistributionLists) - } - } - - if (!$PSBoundParameters.ContainsKey('Users')) { - if ($null -ne $existingCallQueue.Users -and $existingCallQueue.Users.Length -gt 0) { - $PSBoundParameters.Add('Users', $existingCallQueue.Users) - } - } - - if (!$PSBoundParameters.ContainsKey('OverflowSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowSharedVoicemailTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowSharedVoicemailTextToSpeechPrompt', $existingCallQueue.OverflowSharedVoicemailTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowSharedVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowSharedVoicemailTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowSharedVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowSharedVoicemailAudioFilePrompt', $existingCallQueue.OverflowSharedVoicemailAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowSharedVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowSharedVoicemailAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('EnableOverflowSharedVoicemailTranscription')) { - if ($existingCallQueue.EnableOverflowSharedVoicemailTranscription -ne $null) { - $PSBoundParameters.Add('EnableOverflowSharedVoicemailTranscription', $existingCallQueue.EnableOverflowSharedVoicemailTranscription) - } - } - - if (!$PSBoundParameters.ContainsKey('EnableOverflowSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableOverflowSharedVoicemailSystemPromptSuppression) { - $PSBoundParameters.Add('EnableOverflowSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableOverflowSharedVoicemailSystemPromptSuppression) - } - - if (!$PSBoundParameters.ContainsKey('OverflowActionTarget') -and !($OverflowAction -eq 'Disconnect') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowActionTargetId)) { - $PSBoundParameters.Add('OverflowActionTarget', $existingCallQueue.OverflowActionTargetId) - } - - if (!$PSBoundParameters.ContainsKey('OverflowAction')) { - $PSBoundParameters.Add('OverflowAction', $existingCallQueue.OverflowAction) - } - - if (!$PSBoundParameters.ContainsKey('OverflowDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowDisconnectAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowDisconnectAudioFilePrompt', $existingCallQueue.OverflowDisconnectAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowDisconnectAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowDisconnectAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowDisconnectTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowDisconnectTextToSpeechPrompt', $existingCallQueue.OverflowDisconnectTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowDisconnectTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowDisconnectTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPersonAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowRedirectPersonAudioFilePrompt', $existingCallQueue.OverflowRedirectPersonAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPersonAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectPersonAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPersonTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowRedirectPersonTextToSpeechPrompt', $existingCallQueue.OverflowRedirectPersonTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPersonTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectPersonTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoiceAppAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowRedirectVoiceAppAudioFilePrompt', $existingCallQueue.OverflowRedirectVoiceAppAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoiceAppAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectVoiceAppAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoiceAppTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.OverflowRedirectVoiceAppTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoiceAppTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectVoiceAppTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPhoneNumberAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.OverflowRedirectPhoneNumberAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPhoneNumberAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectPhoneNumberAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectPhoneNumberTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.OverflowRedirectPhoneNumberTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectPhoneNumberTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectPhoneNumberTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('OverflowRedirectVoicemailAudioFilePrompt', $existingCallQueue.OverflowRedirectVoicemailAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectVoicemailAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('OverflowRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.OverflowRedirectVoicemailTextToSpeechPrompt)) { - $PSBoundParameters.Add('OverflowRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.OverflowRedirectVoicemailTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('OverflowRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($OverflowRedirectVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('OverflowRedirectVoicemailTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutSharedVoicemailTextToSpeechPrompt) ) { - $PSBoundParameters.Add('TimeoutSharedVoicemailTextToSpeechPrompt', $existingCallQueue.TimeoutSharedVoicemailTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutSharedVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutSharedVoicemailTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutSharedVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutSharedVoicemailAudioFilePrompt', $existingCallQueue.TimeoutSharedVoicemailAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutSharedVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutSharedVoicemailAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('EnableTimeoutSharedVoicemailTranscription')) { - if ($existingCallQueue.EnableTimeoutSharedVoicemailTranscription -ne $null) { - $PSBoundParameters.Add('EnableTimeoutSharedVoicemailTranscription', $existingCallQueue.EnableTimeoutSharedVoicemailTranscription) - } - } - - if (!$PSBoundParameters.ContainsKey('EnableTimeoutSharedVoicemailSystemPromptSuppression') -and $null -ne $existingCallQueue.EnableTimeoutSharedVoicemailSystemPromptSuppression) { - $PSBoundParameters.Add('EnableTimeoutSharedVoicemailSystemPromptSuppression', $existingCallQueue.EnableTimeoutSharedVoicemailSystemPromptSuppression) - } - - if (!$PSBoundParameters.ContainsKey('TimeoutActionTarget') -and !($TimeoutAction -eq 'Disconnect') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutActionTargetId)) { - $PSBoundParameters.Add('TimeoutActionTarget', $existingCallQueue.TimeoutActionTargetId) - } - - if (!$PSBoundParameters.ContainsKey('TimeoutAction')) { - $PSBoundParameters.Add('TimeoutAction', $existingCallQueue.TimeoutAction) - } - - if (!$PSBoundParameters.ContainsKey('TimeoutDisconnectAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutDisconnectAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutDisconnectAudioFilePrompt', $existingCallQueue.TimeoutDisconnectAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutDisconnectAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutDisconnectAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutDisconnectAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutDisconnectTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutDisconnectTextToSpeechPrompt)) { - $PSBoundParameters.Add('TimeoutDisconnectTextToSpeechPrompt', $existingCallQueue.TimeoutDisconnectTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutDisconnectTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutDisconnectTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutDisconnectTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPersonAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPersonAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutRedirectPersonAudioFilePrompt', $existingCallQueue.TimeoutRedirectPersonAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPersonAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPersonAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectPersonAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPersonTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPersonTextToSpeechPrompt)) { - $PSBoundParameters.Add('TimeoutRedirectPersonTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectPersonTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPersonTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPersonTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectPersonTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoiceAppAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutRedirectVoiceAppAudioFilePrompt', $existingCallQueue.TimeoutRedirectVoiceAppAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoiceAppAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectVoiceAppAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoiceAppTextToSpeechPrompt)) { - $PSBoundParameters.Add('TimeoutRedirectVoiceAppTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectVoiceAppTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoiceAppTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoiceAppTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectVoiceAppTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPhoneNumberAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutRedirectPhoneNumberAudioFilePrompt', $existingCallQueue.TimeoutRedirectPhoneNumberAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPhoneNumberAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectPhoneNumberAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectPhoneNumberTextToSpeechPrompt)) { - $PSBoundParameters.Add('TimeoutRedirectPhoneNumberTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectPhoneNumberTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectPhoneNumberTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectPhoneNumberTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectPhoneNumberTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('TimeoutRedirectVoicemailAudioFilePrompt', $existingCallQueue.TimeoutRedirectVoicemailAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectVoicemailAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TimeoutRedirectVoicemailTextToSpeechPrompt)) { - $PSBoundParameters.Add('TimeoutRedirectVoicemailTextToSpeechPrompt', $existingCallQueue.TimeoutRedirectVoicemailTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('TimeoutRedirectVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($TimeoutRedirectVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('TimeoutRedirectVoicemailTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('NoAgentActionTarget') -and !($NoAgentAction -eq 'Queue') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentActionTargetId)) { - $PSBoundParameters.Add('NoAgentActionTarget', $existingCallQueue.NoAgentActionTargetId) - } - - if (!$PSBoundParameters.ContainsKey('NoAgentAction')) { - $PSBoundParameters.Add('NoAgentAction', $existingCallQueue.NoAgentAction) - } - - if (!$PSBoundParameters.ContainsKey('NoAgentSharedVoicemailTextToSpeechPrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentSharedVoicemailTextToSpeechPrompt) ) { - $PSBoundParameters.Add('NoAgentSharedVoicemailTextToSpeechPrompt', $existingCallQueue.NoAgentSharedVoicemailTextToSpeechPrompt) - } - elseif ($PSBoundParameters.ContainsKey('NoAgentSharedVoicemailTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($NoAgentSharedVoicemailTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('NoAgentSharedVoicemailTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('NoAgentSharedVoicemailAudioFilePrompt') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.NoAgentSharedVoicemailAudioFilePrompt)) { - $PSBoundParameters.Add('NoAgentSharedVoicemailAudioFilePrompt', $existingCallQueue.NoAgentSharedVoicemailAudioFilePrompt) - } - elseif ($PSBoundParameters.ContainsKey('NoAgentSharedVoicemailAudioFilePrompt') -and [string]::IsNullOrWhiteSpace($NoAgentSharedVoicemailAudioFilePrompt)) { - $null = $PSBoundParameters.Remove('NoAgentSharedVoicemailAudioFilePrompt') - } - - if (!$PSBoundParameters.ContainsKey('EnableNoAgentSharedVoicemailTranscription')) { - if ($existingCallQueue.EnableNoAgentSharedVoicemailTranscription -ne $null) { - $PSBoundParameters.Add('EnableNoAgentSharedVoicemailTranscription', $existingCallQueue.EnableNoAgentSharedVoicemailTranscription) - } - } - - 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) - } - elseif ($PSBoundParameters.ContainsKey('CallbackOfferTextToSpeechPrompt') -and [string]::IsNullOrWhiteSpace($CallbackOfferTextToSpeechPrompt)) { - $null = $PSBoundParameters.Remove('CallbackOfferTextToSpeechPrompt') - } - - if (!$PSBoundParameters.ContainsKey('CallbackEmailNotificationTarget') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.CallbackEmailNotificationTargetId)) { - $PSBoundParameters.Add('CallbackEmailNotificationTarget', $existingCallQueue.CallbackEmailNotificationTargetId) - } - elseif ($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($existingCallQueue.ShiftsTeamId)) { - $PSBoundParameters.Add('ShiftsTeamId', $existingCallQueue.ShiftsTeamId) - } - elseif ($PSBoundParameters.ContainsKey('ShiftsTeamId') -and [string]::IsNullOrWhiteSpace($ShiftsTeamId)) { - $null = $PSBoundParameters.Remove('ShiftsTeamId') - } - - if (!$PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.ShiftsSchedulingGroupId)) { - $PSBoundParameters.Add('ShiftsSchedulingGroupId', $existingCallQueue.ShiftsSchedulingGroupId) - } - elseif ($PSBoundParameters.ContainsKey('ShiftsSchedulingGroupId') -and [string]::IsNullOrWhiteSpace($ShiftsSchedulingGroupId)) { - $null = $PSBoundParameters.Remove('ShiftsSchedulingGroupId') - } - - if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCR)) { - $PSBoundParameters.Add('TextAnnouncementForCR', $existingCallQueue.TextAnnouncementForCR) - } - elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCR)) { - $null = $PSBoundParameters.Remove('TextAnnouncementForCR') - } - - if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCR)) { - $PSBoundParameters.Add('AudioFileAnnouncementForCR', $existingCallQueue.AudioFileAnnouncementForCR) - } - elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCR') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCR)) { - $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCR') - } - - if (!$PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.TextAnnouncementForCRFailure)) { - $PSBoundParameters.Add('TextAnnouncementForCRFailure', $existingCallQueue.TextAnnouncementForCRFailure) - } - elseif ($PSBoundParameters.ContainsKey('TextAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($TextAnnouncementForCRFailure)) { - $null = $PSBoundParameters.Remove('TextAnnouncementForCRFailure') - } - - if (!$PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and ![string]::IsNullOrWhiteSpace($existingCallQueue.AudioFileAnnouncementForCRFailure)) { - $PSBoundParameters.Add('AudioFileAnnouncementForCRFailure', $existingCallQueue.AudioFileAnnouncementForCRFailure) - } - elseif ($PSBoundParameters.ContainsKey('AudioFileAnnouncementForCRFailure') -and [string]::IsNullOrWhiteSpace($AudioFileAnnouncementForCRFailure)) { - $null = $PSBoundParameters.Remove('AudioFileAnnouncementForCRFailure') - } - - if (!$PSBoundParameters.ContainsKey('ComplianceRecordingForCallQueueTemplateId') -and $null -ne $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) { - $PSBoundParameters.Add('ComplianceRecordingForCallQueueTemplateId', $existingCallQueue.ComplianceRecordingForCallQueueTemplateId) - } - - if (!$PSBoundParameters.ContainsKey('SharedCallQueueHistoryTemplateId') -and $null -ne $existingCallQueue.SharedCallQueueHistoryTemplateId) { - $PSBoundParameters.Add('SharedCallQueueHistoryTemplateId', $existingCallQueue.SharedCallQueueHistoryTemplateId) - } - - - # 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) - } - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null - } - - $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 - } - - # Get common parameters - $PSBoundCommonParameters = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $params += @{$p.Key = $p.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 - } - - $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) - } - - 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: $_" - } - - $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 - } - - # Get common parameters - $PSBoundCommonParameters = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $params += @{$p.Key = $p.Value} - } - - $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 - } - - $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 - -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}, - - [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($Instance.KnowledgeBase) -and $Instance.KnowledgeBase -match '\.json$') - { - # Read the JSON file into a PowerShell object - $KnowledgeBaseJsonObject = Get-Content -Path $Instance.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() - $Instance.KnowledgeBase = $mainlineAttendantQuestionAnswerFlow.ReadKnowledgeBaseContent($KnowledgeBaseJsonString, "local_file") - - $Instance.KnowledgeBase - } - } catch { - throw "Failed to read KnowledgeBase file: $_" - } - - - $params = @{ - Name = ${Instance}.Name - Identity = ${Instance}.Identity - Type = ${Instance}.Type - ConfigurationId = ${Instance}.ConfigurationId - Description = ${Instance}.Description - ApiAuthenticationType = ${Instance}.ApiAuthenticationType - KnowledgeBase = ${Instance}.KnowledgeBase - } - - # Get common parameters - $PSBoundCommonParameters = @{} - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $params += @{$p.Key = $p.Value} - } - - # Remove Instance from params as it is not a valid parameter for the internal cmdlet - $null = $params.Remove("Instance") - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsMainlineAttendantQuestionAnswerFlow @params @httpPipelineArgs - - # 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() - 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 Set-CsOdcServiceNumber - -function Set-CsOdcServiceNumber { - [CmdletBinding(PositionalBinding=$false)] - param( - [string] - ${Identity}, - - [string] - ${PrimaryLanguage}, - - [string[]] - ${SecondaryLanguages}, - - [switch] - ${RestoreDefaultLanguages}, - - [switch] - ${Force}, - - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - [Parameter(ValueFromPipeline)] - ${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() - - if ($Identity -ne ""){ - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcServiceNumber @PSBoundParameters @httpPipelineArgs - } - elseif ($Instance -ne $null) { - $Body = [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ServiceNumberUpdateRequest]::new() - - if ($PrimaryLanguage -ne "" ){ - $Body.PrimaryLanguage = $PrimaryLanguage - } - else { - $Body.PrimaryLanguage = $Instance.PrimaryLanguage - } - - if ($SecondaryLanguages -ne "") { - $Body.SecondaryLanguage = $SecondaryLanguages - } - else { - $Body.SecondaryLanguage = $Instance.SecondaryLanguages - } - - if ($RestoreDefaultLanguages -eq $true) { - $Body.RestoreDefaultLanguage = $RestoreDefaultLanguages - } - - $output = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOdcServiceNumber -Identity $Instance.Number -Body $Body @httpPipelineArgs - } - - $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 Set-CsOnlineSchedule { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Mandatory=$true, position=0)] - [Object] - # The instance of the schedule which is updated. - ${Instance}, - - [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() - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - if ($PSBoundParameters.ContainsKey("Force")) { - $PSBoundParameters.Remove("Force") | Out-Null - } - $params = @{ - Identity = ${Instance}.Id - Name = ${Instance}.Name - Type = ${Instance}.Type - AssociatedConfigurationId = ${Instance}.AssociatedConfigurationId - } - # Get common parameters - foreach($p in $PSBoundParameters.GetEnumerator()) - { - $params += @{$p.Key = $p.Value} - } - $null = $params.Remove("Instance") - - if (${Instance}.Type -eq [Microsoft.Rtc.Management.Hosted.Online.Models.ScheduleType]::Fixed) { - $DateTimeRanges = ${Instance}.FixedSchedule.DateTimeRanges - $dateTimeRangeStandardFormat = 'yyyy-MM-ddTHH:mm:ss'; - $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 (${Instance}.Type -eq [Microsoft.Rtc.Management.Hosted.Online.Models.ScheduleType]::WeeklyRecurrence) { - $MondayHours = ${Instance}.WeeklyRecurrentSchedule.MondayHours - $TuesdayHours = ${Instance}.WeeklyRecurrentSchedule.TuesdayHours - $WednesdayHours = ${Instance}.WeeklyRecurrentSchedule.WednesdayHours - $ThursdayHours = ${Instance}.WeeklyRecurrentSchedule.ThursdayHours - $FridayHours = ${Instance}.WeeklyRecurrentSchedule.FridayHours - $SaturdayHours = ${Instance}.WeeklyRecurrentSchedule.SaturdayHours - $SundayHours = ${Instance}.WeeklyRecurrentSchedule.SundayHours - - 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 - } - } - } - - $params['WeeklyRecurrentScheduleIsComplemented'] = ${Instance}.WeeklyRecurrentSchedule.ComplementEnabled - - if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange -ne $null) { - if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Start -ne $null) { $params['RecurrenceRangeStart'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Start } - if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.End -ne $null) { $params['RecurrenceRangeEnd'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.End } - if (${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Type -ne $null) { $params['RecurrenceRangeType'] = ${Instance}.WeeklyRecurrentSchedule.RecurrenceRange.Type } - } - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineSchedule @params @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($result.Diagnostic) - - $schedule = [Microsoft.Rtc.Management.Hosted.Online.Models.Schedule]::new() - $schedule.ParseFrom($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: Print error message in case of error - -function Set-CsOnlineVoicemailUserSettings { - [CmdletBinding(PositionalBinding=$true, SupportsShouldProcess, ConfirmImpact='Medium')] - param( - [Parameter(Position=0, Mandatory)] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Rtc.Management.Hosted.Voicemail.Models.CallAnswerRules] - ${CallAnswerRule}, - - [Parameter()] - [System.String] - ${DefaultGreetingPromptOverwrite}, - - [Parameter()] - [System.String] - ${DefaultOofGreetingPromptOverwrite}, - - [Parameter()] - [System.Nullable[System.Boolean]] - ${OofGreetingEnabled}, - - [Parameter()] - [System.Nullable[System.Boolean]] - ${OofGreetingFollowAutomaticRepliesEnabled}, - - [Parameter()] - [System.String] - ${PromptLanguage}, - - [Parameter()] - [System.Nullable[System.Boolean]] - ${ShareData}, - - [Parameter()] - [System.String] - ${TransferTarget}, - - [Parameter()] - [System.Nullable[System.Boolean]] - ${VoicemailEnabled}, - - [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 - } - - $result = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Set-CsOnlineVMUserSetting @PSBoundParameters @httpPipelineArgs - # Stop execution if internal cmdlet is failing - if ($result -eq $null) { - return $null - } - - # If none of the above parameters are set (except Identity and Force), - # We should display the Warning message to user. - if ($PSBoundParameters["CallAnswerRule"] -eq $null -and - $PSBoundParameters["DefaultGreetingPromptOverwrite"] -eq $null -and - $PSBoundParameters["DefaultOofGreetingPromptOverwrite"] -eq $null -and - $PSBoundParameters["OofGreetingEnabled"] -eq $null -and - $PSBoundParameters["OofGreetingFollowAutomaticRepliesEnabled"] -eq $null -and - $PSBoundParameters["PromptLanguage"] -eq $null -and - $PSBoundParameters["ShareData"] -eq $null -and - $PSBoundParameters["TransferTarget"] -eq $null -and - $PSBoundParameters["VoicemailEnabled"] -eq $null) { - Write-Warning("To set online voicemail user settings for user {0}, at least one optional parameter should be provided." -f $Identity) - } - - $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-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 { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$true, position=0)] - [System.String] - # The identity for the AA to be updated. - ${Identity}, - - [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() - - $null = $PSBoundParameters.Remove("Force") - - # Default ErrorAction to $ErrorActionPreference - if (!$PSBoundParameters.ContainsKey("ErrorAction")) { - $PSBoundParameters.Add("ErrorAction", $ErrorActionPreference) - } - - $internalOutput = Microsoft.Teams.ConfigAPI.Cmdlets.internal\Update-CsAutoAttendant @PSBoundParameters @httpPipelineArgs - - # Stop execution if internal cmdlet is failing - if ($internalOutput -eq $null) { - return $null - } - - Write-AdminServiceDiagnostic($internalOutput.Diagnostic) - - } 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: Provide common functions for voice app team cmdlets - -function Write-AdminServiceDiagnostic { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord[]] - # The diagnostic object - ${Diagnostics} - ) - process { - if ($Diagnostics -eq $null) - { - return - } - - foreach($diagnostic in $Diagnostics) - { - if ($diagnostic.Level -eq $null) - { - Write-Output $diagnostic.Message - } - else - { - switch($diagnostic.Level) - { - "Warning" { Write-Warning $diagnostic.Message } - "Info" { Write-Output $diagnostic.Message } - "Verbose" { Write-Verbose $diagnostic.Message } - default { Write-Output $diagnostic.Message } - } - } - } - } -} - -function Get-StatusRecordStatusString { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [Int] - # The int status from status record - ${StatusRecordStatus} - ) - process { - if ($StatusRecordStatus -eq $null) - { - return - } - - $status = '' - - switch ($StatusRecordStatus) - { - 0 {$status = 'Error'} - 1 {$status = 'Pending'} - 2 {$status = 'Unknown'} - 3 {$status = 'Success'} - } - - $status - } -} - -function Get-StatusRecordStatusCodeString { - [CmdletBinding(PositionalBinding=$true)] - param( - [Parameter(Mandatory=$false, position=0)] - [Int] - # The int status from status record - ${StatusRecordErrorCode} - ) - process { - if ($StatusRecordErrorCode -eq $null) - { - return - } - - $statusCode = '' - - switch ($StatusRecordErrorCode) - { - 'ApplicationInstanceAssociationProvider_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} - 'ApplicationInstanceAssociationStatusProvider_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} - 'ApplicationInstanceAssociationStatusProvider_AcsAssociationNotFound' {$statusCode = 'AcsAssociationNotFound'} - 'ApplicationInstanceAssociationStatusProvider_ApsAssociationNotFound' {$statusCode = 'ApsAppEndpointNotFound'} - 'AudioFile_FileNameNullOrWhitespace' {$statusCode = 'AudioFileNameNullOrWhitespace'} - 'AudioFile_FileNameTooShort' {$statusCode = 'AudioFileNameTooShort'} - 'AudioFile_FileNameTooLong' {$statusCode = 'AudioFileNameTooLong'} - 'AudioFile_InvalidAudioFileExtension' {$statusCode = 'InvalidAudioFileExtension'} - 'AudioFile_InvalidFileName' {$statusCode = 'InvalidAudioFileName'} - 'AudioFile_UnsupportedAudioFileExtension' {$statusCode = 'UnsupportedAudioFileExtension'} - 'CreateApplicationEndpoint_ApsAppEndpointInvalid' {$statusCode = 'ApsAppEndpointInvalid'} - 'CreateApplicationInstanceAssociation_AppEndpointAlreadyAssociated' {$statusCode = 'AcsAssociationAlreadyExists'} - 'CreateApplicationInstanceAssociation_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} - 'CreateApplicationInstanceAssociation_AppEndpointMissingProvisioning' {$statusCode = 'AppEndpointMissingProvisioning'} - 'DateTimeRange_InvalidDateTimeRangeBound' {$statusCode = 'InvalidDateTimeRangeFormat'} - 'DateTimeRange_InvalidDateTimeRangeKind' {$statusCode = 'InvalidDateTimeRangeKind'} - 'DateTimeRange_NonPositiveDateTimeRange' {$statusCode = 'InvalidDateTimeRange'} - 'DeserializeScheduleOperation_InvalidModelVersion' {$statusCode = 'InvalidSerializedModelVersion'} - 'EnvironmentContextMapper_ForestNameNullOrWhiteSpace' {$statusCode = 'ForestNameNullOrWhiteSpace'} - 'FixedSchedule_DuplicateDateTimeRangeStartBoundaries' {$statusCode = 'DuplicateDateTimeRangeStartBoundaries'} - 'FixedSchedule_InvalidDateTimeRangeBoundariesAlignment' {$statusCode = 'InvalidDateTimeRangeBoundariesAlignment'} - 'ModelId_InvalidScheduleId' {$statusCode = 'InvalidScheduleId'} - 'ModifyScheduleOperation_ScheduleConflictInExistingAutoAttendant' {$statusCode = 'ScheduleConflictInExistingAutoAttendant'} - 'RemoveApplicationInstanceAssociation_AppEndpointNotFound' {$statusCode = 'AppEndpointNotFound'} - 'RemoveApplicationInstanceAssociation_AssociationNotFound' {$statusCode = 'AcsAssociationNotFound'} - 'RemoveScheduleOperation_ScheduleInUse' {$statusCode = 'ScheduleInUse'} - 'Schedule_NameNullOrWhitespace' {$statusCode = 'ScheduleNameNullOrWhitespace'} - 'Schedule_NameTooLong' {$statusCode = 'ScheduleNameTooLong'} - 'Schedule_FixedScheduleNull' {$statusCode = 'ScheduleTypeMismatch'} - 'Schedule_FixedScheduleNonNull' {$statusCode = 'ScheduleTypeMismatch'} - 'Schedule_WeeklyRecurrentScheduleNull' {$statusCode = 'ScheduleTypeMismatch'} - 'Schedule_WeeklyRecurrentScheduleNonNull' {$statusCode = 'ScheduleTypeMismatch'} - 'ScheduleRecurrenceRange_InvalidType' {$statusCode = 'InvalidRecurrenceRangeType'} - 'ScheduleRecurrenceRange_UnsupportedType' {$statusCode = 'InvalidRecurrenceRangeType'} - 'ScheduleRecurrenceRange_NonPositiveRange' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} - 'ScheduleRecurrenceRange_EndDateTimeNull' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} - 'ScheduleRecurrenceRange_EndDateTimeNonNull' {$statusCode = 'InvalidRecurrenceRangeEndDateTime'} - 'ScheduleRecurrenceRange_NumberOfOccurrencesZero' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} - 'ScheduleRecurrenceRange_NumberOfOccurrencesNull' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} - 'ScheduleRecurrenceRange_NumberOfOccurrencesNonNull' {$statusCode = 'InvalidRecurrenceNumberOfOccurrences'} - 'TimeRange_InvalidTimeRange' {$statusCode = 'InvalidTimeRange'} - 'TimeRange_InvalidTimeRangeBound' {$statusCode = 'InvalidTimeRangeBound'} - 'WeeklyRecurrentSchedule_EmptySchedule' {$statusCode = 'EmptyWeeklyRecurrentSchedule'} - 'WeeklyRecurrentSchedule_InvalidTimeRangeBoundariesAlignment' {$statusCode = 'InvalidTimeRangeBoundariesAlignment'} - 'WeeklyRecurrentSchedule_OverlappingTimeRanges' {$statusCode = 'TimeRangesOverlapping'} - 'WeeklyRecurrentSchedule_TooManyTimeRangesPerDay' {$statusCode = 'TooManyTimeRangesForDay'} - 'WeeklyRecurrentSchedule_RecurrenceRangeNull' {$statusCode = 'ScheduleRecurrenceRangeNull'} - } - - $statusCode - } -} - -# Asp.Net 4.0+ considers these eight characters (<, >, *, %, &, :, \, and ?) as the default -# potential dangerous characters in the URL which may be used in XSS attacks. -# A SIP URI (sip:user@domain.com:port) usually startswith SIP prefix (sip:). This COLON (:) -# in prefix needs to be replaced with something that is not invalid. -# Also, as the last parameter in the URI is "identity", it can not have Dots (.) -# For these reasons we wrote this custom method. -function EncodeSipUri { - param( - $Identity - ) - - if ($Identity -eq $null) - { - return - } - - $Identity = $Identity.replace(':', "[COLON]") - $Identity = $Identity.replace('.', "[DOT]") - - return $Identity -} - -# SIG # Begin signature block -# MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBIzgYBO9cwSOta -# qQrIdA0xrme0aWPoNiYVqVkWCcHICqCCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# 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 -# 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 -# 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 deleted file mode 100644 index 8d65d2ee6a4eb..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/custom/Microsoft.Teams.ConfigAPI.Cmdlets.custom.psm1 +++ /dev/null @@ -1,236 +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 -# 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/7.4.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 deleted file mode 100644 index 9d883dfb0e425..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll-Help.xml +++ /dev/null @@ -1,51267 +0,0 @@ - - - - - Get-CsExternalAccessPolicy - 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. - 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/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. - - - - Get-CsExternalAccessPolicy - - 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. - 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. - - UserIdParameter - - UserIdParameter - - - None - - - Filter - - 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 - - String - - - None - - - Include - - > Applicable: Microsoft Teams - PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly - - PolicyFilter - - PolicyFilter - - - 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 - - Guid - - - None - - - - Get-CsExternalAccessPolicy - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - 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. - 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. - - UserIdParameter - - UserIdParameter - - - None - - - Include - - > Applicable: Microsoft Teams - PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly - - PolicyFilter - - PolicyFilter - - - 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 - - Guid - - - None - - - - - - 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. - 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. - - UserIdParameter - - UserIdParameter - - - None - - - Filter - - 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 - - String - - - None - - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - Include - - > Applicable: Microsoft Teams - PARAMVALUE: Automatic | All | SubscriptionDefaults | TenantDefinedOnly - - PolicyFilter - - PolicyFilter - - - 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 - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Get-CsExternalAccessPolicy - - Example 1 returns a collection of all the external access policies configured for use in your organization. Calling the Get-CsExternalAccessPolicy cmdlet without any additional parameters always returns the complete collection of external access policies. - - - - ------------ 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) ---------- - 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. - - - - -------------------------- Example 3 -------------------------- - Get-CsExternalAccessPolicy -Filter tag:* - - The command shown in Example 3 uses the Filter parameter to return all of the external access policies that have been configured at the per-user scope; the parameter value "tag:*" limits returned data to those policies that have an Identity that begins with the string value "tag:". By definition, any policy that has an Identity beginning with "tag:" is a policy that has been configured at the per-user scope. - - - - -------------------------- Example 4 -------------------------- - Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True} - - In Example 4, the Get-CsExternalAccessPolicy cmdlet and the Where-Object cmdlet are used to return all the external access policies that grant users federation access. To do this, the Get-CsExternalAccessPolicy cmdlet is first used to return a collection of all the external access policies currently in use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the EnableFederationAccess property is equal to True. - - - - -------------------------- Example 5 -------------------------- - Get-CsExternalAccessPolicy | Where-Object {$_.EnableFederationAccess -eq $True -and $_.EnablePublicCloudAccess -eq $True} - - The command shown in Example 5 returns the external access policies that meet two criteria: both federation access and public cloud access are allowed. In order to perform this task, the command first uses the Get-CsExternalAccessPolicy cmdlet to return a collection of all the access policies in use in the organization. That collection is then piped to the Where-Object cmdlet, which picks out only those policies that meet two criteria: the EnableFederationAccess property must be equal to True and the EnablePublicCloudAccess property must also be equal to True. Only policies in which both EnableFederationAccess and EnablePublicCloudAccess are True will be returned and displayed on the screen. - - - - -------------------------- EXAMPLE 6 -------------------------- - Get-CsExternalAccessPolicy -ApplicableTo "kenmyer@litwareinc.com" - - In Example 6, the ApplicableTo parameter is used to return only the policies that can be assigned to the user "kenmyer@litwareinc.com". - NOTE: The ApplicableTo parameter can only be used with Skype for Business Online; that's because, with Skype for Business Online, there might be policies that cannot be assigned to certain users due to licensing and/or country/region restrictions. - NOTE: This command requires the Office 365 UsageLocation property to be configured for the user's Active Directory user account. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy - - - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy - - - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy - - - Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy - - - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy - - - - - - Get-CsOnlineVoicemailPolicy - Get - CsOnlineVoicemailPolicy - - Use the `Get-CsOnlineVoicemailPolicy` cmdlet to get a list of all pre-configured policy instances related to Cloud Voicemail service. - - - - This cmdlet retrieves information about one or more voicemail policies that have been configured for use in your organization. Voicemail policies are used by the organization to manage Voicemail-related features such as transcription. - - - - Get-CsOnlineVoicemailPolicy - - 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 - - String - - - None - - - 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 - - String - - - None - - - - - - 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 - - String - - - None - - - 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 - - String - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Policy.OnlineVoicemail.OnlineVoicemailPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineVoicemailPolicy - - In Example 1, the Get-CsOnlineVoicemailPolicy cmdlet is called without any additional parameters; this returns a collection of all the voicemail policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineVoicemailPolicy -Identity TranscriptionDisabled - - In Example 2, the Get-CsOnlineVoicemailPolicy cmdlet is used to return the per-user voicemail policy that has an Identity TranscriptionDisabled. Because identities are unique, this command will never return more than one item. - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineVoicemailPolicy -Filter "tag:*" - - Example 3 uses the Filter parameter to return all the voicemail policies that have been configured at the per-user scope. The filter value "tag:*" tells the Get-CsOnlineVoicemailPolicy cmdlet to return only those policies that have an Identity that begins with the string value "tag:". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy - - - Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy - - - New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy - - - Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy - - - Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy - - - - - - Get-CsPrivacyConfiguration - Get - CsPrivacyConfiguration - - Returns information about the privacy configuration settings currently in use in your organization. Privacy configuration settings help determine how much information users make available to other users. This cmdlet was introduced in Lync Server 2010. - - - - Skype for Business Server gives users the opportunity to share a wealth of presence information with other people: they can publish a photograph of themselves; they can provide detailed location information; they can have presence information automatically made available to everyone in the organization (as opposed to having this information available only to people on their Contacts list). - Some users will welcome the opportunity to make this information available to their colleagues; other users might be more reluctant to share this data. (For example, many people might be hesitant about having their photo included in their presence data.) As a general rule, users have control over what information they will (or will not) share; for example, users can select or clear a check box in order to control whether or not their location information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the property AutoInitiateContacts is set to True, then team members will automatically be added to each user's Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list. - In other cases, administrators can configure the default values in Skype for Business Server while still giving users the right to change these values. For example, by default location data is published for users, although users do have the right to stop location publication. By setting the PublishLocationDataByDefault property to False, administrators can change this behavior: in that case, location data will not be published by default, although users will still have the right to publish this data if they choose. - Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only for the User Server service). The Get-CsPrivacyConfiguration cmdlet enables you to retrieve information about all the privacy configuration settings currently in use in your organization. - - - - Get-CsPrivacyConfiguration - - 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: - `-Identity site:Redmond` - To modify settings at the service level, use syntax like this: - `-Identity service:UserServer:atl-cs-001.litwareinc.com` - If this parameter is not specified then the Get-CsPrivacyConfiguration cmdlet returns all the privacy configuration settings currently in use in your organization. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - - 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"` - You can return the tenant ID for each of your tenants 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. - - Guid - - Guid - - - None - - - - - - 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: - `-Identity site:Redmond` - To modify settings at the service level, use syntax like this: - `-Identity service:UserServer:atl-cs-001.litwareinc.com` - If this parameter is not specified then the Get-CsPrivacyConfiguration cmdlet returns all the privacy configuration settings currently in use in your organization. - - XdsIdentity - - XdsIdentity - - - 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 - - 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"` - You can return the tenant ID for each of your tenants 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. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsPrivacyConfiguration - - The command shown in Example 1 returns all the privacy configuration settings currently in use in the organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsPrivacyConfiguration -Identity site:Redmond - - Example 2 returns a single collection of privacy configuration settings: the settings that have the Identity site:Redmond. - - - - -------------------------- Example 3 -------------------------- - Get-CsPrivacyConfiguration -Filter "site:*" - - In Example 3, information is returned for all the privacy configuration settings that have been assigned to the site scope. To do this, the Filter parameter is included, along with the filter value "site:*". That filter value ensures that only settings where the Identity (the only property you can filter on) begins with the characters "site:". - - - - -------------------------- Example 4 -------------------------- - Get-CsPrivacyConfiguration | Where-Object {$_.EnablePrivacyMode -eq $True} - - The command shown in Example 4 returns information about all the privacy configuration settings where privacy mode has been enabled. This is done by first calling the Get-CsPrivacyConfiguration cmdlet without any parameters in order to return a collection of all the privacy settings. This collection is then piped to the Where-Object cmdlet, which picks out only those settings where the EnablePrivacyMode property is equal to True. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csprivacyconfiguration - - - New-CsPrivacyConfiguration - - - - Remove-CsPrivacyConfiguration - - - - Set-CsPrivacyConfiguration - - - - - - - Get-CsTeamsAcsFederationConfiguration - Get - CsTeamsAcsFederationConfiguration - - This cmdlet is used to retrieve the federation configuration between Teams and Azure Communication Services. - - - - 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-CsTeamsAcsFederationConfiguration - - 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 - - - - Get-CsTeamsAcsFederationConfiguration - - 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 - - - - - - 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 - - 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 - - - - - - - - - - - - -------------------------- 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 - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsAIPolicy - - Retrieves Teams AI policies and shows "EnrollFace", "EnrollVoice" and "SpeakerAttributionBYOD" values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsAIPolicy - - - New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy - - - Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy - - - Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy - - - Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy - - - - - - Get-CsTeamsAppPermissionPolicy - Get - CsTeamsAppPermissionPolicy - - 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>. This is only applicable for tenants who have not been migrated to ACM or UAM. - - - - Get-CsTeamsAppPermissionPolicy - - Filter - - Do not use - - String - - String - - - None - - - LocalStore - - Do not use. - - - SwitchParameter - - - False - - - Tenant - - {{Fill Tenant Description}} - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsAppPermissionPolicy - - Identity - - Name of the app setup permission policy. If empty, all identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use. - - - SwitchParameter - - - False - - - Tenant - - {{Fill Tenant Description}} - - System.Guid - - System.Guid - - - None - - - - - - Filter - - Do not use - - String - - String - - - None - - - Identity - - Name of the app setup permission policy. If empty, all identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - {{Fill Tenant Description}} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsAppPermissionPolicy -Identity Global - -Identity : Global -DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} -GlobalCatalogApps : {} -PrivateCatalogApps : {} -Description : -DefaultCatalogAppsType : AllowedAppList -GlobalCatalogAppsType : AllowedAppList -PrivateCatalogAppsType : AllowedAppList - - Get the global Teams app permission policy. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsAppPermissionPolicy - -Identity : Global -DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} -GlobalCatalogApps : {} -PrivateCatalogApps : {} -Description : -DefaultCatalogAppsType : AllowedAppList -GlobalCatalogAppsType : AllowedAppList -PrivateCatalogAppsType : AllowedAppList - -Identity : Tag:test -DefaultCatalogApps : {Id=26bc2873-6023-480c-a11b-76b66605ce8c, Id=0d820ecd-def2-4297-adad-78056cde7c78, Id=com.microsoft.teamspace.tab.planner} -GlobalCatalogApps : {} -PrivateCatalogApps : {} -Description : -DefaultCatalogAppsType : AllowedAppList -GlobalCatalogAppsType : AllowedAppList -PrivateCatalogAppsType : AllowedAppList - - Get all the Teams app permission policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsapppermissionpolicy - - - - - - Get-CsTeamsAppSetupPolicy - Get - CsTeamsAppSetupPolicy - - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important 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 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>. - - - - Get-CsTeamsAppSetupPolicy - - Filter - - Do not use. - - String - - String - - - None - - - LocalStore - - Do not use. - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsAppSetupPolicy - - Identity - - Name of App setup policy. If empty, all Identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use. - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - Do not use. - - String - - String - - - None - - - Identity - - Name of App setup policy. If empty, all Identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsAppSetupPolicy -Identity Global - -Identity : Global -AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} -PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} -PinnedMessageBarApps : {} -AppPresetMeetingList : {} -Description : -AllowSideLoading : True -AllowUserPinning : True - - Get all the Teams App Setup Policies. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsAppSetupPolicy - -Identity : Global -AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} -PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} -PinnedMessageBarApps : {} -AppPresetMeetingList : {} -Description : -AllowSideLoading : True -AllowUserPinning : True - -Identity : Tag:Set-test -AppPresetList : {Id=d2c6f111-ffad-42a0-b65e-ee00425598aa} -PinnedAppBarApps : {Id=14d6962d-6eeb-4f48-8890-de55454bb136;Order=1, Id=86fcd49b-61a2-4701-b771-54728cd291fb;Order=2, Id=2a84919f-59d8-4441-a975-2a8c2643b741;Order=3, Id=ef56c0de-36fc-4ef8-b417-3d82ba9d073c;Order=4...} -PinnedMessageBarApps : {} -AppPresetMeetingList : {} -Description : -AllowSideLoading : True -AllowUserPinning : True - - Get all the Teams App Setup Policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsappsetuppolicy - - - - - - Get-CsTeamsCallHoldPolicy - Get - CsTeamsCallHoldPolicy - - Returns information about the policies configured to customize the call hold experience for Teams clients. - - - - Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. - Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. - - - - Get-CsTeamsCallHoldPolicy - - Filter - - Enables you to use wildcards when retrieving one or more Teams call hold policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - - Get-CsTeamsCallHoldPolicy - - Identity - - Unique identifier of the Teams call hold 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 "ContosoPartnerCallHoldPolicy"` - You cannot use wildcard characters when specifying the Identity. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcards when retrieving one or more Teams call hold policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - Identity - - Unique identifier of the Teams call hold 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 "ContosoPartnerCallHoldPolicy"` - You cannot use wildcard characters when specifying the Identity. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsCallHoldPolicy - - The command shown in Example 1 returns information for all the Teams call hold policies configured for use in the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsCallHoldPolicy -Identity 'ContosoPartnerCallHoldPolicy' - - In Example 2, information is returned for a single Teams call hold policy: the policy with the Identity ContosoPartnerCallHoldPolicy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsCallHoldPolicy -Filter 'Tag:*' - - The command shown in Example 3 returns information about all the Teams call hold policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy - - - New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy - - - Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy - - - Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy - - - Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy - - - - - - Get-CsTeamsCallingPolicy - Get - CsTeamsCallingPolicy - - Returns information about the teams calling policies configured for use in your organization. Teams calling policies help determine which users are able to use calling functionality within Microsoft Teams. - - - - Returns information about the teams calling policies configured for use in your organization. Teams calling policies help determine which users are able to use calling functionality within Microsoft Teams and interoperability with Skype for Business. - - - - Get-CsTeamsCallingPolicy - - Identity - - Specify the TeamsCallingPolicy 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 - - - - - - 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 TeamsCallingPolicy that you would like to retrieve. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsCallingPolicy -Identity SalesCallingPolicy - - Retrieves the calling policy with the Identity "SalesCallingPolicy". - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsCallingPolicy -Filter "tag:Sales*" - - Retrieves the calling policies with Identity starting with Sales. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy - - - Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy - - - Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy - - - Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy - - - New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy - - - - - - Get-CsTeamsChannelsPolicy - Get - CsTeamsChannelsPolicy - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. - - - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. The Get-CsTeamsChannelsPolicy returns policies that are available for use within your organization. - - - - Get-CsTeamsChannelsPolicy - - 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 - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsChannelsPolicy - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - 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 - - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsChannelsPolicy - - Retrieves all policies related to Teams & Channels that are available in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy - - - - - - Get-CsTeamsClientConfiguration - Get - CsTeamsClientConfiguration - - This cmdlet allows IT admins to retrieve the effective configuration for their organization. - - - - 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. - Use in conjunction with Set-CsTeamsClientConfiguration to update the settings in your organization. - - - - Get-CsTeamsClientConfiguration - - Filter - - Microsoft internal use only. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsClientConfiguration - - Identity - - The only valid input is Global, as you can have only one effective configuration in your organization. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - Microsoft internal use only. - - String - - String - - - None - - - Identity - - The only valid input is Global, as you can have only one effective configuration in your organization. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsClientConfiguration - - Retrieves the effective client configuration in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsclientconfiguration - - - - - - Get-CsTeamsComplianceRecordingApplication - 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. - - - - 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. - 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. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. - - - - Get-CsTeamsComplianceRecordingApplication - - Filter - - Enables you to use wildcards when retrieving one or more application instances of policy-based recording applications. For example, to return all the application instances associated with Teams recording policies at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - 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 - - - - Get-CsTeamsComplianceRecordingApplication - - Identity - - Unique identifier of the application instance of a policy-based recording application to be retrieved. - You cannot use wildcard characters when specifying the Identity. - 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. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - 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 - - - - - - Filter - - Enables you to use wildcards when retrieving one or more application instances of policy-based recording applications. For example, to return all the application instances associated with Teams recording policies at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - Identity - - Unique identifier of the application instance of a policy-based recording application to be retrieved. - You cannot use wildcard characters when specifying the Identity. - 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. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - SwitchParameter - - SwitchParameter - - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication - - The command shown in Example 1 returns information for all the application instances of policy-based recording applications associated with Teams recording policies. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144' - - In Example 2, information is returned for a single application instance of a policy-based recording application with the Identity Tag:ContosoPartnerComplianceRecordingPolicy/39dc3ede-c80e-4f19-9153-417a65a1f144. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication -Filter 'Tag:*' - - The command shown in Example 3 returns all the application instances associated with Teams recording policies at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". - - - - -------------------------- Example 4 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication -Filter 'Tag:ContosoPartnerComplianceRecordingPolicy*' - - The command shown in Example 4 returns all the application instances associated with Teams recording policy with Identity ContosoPartnerComplianceRecordingPolicy. To do this, the command uses the Filter parameter and the filter value "Tag:ContosoPartnerComplianceRecordingPolicy*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:ContosoPartnerComplianceRecordingPolicy". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Get-CsTeamsComplianceRecordingPolicy - Get - CsTeamsComplianceRecordingPolicy - - Returns information about the policies configured for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - Teams recording policies 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 record audio, video and video-based screen sharing activity. - Note that if neither the Identity nor the Filter parameters are specified, then Get-CsTeamsComplianceRecordingPolicy returns all the Teams recording policies configured for use in the tenant. - Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. - 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. - Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. - - - - Get-CsTeamsComplianceRecordingPolicy - - Filter - - Enables you to use wildcards when retrieving one or more Teams recording policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - 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 - - - - Get-CsTeamsComplianceRecordingPolicy - - Identity - - Unique identifier of the Teams recording 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 "ContosoPartnerComplianceRecordingPolicy" - You cannot use wildcard characters when specifying the Identity. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - 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 - - - - - - Filter - - Enables you to use wildcards when retrieving one or more Teams recording policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "Tag:*" - - String - - String - - - None - - - Identity - - Unique identifier of the Teams recording 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 "ContosoPartnerComplianceRecordingPolicy" - You cannot use wildcard characters when specifying the Identity. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - This parameter is reserved for internal Microsoft use. - - SwitchParameter - - SwitchParameter - - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingPolicy - - The command shown in Example 1 returns information for all the Teams recording policies configured for use in the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' - - In Example 2, information is returned for a single Teams recording policy: the policy with the Identity ContosoPartnerComplianceRecordingPolicy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingPolicy -Filter 'Tag:*' - - The command shown in Example 3 returns information about all the Teams recording policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "Tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "Tag:". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Get-CsTeamsCustomBannerText - Get - CsTeamsCustomBannerText - - Enables administrators to configure a custom text on the banner displayed when compliance recording bots start recording the call. - - - - Returns all or a single instance of custom banner text. - - - - Get-CsTeamsCustomBannerText - - Identity - - > Applicable: Microsoft Teams - Policy instance name (optional). - - String - - String - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - Policy instance name (optional). - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsCustomBannerText - - This example gets the properties of all instances of the TeamsCustomBannerText. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsCustomBannerText -Identity CustomText - - This example gets the properties of the CustomText instance of TeamsCustomBannerText. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscustombannertext - - - Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext - - - New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext - - - Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext - - - - - - Get-CsTeamsEducationAssignmentsAppPolicy - Get - CsTeamsEducationAssignmentsAppPolicy - - 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. At this time, you can only modify your global policy - this policy type does not support user-level custom policies. - - - - Get-CsTeamsEducationAssignmentsAppPolicy - - Filter - - Not applicable - you cannot create custom policies, so will always be retrieving the global policy for your organization. - - String - - String - - - None - - - LocalStore - - Internal use only. - - - SwitchParameter - - - False - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsEducationAssignmentsAppPolicy - - Identity - - The only value supported is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal use only. - - - SwitchParameter - - - False - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - Not applicable - you cannot create custom policies, so will always be retrieving the global policy for your organization. - - String - - String - - - None - - - Identity - - The only value supported is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsEducationAssignmentsAppPolicy - - Retrieves the policy in your organization - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationassignmentsapppolicy - - - - - - Get-CsTeamsEducationConfiguration - Get - CsTeamsEducationConfiguration - - This cmdlet is used to retrieve the organization-wide education configuration for Teams. - - - - This cmdlet is used to retrieve the organization-wide education configuration for Teams which contains settings that are applicable to education organizations. - You must be a Teams Service Administrator for your organization to run the cmdlet. - - - - Get-CsTeamsEducationConfiguration - - Filter - - Enables you to use wildcard characters in order to return a collection of team education configuration settings. - - String - - String - - - None - - - - Get-CsTeamsEducationConfiguration - - Identity - - The unique identifier of the configuration. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters in order to return a collection of team education configuration settings. - - String - - String - - - None - - - Identity - - The unique identifier of the configuration. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsEducationConfiguration - -Identity : Global -ParentGuardianPreferredContactMethod : Email -UpdateParentInformation : Enabled - - In this example, the organization has set the defaults as follows: - - Email is set as the preferred contact method for the parent communication invites. - - Capability to edit parent contact information by educators is enabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration - - - Set-CsTeamsEducationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration - - - - - - Get-CsTeamsEmergencyCallingPolicy - Get - CsTeamsEmergencyCallingPolicy - - - - - - This cmdlet returns one or more emergency calling policies. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. - - - - Get-CsTeamsEmergencyCallingPolicy - - Filter - - The Filter parameter allows you to limit the number of results based on filters on Identity you specify. - - String - - String - - - None - - - - Get-CsTeamsEmergencyCallingPolicy - - Identity - - Specify the policy that you would like to retrieve. - - String - - String - - - None - - - - - - Filter - - The Filter parameter allows you to limit the number of results based on filters on Identity you specify. - - String - - String - - - None - - - Identity - - Specify the policy that you would like to retrieve. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsEmergencyCallingPolicy - - Retrieves all emergency calling policies that are available in your scope. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsEmergencyCallingPolicy -Identity TestECP - - Retrieves an emergency calling policy with the identity TestECP - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsEmergencyCallingPolicy -Filter Test* - - Retrieves all emergency calling policies with Identity starting with Test. - - - - -------------------------- Example 4 -------------------------- - (Get-CsTeamsEmergencyCallingPolicy -Identity TestECP).ExtendedNotifications - -EmergencyDialString : 112 -NotificationGroup : alert2@contoso.com -NotificationDialOutNumber : -NotificationMode : ConferenceUnMuted - -EmergencyDialString : 911 -NotificationGroup : alert3@contoso.com -NotificationDialOutNumber : +14255551234 -NotificationMode : NotificationOnly - - This example displays extended notifications set on emergency calling policy with the identity TestECP. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy - - - Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy - - - Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - - - - Get-CsTeamsEventsPolicy - Get - CsTeamsEventsPolicy - - Returns information about the Teams Events policy. Note that this policy is currently still in preview. - - - - Returns information about the Teams Events policy. TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - Get-CsTeamsEventsPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsEventsPolicy - - Returns information for all Teams Events policies available for use in the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsEventsPolicy -Identity Global - - Returns information for Teams Events policy with identity "Global". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy - - - - - - Get-CsTeamsExternalAccessConfiguration - Get - CsTeamsExternalAccessConfiguration - - This cmdlet returns the current settings of your organization. - - - - Retrieves the current Teams External Access Configuration in the organization. - - - - Get-CsTeamsExternalAccessConfiguration - - Identity - - The only value accepted is Global - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Internal Microsoft use. - - String - - String - - - None - - - - - - Filter - - Internal Microsoft use. - - String - - String - - - None - - - Identity - - The only value accepted is Global - - XdsIdentity - - XdsIdentity - - - None - - - - - - None - - - - - - - - - - TeamsExternalAccessConfiguration.Cmdlets.TeamsExternalAccessConfiguration - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsExternalAccessConfiguration - - In this example, we retrieve the Teams External Access Configuration in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsexternalaccessconfiguration - - - - - - Get-CsTeamsFeedbackPolicy - Get - CsTeamsFeedbackPolicy - - Use this cmdlet to retrieve the current Teams Feedback policies (the ability to send feedback about Teams to Microsoft and whether they receive the survey) in the organization. - - - - Retrieves the current Teams Feedback policies (the ability to send feedback about Teams to Microsoft and whether they receive the survey) in the organization. - - - - Get-CsTeamsFeedbackPolicy - - Filter - - Internal Microsoft use - - String - - String - - - None - - - - Get-CsTeamsFeedbackPolicy - - Identity - - The unique identifier of the policy. - - String - - String - - - None - - - - - - Filter - - Internal Microsoft use - - String - - String - - - None - - - Identity - - The unique identifier of the policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsFeedbackPolicy - - In this example, we retrieve all the existing Teams feedback policies in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfeedbackpolicy - - - - - - Get-CsTeamsFilesPolicy - Get - CsTeamsFilesPolicy - - Get a list of all pre-configured policy instances related to teams files. - - - - This cmdlet retrieves information about one or more teams files policies that have been configured for use in your organization. teams files policies are used by the organization to manage files-related features such as third party storage provider for files from teams. - - - - Get-CsTeamsFilesPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsFilesPolicy - - Identity - - 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 - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - 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 - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsFilesPolicy - - In Example 1, the Get-CsTeamsFilesPolicy cmdlet is called without any additional parameters; this returns a collection of all the teams files policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsFilesPolicy -Identity TranscriptionDisabled - - In Example 2, the Get-CsTeamsFilesPolicy cmdlet is used to return the per-user teams files policy that has an Identity TranscriptionDisabled. Because identities are unique, this command will never return more than one item. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsFilesPolicy -Filter "tag:*" - - Example 3 uses the Filter parameter to return all the teams files policies that have been configured at the per-user scope. The filter value "tag:*" tells the Get-CsTeamsFilesPolicy cmdlet to return only those policies that have an Identity that begins with the string value "tag:". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy - - - - - - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - Get - CsTeamsFirstPartyMeetingTemplateConfiguration - - This cmdlet fetches the first-party meeting templates stored on the tenant. - - - - Fetches the list of first-party templates on the tenant. Each template object contains its list of meeting options, the name of the template, and its ID. - This is a read-only configuration. - - - - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - - 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. - - String - - String - - - None - - - - - - 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. - - String - - String - - - None - - - - - - - - - - - - Example 1 - Fetching all first party meeting templates on the tenant - PS C:\> Get-CsTeamsFirstPartyMeetingTemplateConfiguration - -Identity : Global -TeamsMeetingTemplates : {default, firstparty_30d773c0-1b4e-4bf6-970b-73f544c054bb, - firstparty_399f69a3-c482-41bf-9cf7-fcdefe269ce6, - firstparty_64c92390-c8a2-471e-96d9-4ee8f6080155...} -Description : The `TeamsMeetingTemplates` property contains the meeting template details: - -TeamsMeetingOptions : {SelectedSensitivityLabel, AutoAdmittedUsers, AllowPstnUsersToBypassLobby, - EntryExitAnnouncementsEnabled...} -Description : Townhall -Name : firstparty_21f91ef7-6265-4064-b78b-41ab66889d90 -Category : - -TeamsMeetingOptions : {AutoRecordingEnabled, AllowMeetingChat, PresenterOption} -Description : Virtual appointment -Name : firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748 -Category : - - Fetches all the first-party templates on the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsFirstPartyMeetingTemplateConfiguration - - - Get-CsTeamsMeetingTemplateConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplateconfiguration - - - - - - Get-CsTeamsMediaConnectivityPolicy - Get - CsTeamsMediaConnectivityPolicy - - This cmdlet retrieves all Teams media connectivity policies for the current tenant. - - - - This cmdlet retrieves all Teams media connectivity policies for the current tenant. - - - - Get-CsTeamsMediaConnectivityPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - - Get-CsTeamsMediaConnectivityPolicy - - Identity - - The identity of the Teams Media Connectivity Policy. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - The identity of the Teams Media Connectivity Policy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMediaConnectivityPolicy - -Identity DirectConnection --------- ---------------- -Tag:Test Enabled - - This example retrieves the Teams media connectivity policies and shows the result as identity tag and "DirectConnection" value. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMediaConnectivityPolicy - - - New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy - - - Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy - - - Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy - - - Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy - - - - - - Get-CsTeamsMeetingBrandingPolicy - Get - CsTeamsMeetingBrandingPolicy - - The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - The `Get-CsTeamsMeetingBrandingPolicy` cmdlet enables you to return information about all the meeting branding policies that have been configured for use in your organization. - - - - Get-CsTeamsMeetingBrandingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - - Get-CsTeamsMeetingBrandingPolicy - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: `-Identity global`. If this parameter is omitted, then all the meeting branding policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: `-Identity global`. If this parameter is omitted, then all the meeting branding policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - - TeamsMeetingBrandingPolicy.Cmdlets.TeamsMeetingBrandingPolicy - - - - - - - - - Available in Teams PowerShell Module 4.9.3 and later. - - - - - ----------------- Return all branding policies ----------------- - PS C:\> Get-CsTeamsMeetingBrandingPolicy - - In this example, the command returns a collection of all the teams meeting branding policies configured for use in your organization. - - - - ------------------- Return specified policy ------------------- - PS C:\> CsTeamsMeetingBrandingPolicy -Identity "policy test2" - - In this example, the command returns the meeting branding policy that has an Identity `policy test 2`. Because identities are unique, this command will never return more than one item. - - - - - - Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy - - - Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - - - - Get-CsTeamsMeetingConfiguration - Get - CsTeamsMeetingConfiguration - - The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. - - - - The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. Use this cmdlet to retrieve the configuration set in your organization. - - - - Get-CsTeamsMeetingConfiguration - - Identity - - The only valid input is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Internal Microsoft use - - String - - String - - - None - - - LocalStore - - Internal Microsoft use - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - Filter - - Internal Microsoft use - - String - - String - - - None - - - Identity - - The only valid input is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMeetingConfiguration - - Returns the configuration set in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingconfiguration - - - - - - Get-CsTeamsMeetingPolicy - Get - 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 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 - Teams Meeting policies can be configured at the global and per-user scopes. The Get-CsTeamsMeetingPolicy cmdlet enables you to return information about all the meeting policies that have been configured for use in your organization. - - - - Get-CsTeamsMeetingPolicy - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - LocalStore - - {{ Fill LocalStore Description }} - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - {{ Fill LocalStore Description }} - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsMeetingPolicy - - In Example 1, Get-CsTeamsMeetingPolicy is called without any additional parameters; this returns a collection of all the teams meeting policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsMeetingPolicy -Identity SalesPolicy - - In Example 2, Get-CsTeamsMeetingPolicy is used to return the per-user meeting policy that has an Identity SalesPolicy. Because identities are unique, this command will never return more than one item. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsMeetingPolicy | Where-Object {$_.AllowMeetNow -eq $True} - - The preceding command returns a collection of all the meeting policies where the AllowMeetNow property is True. To do this, Get-CsTeamsMeetingPolicy is first called without any parameters in order to return a collection of all the policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the AllowMeetNow property is equal to True. - - - - -------------------------- Example 4 -------------------------- - Get-CsTeamsMeetingPolicy -Identity Global | fl NewMeetingRecordingExpirationDays - -NewMeetingRecordingExpirationDays : 60 - - The above command returns expiration date setting currently applied on TMR. For more details, see: Auto-expiration of Teams meeting recordings (https://learn.microsoft.com/microsoftteams/cloud-recording#auto-expiration-of-teams-meeting-recordings). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingpolicy - - - - - - Get-CsTeamsMeetingTemplateConfiguration - Get - CsTeamsMeetingTemplateConfiguration - - This cmdlet fetches the custom meeting templates stored on the tenant. - - - - Fetches the list of custom templates on the tenant. Each template object contains its list of meeting options, the name of the template, and its ID. - - - - Get-CsTeamsMeetingTemplateConfiguration - - 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. - - String - - String - - - None - - - - - - 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. - - String - - String - - - None - - - - - - - - - - - - Example 1 - Fetching all custom meeting templates on the tenant - PS C:\> Get-CsTeamsMeetingTemplateConfiguration - -Identity : Global -TeamsMeetingTemplates : {default, customtemplate_1cb7073a-8b19-4b5d-a3a6-14737d006969, - customtemplate_21ecf22c-eb1a-4f05-93e0-555b994ebeb5, - customtemplate_0b9c1f57-01ec-4b8a-b4c2-08bd1c01e6ba...} -Description : The `TeamsMeetingTemplates` property contains the meeting template details: - -TeamsMeetingOptions : {SelectedSensitivityLabel, AutoAdmittedUsers, AllowPstnUsersToBypassLobby, - EntryExitAnnouncementsEnabled...} -Description : Custom Template 1 -Name : customtemplate_1cb7073a-8b19-4b5d-a3a6-14737d006969 -Category : - -TeamsMeetingOptions : {AutoRecordingEnabled, AllowMeetingChat, PresenterOption} -Description : Custom Template 2 -Name : customtemplate_21ecf22c-eb1a-4f05-93e0-555b994ebeb5 -Category : - - Fetches all the custom templates on the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplateConfiguration - - - Get-CsTeamsFirstPartyMeetingTemplateConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfirstpartymeetingtemplateconfiguration - - - - - - Get-CsTeamsMeetingTemplatePermissionPolicy - Get - CsTeamsMeetingTemplatePermissionPolicy - - Fetches the TeamsMeetingTemplatePermissionPolicy. This policy can be used to hide meeting templates from users and groups. - - - - Fetches the instances of the policy. Each policy object contains a property called `HiddenMeetingTemplates`.This array contains the list of meeting template IDs that will be hidden by that instance of the policy. - - - - Get-CsTeamsMeetingTemplatePermissionPolicy - - Filter - - > Applicable: Microsoft Teams - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - - - - - - - -------------- Example 1 - Fetching all policies -------------- - PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy - -Identity : Global -HiddenMeetingTemplates : {} -Description : - -Identity : Tag:Foobar -HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} -Description : - -Identity : Tag:dashbrd test -HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} -Description : test - -Identity : Tag:Default -HiddenMeetingTemplates : {} -Description : - - Fetches all the policy instances currently available. - - - - -- Example 2 - Fetching a specific policy using its identity -- - PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar - -Identity : Tag:Foobar -HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} -Description : - - Fetches an instance of a policy with known identity. - - - - ---------- Example 3 - Fetching policies using regex ---------- - PS C:\> Get-CsTeamsMeetingTemplatePermissionPolicy -Filter *Foo* - -Identity : Tag:Foobar -HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056} -Description : - - The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. - Note: The "Tag:" prefix can be ignored when specifying the identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMeetingTemplatePermissionPolicy - - - Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy - - - New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy - - - - - - Get-CsTeamsMessagingConfiguration - Get - CsTeamsMessagingConfiguration - - TeamsMessagingConfiguration determines the messaging settings for users. This cmdlet returns your organization's current settings. - - - - TeamsMessagingConfiguration determines the messaging settings for users. - - - - Get-CsTeamsMessagingConfiguration - - Filter - - Enables you to use wildcard characters in order to return a collection of tenant messaging configuration settings. Because each tenant is limited to a single, global collection of the messaging configuration settings there is no need to use the Filter parameter. - - String - - String - - - None - - - - Get-CsTeamsMessagingConfiguration - - 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 - - - - - - Filter - - Enables you to use wildcard characters in order to return a collection of tenant messaging configuration settings. Because each tenant is limited to a single, global collection of the messaging configuration settings there is no need to use the Filter parameter. - - String - - String - - - None - - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMessagingConfiguration - - The command shown in Example 1 returns teams messaging configuration information for the current tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsTeamsMessagingConfiguration - - - Set-CsTeamsMessagingConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingconfiguration - - - - - - Get-CsTeamsMessagingPolicy - Get - CsTeamsMessagingPolicy - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. - - - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet lets you retrieve messaging policies that are available for use within your organization. - - - - Get-CsTeamsMessagingPolicy - - Identity - - Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity StudentMessagingPolicy. - If this parameter is not included, the Get-CsTeamsMessagingPolicy cmdlet will return a collection of all the teams messaging policies configured for use in your organization. - Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a messaging policy. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Enables you to use wildcard characters when specifying the policy (or policies) to be returned. - - String - - String - - - None - - - LocalStore - - {{ Fill LocalStore Description }} - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - Filter - - Enables you to use wildcard characters when specifying the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity StudentMessagingPolicy. - If this parameter is not included, the Get-CsTeamsMessagingPolicy cmdlet will return a collection of all the teams messaging policies configured for use in your organization. - Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a messaging policy. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - {{ Fill LocalStore Description }} - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - powershell -PS C:\> Get-CsTeamsMessagingPolicy - - In this example all teams messaging policies that have been configured in the organization will be returned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingpolicy - - - - - - Get-CsTeamsMultiTenantOrganizationConfiguration - Get - CsTeamsMultiTenantOrganizationConfiguration - - This cmdlet retrieves all tenant settings for Multi-tenant Organizations - - - - The Get-CsTeamsMultiTenantOrganizationConfiguration cmdlet enables Teams meeting administrators to retrieve the Multi-Tenant Organization settings for their tenant. This includes the CopilotFromHomeTenant field, which specifies whether users in a Multi-Tenant Organization are allowed to utilize their Copilot license from their home tenant during cross-tenant meetings. - - - - Get-CsTeamsMultiTenantOrganizationConfiguration - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMultiTenantOrganizationConfiguration - - Retrieves tenant's Multi-tenant Organization Configuration, including CopilotFromHomeTenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmultitenantorganizationconfiguration - - - Set-CsTeamsMultiTenantOrganizationConfiguration - - - - - - - Get-CsTeamsNotificationAndFeedsPolicy - Get - CsTeamsNotificationAndFeedsPolicy - - Retrieves information about the Teams Notification and Feeds policy configured for use in the tenant. - - - - 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. - - - - Get-CsTeamsNotificationAndFeedsPolicy - - Filter - - A filter that is not expressed in the standard wildcard language. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsTeamsNotificationAndFeedsPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - Filter - - A filter that is not expressed in the standard wildcard language. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsNotificationAndFeedsPolicy - - The command shown above returns information of all Teams NotificationAndFeedsPolicy that have been configured for use in the tenant. - - - - - - Online Version: - 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 - - - - - - - Get-CsTeamsRecordingRollOutPolicy - Get - 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 Get-CsTeamsRecordingRollOutPolicy cmdlet enables you to return information about all the CsTeamsRecordingRollOutPolicy that have been configured for use in your organization. - This command is available from Teams powershell module 6.1.1-preview and above. - - - - Get-CsTeamsRecordingRollOutPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - - Get-CsTeamsRecordingRollOutPolicy - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsRecordingRollOutPolicy - - In Example 1, Get-CsTeamsRecordingRollOutPolicy is called without any additional parameters; this returns a collection of all the CsTeamsRecordingRollOutPolicy configured for use in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsrecordingrolloutpolicy - - - - - - Get-CsTeamsSharedCallingRoutingPolicy - Get - CsTeamsSharedCallingRoutingPolicy - - Use the Get-CsTeamsSharedCallingRoutingPolicy cmdlet to get Teams shared calling routing policy information. Teams shared calling routing policy is used to configure shared calling. - - - - TeamsSharedCallingRoutingPolicy is used to configure shared calling. - - - - Get-CsTeamsSharedCallingRoutingPolicy - - 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 - - - - Get-CsTeamsSharedCallingRoutingPolicy - - Identity - - 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 - - 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 - - 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 - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsSharedCallingRoutingPolicy - - The command shown in Example 1 returns information for all the Teams shared calling routing policies configured for use in the organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsSharedCallingRoutingPolicy -Identity "Seattle" - - In Example 2, information is returned for a single Teams shared calling routing policy; the policy with Identity Seattle. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsSharedCallingRoutingPolicy -Filter "tag:*" - - The command shown in Example 3 returns information about all the Teams shared calling routing policies configured at the per-user scope. - - - - -------------------------- Example 4 -------------------------- - Get-CsTeamsSharedCallingRoutingPolicy -Identity Global - - The command shown in Example 4 returns information about the Global policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-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 - - - New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy - - - - - - Get-CsTeamsShiftsPolicy - Get - CsTeamsShiftsPolicy - - This cmdlet allows you to get properties of a TeamsShiftPolicy instance, including user's Teams off shift warning message-specific settings. - - - - This cmdlet allows you to get properties of a TeamsShiftPolicy instance. Use this to get the policy name and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). - - - - Get-CsTeamsShiftsPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsShiftsPolicy - - Identity - - > Applicable: Microsoft Teams - Policy instance name. Optional. - - XdsIdentity - - XdsIdentity - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - Policy instance name. Optional. - - XdsIdentity - - XdsIdentity - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsPolicy - - Gets the properties of all instances of the TeamsShiftPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsShiftsPolicy -Identity OffShiftAccessMessage1Always - - Gets the properties of the OffShiftAccessMessage1Always instance of the TeamsShiftPolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamsshiftspolicy - - - Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy - - - New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy - - - Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy - - - Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy - - - - - - Get-CsTeamsSipDevicesConfiguration - Get - CsTeamsSipDevicesConfiguration - - This cmdlet is used to retrieve the organization-wide Teams SIP devices configuration. - - - - This cmdlet is used to retrieve the organization-wide Teams SIP devices configuration which contains settings that are applicable to SIP devices connected to Teams using Teams Sip Gateway. - To execute the cmdlet, you need to hold a role within your organization such as Global Reader, Teams Administrator, or Teams Communication Administrator. - - - - Get-CsTeamsSipDevicesConfiguration - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsSipDevicesConfiguration - -Identity : Global -BulkSignIn : Enabled - - In this example, the organization has Bulk SignIn enabled for their SIP devices. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration - - - Set-CsTeamsSipDevicesConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration - - - - - - Get-CsTeamsTemplatePermissionPolicy - Get - CsTeamsTemplatePermissionPolicy - - Fetches the TeamsTemplatePermissionPolicy. This policy can be used to hide Teams templates from users and groups. - - - - Fetches the instances of the policy. Each policy object contains a property called `HiddenTemplates`.This array contains the list of Teams template IDs that will be hidden by that instance of the policy. - - - - Get-CsTeamsTemplatePermissionPolicy - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. - - String - - String - - - None - - - - Get-CsTeamsTemplatePermissionPolicy - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the `Identity` field. - - String - - String - - - None - - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - TeamsTemplatePermissionPolicy.Cmdlets.TeamsTemplatePermissionPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS >Get-CsTeamsTemplatePermissionPolicy - -Identity HiddenTemplates Description --------- --------------- ----------- -Global {com.microsoft.teams.template.CoordinateIncidentResponse} -Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} - - Fetches all the policy instances currently available. - - - - -------------------------- Example 2 -------------------------- - PS >Get-CsTeamsTemplatePermissionPolicy -Identity Foobar - -Identity HiddenTemplates Description --------- --------------- ----------- -Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} - - Fetches an instance of a policy with known identity. - - - - -------------------------- Example 3 -------------------------- - PS >Get-CsTeamsTemplatePermissionPolicy -Filter *Foo* - -Identity HiddenTemplates Description --------- --------------- ----------- -Tag:Foobar {com.microsoft.teams.template.ManageAProject, com.microsoft.teams.template.ManageAnEvent} - - The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. - Note: The "Tag:" prefix can be ignored when specifying the identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy - - - New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy - - - Remove-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy - - - Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy - - - - - - Get-CsTeamsUpdateManagementPolicy - Get - CsTeamsUpdateManagementPolicy - - Use this cmdlet to retrieve the current Teams Update Management policies in the organization. - - - - The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. - - - - Get-CsTeamsUpdateManagementPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsUpdateManagementPolicy - - Identity - - The unique identifier of the policy. - - String - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - The unique identifier of the policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - TeamsUpdateManagementPolicy.Cmdlets.TeamsUpdateManagementPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsUpdateManagementPolicy - - In this example, we retrieve all the existing Teams Update Management policies in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupdatemanagementpolicy - - - - - - Get-CsTeamsUpgradeConfiguration - Get - CsTeamsUpgradeConfiguration - - Returns information related to managing the upgrade to Teams from Skype for Business. - - - - TeamsUpgradeConfiguration is 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 the Teams app. It also allows administrators to determine which application Office 365 users should use to join Skype for Business meetings. - Separate instances of TeamsUpgradeConfiguration exist in Office 365 and Skype for Business Server. - TeamsUpgradeConfiguration in Office 365 applies to any user who does not have an on-premises Skype for Business account. - TeamsUpgradeConfiguration in Skype for Business Server can used to manage on-premises users in a hybrid environment. In on-premises, only the DownloadTeams property is available. - The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download the Teams app in the background. This setting is only honored for users on Windows clients, and only if TeamsUpgradePolicy for the user meets either of these conditions: - NotifySfbUser=true, or - Mode=TeamsOnly Otherwise, this setting is ignored. - 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. This property is only available when configuring TeamsUpgradeConfiguration in Office 365. It is not honored for users homed on-premises in Skype for Business Server. - - - - Get-CsTeamsUpgradeConfiguration - - Identity - - {{Fill Identity Description}} - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use - - - SwitchParameter - - - False - - - Tenant - - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - Identity - - {{Fill Identity Description}} - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Do not use - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - These settings are only honored by newer versions of Skype for Business clients. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsUpgradeConfiguration - - The above cmdlet lists the properties of TeamsUpgradeConfiguration. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/get-csteamsupgradeconfiguration - - - Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration - - - Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy - - - Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy - - - 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 - - - - - - Get-CsTeamsVdiPolicy - Get - CsTeamsVdiPolicy - - 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. - - - - Get-CsTeamsVdiPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - - Get-CsTeamsVdiPolicy - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-user policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the meeting policies configured for use in your organization will be returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - TeamsVdiPolicy.Cmdlets.TeamsVdiPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsVdiPolicy - - In Example 1, Get-CsTeamsVdiPolicy is called without any additional parameters; this returns a collection of all the teams meeting policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsVdiPolicy -Identity SalesPolicy - - In Example 2, Get-CsTeamsVdiPolicy is used to return the per-user meeting policy that has an Identity SalesPolicy. Because identites are unique, this command will never return more than one item. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsVdiPolicy | where-Object {$_.VDI2Optimization -eq "Enabled"} - - The preceding command returns a collection of all the meeting policies where the VDI2Optimization property is Enabled. To do this, Get-CsTeamsVdiPolicy is first called without any parameters in order to return a collection of all the policies configured for use in the organization. This collection is then piped to the Where-Object cmdlet, which selects only those policies where the VDI2Optimization property is equal to Enabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvdipolicy - - - - - - Get-CsTeamsVirtualAppointmentsPolicy - Get - CsTeamsVirtualAppointmentsPolicy - - This cmdlet is used to fetch policy instances of TeamsVirtualAppointmentsPolicy. - - - - Fetches instances of TeamsVirtualAppointmentsPolicy. Each policy object contains a property called `EnableSmsNotifications`. 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 meeting template. - - - - Get-CsTeamsVirtualAppointmentsPolicy - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - - Get-CsTeamsVirtualAppointmentsPolicy - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - TeamsVirtualAppointmentsPolicy.Cmdlets.TeamsVirtualAppointmentsPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsVirtualAppointmentsPolicy - -Identity EnableSmsNotifications --------- ---------------------- -Global True -Tag:sms-enabled True -Tag:sms-disabled False - - Fetches all the policy instances currently available. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsVirtualAppointmentsPolicy -Identity sms-enabled - -Identity EnableSmsNotifications --------- ---------------------- -Tag:sms-enabled True - - Fetches an instance of a policy with a known identity. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsVirtualAppointmentsPolicy -Filter *sms* - -Identity EnableSmsNotifications --------- ---------------------- -Tag:sms-enabled True -Tag:sms-disabled False - - The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. - Note: The "Tag:" prefix can be ignored when specifying the identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy - - - New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy - - - Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy - - - Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy - - - Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy - - - - - - Get-CsTeamsVoiceApplicationsPolicy - Get - CsTeamsVoiceApplicationsPolicy - - Use the Get-CsTeamsVoiceApplicationsPolicy cmdlet to get Teams voice applications policy information. TeamsVoiceApplications policy governs what permissions the supervisors/users have over auto attendants and call queues. - - - - 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. - - - - Get-CsTeamsVoiceApplicationsPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsVoiceApplicationsPolicy - - Identity - - 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 - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - 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 - - String - - - None - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Get-CsTeamsVoiceApplicationsPolicy - - The command shown in Example 1 returns information for all the Teams voice applications policies configured for use in the tenant. - - - - -------------------------- EXAMPLE 2 -------------------------- - Get-CsTeamsVoiceApplicationsPolicy -Identity "SDA-Allow-All" - - In Example 2, information is returned for a single Teams voice applications policy; the policy with the Identity SDA-Allow-All. - - - - -------------------------- EXAMPLE 3 -------------------------- - Get-CsTeamsVoiceApplicationsPolicy -Filter "tag:*" - - The command shown in Example 3 returns information about all the Teams voice applications policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "tag:". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy - - - Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy - - - Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy - - - Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy - - - New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy - - - - - - Get-CsTeamsWorkLocationDetectionPolicy - Get - CsTeamsWorkLocationDetectionPolicy - - This cmdlet is used to fetch policy instances of TeamsWorkLocationDetectionPolicy. - - - - Fetches instances of TeamsWorkLocationDetectionPolicy. Each policy object contains a property called `EnableWorkLocationDetection`. This setting 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). - - - - Get-CsTeamsWorkLocationDetectionPolicy - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - - Get-CsTeamsWorkLocationDetectionPolicy - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - TeamsWorkLocationDetectionPolicy.Cmdlets.TeamsWorkLocationDetectionPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsWorkLocationDetectionPolicy - -Identity EnableWorkLocationDetection --------- ---------------------- -Global False -Tag:wld-policy1 True -Tag:wld-policy2 False - - Fetches all the policy instances currently available. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy1 - -Identity EnableWorkLocationDetection --------- ---------------------- -Tag:wld-policy1 True - - Fetches an instance of a policy with a known identity. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsWorkLocationDetectionPolicy -Filter *wld* - -Identity EnableWorkLocationDetection --------- ---------------------- -Tag:wld-policy1 True -Tag:wld-policy2 False - - The `Filter` parameter can be used to fetch policy instances based on partial matches on Identity. - Note: The "Tag:" prefix can be ignored when specifying the identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy - - - New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy - - - Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy - - - Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy - - - Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy - - - - - - Get-CsTenantNetworkSite - Get - CsTenantNetworkSite - - Returns information about the network site setting in the tenant. Tenant network site is used for Location Based Routing. - - - - A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. - A best practice for Location Bsed Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Each network site must be associated with a network region. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. - Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. - Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. - - - - Get-CsTenantNetworkSite - - Filter - - Enables you to use wildcard characters when indicating the site (or sites) to be returned. - - String - - String - - - None - - - - Get-CsTenantNetworkSite - - Identity - - The Identity parameter is a unique identifier for the site. - - String - - String - - - None - - - - Get-CsTenantNetworkSite - - IncludePhoneNumbers - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the site (or sites) to be returned. - - String - - String - - - None - - - Identity - - The Identity parameter is a unique identifier for the site. - - String - - String - - - None - - - IncludePhoneNumbers - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - - - - None - - - - - - - - - - Identity - - - The Identity of the site. - - - - - Description - - - The description of the site. - - - - - NetworkRegionID - - - The network region ID of the site. - - - - - LocationPolicyID - - - The ID of the location policy assigned to the site. - - - - - SiteAddress - - - This parameter is reserved for internal Microsoft use. - - - - - NetworkSiteID - - - The ID of the network site. - - - - - OnlineVoiceRoutingPolicyTagID - - - The ID of the online voice routing policy assigned to the site. - - - - - EnableLocationBasedRouting - - - Boolean stating whether Location-Based Routing is enabled on the site. - - - - - EmergencyCallRoutingPolicyTagID - - - The ID of the Teams emergency call routing policy assigned to the site. - - - - - EmergencyCallingPolicyTagID - - - The ID of the Teams emergency calling policy assigned to the site. - - - - - NetworkRoamingPolicyTagID - - - The ID of the Teams network roaming policy assigned to the site. - - - - - EmergencyCallRoutingPolicyName - - - The name of the Teams emergency call routing policy assigned to the site. - - - - - EmergencyCallingPolicyName - - - The name of the Teams emergency calling policy assigned to the site. - - - - - NetworkRoamingPolicyName - - - The name of the Teams network roaming policy assigned to the site. - - - - - PhoneNumbers - - - This parameter is reserved for internal Microsoft use. - - - - - - The parameter IncludePhoneNumbers was introduced in Teams PowerShell Module 5.5.0. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantNetworkSite - - The command shown in Example 1 returns the list of network sites for the current tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTenantNetworkSite -Identity siteA - - The command shown in Example 2 returns the network site within the scope of siteA. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTenantNetworkSite -Filter "Los Angeles" - - The command shown in Example 3 returns the network site that matches the specified filter. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite - - - Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite - - - Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite - - - - - - Grant-CsExternalAccessPolicy - Grant - CsExternalAccessPolicy - - 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/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. - When a policy is created at the site scope, it is automatically assigned to the site in question; for example, an external access policy with the Identity site:Redmond will automatically be assigned to the Redmond site. By contrast, policies created at the per-user scope are not automatically assigned to anyone. Instead, these policies must be explicitly assigned to a user or a group of users. Assigning per-user policies is the job of the Grant-CsExternalAccessPolicy cmdlet. - Note that per-user policies always take precedent over site policies and the global policy. For example, suppose you create a per-user policy that allows communication with federated users, and you assign that policy to Ken Myer. As long as that policy is in force, Ken will be allowed to communicate with federated users even if this type of communication is not allowed by Ken's site policy or by the global policy. That's because the settings in the per-user policy take precedence. - - - - Grant-CsExternalAccessPolicy - - 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 - - - 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. - - String - - String - - - None - - - 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 - - Fqdn - - - None - - - 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 - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - Grant-CsExternalAccessPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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. - - String - - String - - - None - - - 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 - - Fqdn - - - None - - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - Grant-CsExternalAccessPolicy - - Identity - - > 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 - - UserIdParameter - - - 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. - - String - - String - - - None - - - 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 - - Fqdn - - - None - - - 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 - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - 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 - - Fqdn - - - 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 - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - > 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 - - UserIdParameter - - - None - - - 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 - - SwitchParameter - - - 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. - - 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 - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - String value or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. - Grant-CsExternalAccessPolicy accepts pipelined input of string values representing the Identity of a user account. The cmdlet also accepts pipelined input of user objects. - - - - - - - Output types - - - By default, Grant-CsExternalAccessPolicy does not return a value or object. - However, if you include the PassThru parameter, the cmdlet will return instances of the Microsoft.Rtc.Management.ADConnect.Schema.OCSUserOrAppContact object. - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Grant-CsExternalAccessPolicy -Identity "Ken Myer" -PolicyName RedmondAccessPolicy - - Example 1 assigns the external access policy RedmondAccessPolicy to the user with the Active Directory display name Ken Myer. - - - - -------------------------- EXAMPLE 2 -------------------------- - Get-CsUser -LdapFilter "l=Redmond" | Grant-CsExternalAccessPolicy -PolicyName RedmondAccessPolicy - - The command shown in Example 2 assigns the external access policy RedmondAccessPolicy to all the users who work in the city of Redmond. To do this, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the users who work in Redmond; the filter value "l=Redmond" limits returned data to those users who work in the city of Redmond (the l in the filter, a lowercase L, represents the locality). That collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy RedmondAccessPolicy to each user in the collection. - - - - -------------------------- EXAMPLE 3 -------------------------- - Get-CsUser -LdapFilter "Title=Sales Representative" | Grant-CsExternalAccessPolicy -PolicyName SalesAccessPolicy - - In Example 3, all the users who have the job title "Sales Representative" are assigned the external access policy SalesAccessPolicy. To perform this task, the command first uses the Get-CsUser cmdlet and the LdapFilter parameter to return a collection of all the Sales Representatives; the filter value "Title=Sales Representative" restricts the returned collection to users who have the job title "Sales Representative". This filtered collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy SalesAccessPolicy to each user in the collection. - - - - -------------------------- EXAMPLE 4 -------------------------- - Get-CsUser -Filter {ExternalAccessPolicy -eq $Null} | Grant-CsExternalAccessPolicy -PolicyName BasicAccessPolicy - - The command shown in Example 4 assigns the external access policy BasicAccessPolicy to all the users who have not been explicitly assigned a per-user policy. (That is, users currently being governed by a site policy or by the global policy.) To do this, the Get-CsUser cmdlet and the Filter parameter are used to return the appropriate set of users; the filter value {ExternalAccessPolicy -eq $Null} limits the returned data to user accounts where the ExternalAccessPolicy property is equal to (-eq) a null value ($Null). By definition, ExternalAccessPolicy will be null only if users have not been assigned a per-user policy. - - - - -------------------------- EXAMPLE 5 -------------------------- - Get-CsUser -OU "ou=US,dc=litwareinc,dc=com" | Grant-CsExternalAccessPolicy -PolicyName USAccessPolicy - - Example 5 assigns the external access policy USAccessPolicy to all the users who have accounts in the US organizational unit (OU). The command starts off by calling the Get-CsUser cmdlet and the OU parameter; the parameter value "ou=US,dc=litwareinc,dc=com" limits the returned data to user accounts found in the US OU. The returned collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which assigns the policy USAccessPolicy to each user in the collection. - - - - -------------------------- EXAMPLE 6 -------------------------- - Get-CsUser | Grant-CsExternalAccessPolicy -PolicyName $Null - - Example 6 unassigns any per-user external access policy previously assigned to any of the users enabled for Skype for Business Server. To do this, the command calls the Get-CsUser cmdlet (without any additional parameters) in order to return a collection of all the users enabled for Skype for Business Server. That collection is then piped to the Grant-CsExternalAccessPolicy cmdlet, which uses the syntax "`-PolicyName $Null`" to remove any per-user external access policy previously assigned to these users. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy - - - Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy - - - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy - - - Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy - - - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy - - - - - - Grant-CsTeamsAIPolicy - Grant - CsTeamsAIPolicy - - This cmdlet applies an instance of the Teams AI policy to users or groups in a 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 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. - - - - Grant-CsTeamsAIPolicy - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAIPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsAIPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsAIPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsAIPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsAIPolicy -Global -PolicyName Test - - Assigns a given policy to the tenant. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Grant-CsTeamsAIPolicy -Global -PolicyName Test - - Note: Using $null in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsAIPolicy - - - New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy - - - Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy - - - Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy - - - Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy - - - - - - Grant-CsTeamsAppPermissionPolicy - Grant - CsTeamsAppPermissionPolicy - - 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. - - - - Grant-CsTeamsAppPermissionPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - Global - - Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. - - - SwitchParameter - - - False - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAppPermissionPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAppPermissionPolicy - - Identity - - The user to whom the policy should be assigned. - - UserIdParameter - - UserIdParameter - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - 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 - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - Global - - Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The user to whom the policy should be assigned. - - UserIdParameter - - UserIdParameter - - - None - - - PassThru - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Do not use. - - 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.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsAppPermissionPolicy -Identity "Ken Myer" -PolicyName StudentAppPermissionPolicy - - In this example, a user with identity "Ken Myer" is being assigned the StudentAppPermissionPolicy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsapppermissionpolicy - - - - - - Grant-CsTeamsAppSetupPolicy - Grant - CsTeamsAppSetupPolicy - - As an admin, you can use app setup policies to customize Microsoft Teams to highlight the apps that are most important 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 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>. - - - - Grant-CsTeamsAppSetupPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - Global - - Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. - - - SwitchParameter - - - False - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAppSetupPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAppSetupPolicy - - Identity - - The user to whom the policy should be assigned. - - UserIdParameter - - UserIdParameter - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - 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 - - - DomainController - - Do not use. - - Fqdn - - Fqdn - - - None - - - Global - - Resets the values in the global policy to match those in the provided (PolicyName) policy. Note that this means all users with no explicit policy assigned will have these new policy settings. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The user to whom the policy should be assigned. - - UserIdParameter - - UserIdParameter - - - None - - - PassThru - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Do not use. - - 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.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsAppSetupPolicy -identity "Ken Myer" -PolicyName StudentAppSetupPolicy - - In this example, a user with identity "Ken Myer" is being assigned the StudentAppSetupPolicy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsappsetuppolicy - - - - - - Grant-CsTeamsCallingPolicy - Grant - CsTeamsCallingPolicy - - Assigns a specific Teams Calling Policy to a user, a group of users, or sets the Global policy instance. - - - - The Teams Calling Policies designate how users are able to use calling functionality 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-CsTeamsCallingPolicy - - PolicyName - - 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 - - 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 - - - - Grant-CsTeamsCallingPolicy - - Identity - - The user object to whom the policy is being assigned. - - 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 - - - - - - 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 - - - Identity - - The user object to whom the policy is being assigned. - - 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 - - SwitchParameter - - - False - - - PolicyName - - The name of the policy being assigned. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsCallingPolicy -identity user1@contoso.com -PolicyName SalesCallingPolicy - - Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to user1@contoso.com - - - - -------------------------- Example 2 -------------------------- - Grant-CsTeamsCallingPolicy -Global -PolicyName SalesCallingPolicy - - Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesCallingPolicy instance. - - - - -------------------------- Example 3 -------------------------- - Grant-CsTeamsCallingPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesCallingPolicy - - Assigns the TeamsCallingPolicy called "SalesCallingPolicy" to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy - - - Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy - - - Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy - - - Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy - - - New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy - - - - - - Grant-CsTeamsEventsPolicy - Grant - CsTeamsEventsPolicy - - Assigns Teams Events policy to a user, group of users, or the entire tenant. Note that this policy is currently still in preview. - - - - Assigns Teams Events policy to a user, group of users, or the entire tenant. - TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - Grant-CsTeamsEventsPolicy - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - - Grant-CsTeamsEventsPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEventsPolicy - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy DisablePublicWebinars - - The command shown in Example 1 assigns the per-user Teams Events policy, DisablePublicWebinars, to the user with the user principal name (UPN) "user1@contoso.com". - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy $null - - The command shown in Example 2 revokes the per-user Teams Events policy for the user with the user principal name (UPN) "user1@contoso.com". As a result, the user will be managed by the global Teams Events policy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsEventsPolicy -Group "sales@contoso.com" -Rank 10 -Policy DisablePublicWebinars - - The command shown in Example 3 assigns the Teams Events policy, DisablePublicWebinars, to the members of the group "sales@contoso.com". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy - - - - - - Grant-CsTeamsFilesPolicy - Grant - CsTeamsFilesPolicy - - This cmdlet applies an instance of the Teams AI policy to users or groups in a tenant. - - - - The Teams Files Policy is used to modify files related settings in Microsoft teams. - - - - Grant-CsTeamsFilesPolicy - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsFilesPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsFilesPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsFilesPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsFilesPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsFilesPolicy -Global -PolicyName Test - - Assigns a given policy to the tenant. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Grant-CsTeamsFilesPolicy -Global -PolicyName Test - - Note: Using $null in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy - - - Grant-CsTeamsFilesPolicy - - - - Remove-CsTeamsFilesPolicy - - - - Get-CsTeamsFilesPolicy - - - - Set-CsTeamsFilesPolicy - - - - New-CsTeamsFilesPolicy - - - - - - - Grant-CsTeamsMediaConnectivityPolicy - Grant - CsTeamsMediaConnectivityPolicy - - This cmdlet applies an instance of the Teams media connectivity policy to users or groups in a tenant. - - - - This cmdlet applies an instance of the Teams media connectivity 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. - - - - Grant-CsTeamsMediaConnectivityPolicy - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMediaConnectivityPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsMediaConnectivityPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsMediaConnectivityPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Global -PolicyName Test - - Assigns a given policy to the tenant. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Grant-CsTeamsMediaConnectivityPolicy -Global -PolicyName Test - - Note: Using $null in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMediaConnectivityPolicy - - - New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy - - - Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy - - - Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy - - - Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy - - - - - - Grant-CsTeamsMeetingBrandingPolicy - Grant - CsTeamsMeetingBrandingPolicy - - Assigns a teams meeting branding policy at the per-user scope. The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - Assigns a teams meeting branding policy at the per-user scope. The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - Grant-CsTeamsMeetingBrandingPolicy - - 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 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 it to `$Null`. - - String - - String - - - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMeetingBrandingPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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 it to `$Null`. - - String - - String - - - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsMeetingBrandingPolicy - - 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 it to `$Null`. - - String - - String - - - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - Identity - - The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. - - String - - String - - - None - - - - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The user you want to grant policy to. This can be specified as an SIP address, UserPrincipalName, or ObjectId. - - 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 it to `$Null`. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - Available in Teams PowerShell Module 4.9.3 and later. - - - - - --------- Assign TeamsMeetingBrandingPolicy to a user --------- - PS C:\> Grant-CsTeamsMeetingBrandingPolicy -identity "alice@contoso.com" -PolicyName "Policy Test" - - In this example, the command assigns TeamsMeetingBrandingPolicy with the name `Policy Test` to user `alice@contoso.com`. - - - - --------- Assign TeamsMeetingBrandingPolicy to a group --------- - PS C:\> Grant-CsTeamsMeetingBrandingPolicy -Group group@contoso.com -PolicyName "Policy Test" -Rank 1 - - In this example, the command will assign TeamsMeetingBrandingPolicy with the name `Policy Test` to group `group@contoso.com`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy - - - Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - Grant - CsTeamsMeetingTemplatePermissionPolicy - - This cmdlet applies an instance of the TeamsMeetingTemplatePermissionPolicy to users or groups in a tenant. - - - - This cmdlet applies an instance of the TeamsMeetingTemplatePermissionPolicy to users or groups in a tenant. - Pass 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. - - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - - Force - - > Applicable: Microsoft Teams - Forces the policy assignment. - - - SwitchParameter - - - False - - - Global - - > Applicable: Microsoft Teams - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - Group - - > Applicable: Microsoft Teams - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This is the identifier of the user that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - Specifies the Identity of the policy to assign to the user or group. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - Force - - > Applicable: Microsoft Teams - Forces the policy assignment. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - > Applicable: Microsoft Teams - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - > Applicable: Microsoft Teams - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This is the identifier of the user that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - Specifies the Identity of the policy to assign to the user or group. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - - - - - - ------------ Example 1 - Assign a policy to a user ------------ - PS> Grant-CsTeamsMeetingTemplatePermissionPolicy -PolicyName Foobar -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Grant-CsTeamsMeetingTemplatePermissionPolicy - - - Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy - - - New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy - - - Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy - - - - - - Grant-CsTeamsPersonalAttendantPolicy - Grant - CsTeamsPersonalAttendantPolicy - - 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 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-CsTeamsPersonalAttendantPolicy - - Identity - - The user object to whom the policy is being assigned. - - 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-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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - Identity - - The user object to whom the policy is being assigned. - - 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-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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsPersonalAttendantPolicy -identity user1@contoso.com -PolicyName SalesPersonalAttendantPolicy - - 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/microsoftteams/grant-csteamspersonalattendantpolicy - - - New-CsTeamsPersonalAttendantPolicy - - - - Set-CsTeamsPersonalAttendantPolicy - - - - Get-CsTeamsPersonalAttendantPolicy - - - - Remove-CsTeamsPersonalAttendantPolicy - - - - - - - Grant-CsTeamsRecordingRollOutPolicy - Grant - 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 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-CsTeamsRecordingRollOutPolicy - - 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 - - - - - - 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. - - - SwitchParameter - - - False - - - Global - - When you use this cmdlet without specifying a user identity, the policy applies to all users in your organization, except any that have an explicit policy assignment. To prevent a warning when you carry out this operation, specify this parameter. - - - SwitchParameter - - - False - - - 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 - - - - Grant-CsTeamsSharedCallingRoutingPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsSharedCallingRoutingPolicy - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - 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 - - - - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - When you use this cmdlet without specifying a user identity, the policy applies to all users in your organization, except any that have an explicit policy assignment. To prevent a warning when you carry out this operation, specify this parameter. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - 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 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - This cmdlet was introduced in Teams PowerShell Module 5.5.0. - - - - - -------------------------- EXAMPLE 1 -------------------------- - Grant-CsTeamsSharedCallingRoutingPolicy -Identity "user@contoso.com" -PolicyName "Seattle" - - The command shown in Example 1 assigns the per-user Teams shared calling routing policy instance Seattle to the user user@contoso.com. - - - - -------------------------- EXAMPLE 2 -------------------------- - Grant-CsTeamsSharedCallingRoutingPolicy -PolicyName "Seattle" -Global - - Example 2 assigns the per-user Teams shared calling routing policy instance Seattle to all the users in the organization, except any that have an explicit Teams shared calling routing policy assignment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy - - - Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy - - - Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy - - - Remove-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy - - - New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy - - - - - - Grant-CsTeamsShiftsPolicy - Grant - CsTeamsShiftsPolicy - - This cmdlet supports applying the TeamsShiftsPolicy to users in a tenant. - - - - This cmdlet enables admins to grant Shifts specific policy settings to users in their tenant. - - - - Grant-CsTeamsShiftsPolicy - - 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 - - - PolicyName - - > Applicable: Microsoft Teams - The name of the TeamsShiftsPolicy instance that is being applied to the user. - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsShiftsPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - The name of the TeamsShiftsPolicy instance that is being applied to the user. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsShiftsPolicy - - Identity - - > Applicable: Microsoft Teams - UserId to whom the policy is granted. Email id is acceptable. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName - - > Applicable: Microsoft Teams - The name of the TeamsShiftsPolicy instance that is being applied to the user. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - UserId to whom the policy is granted. Email id is acceptable. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName - - > Applicable: Microsoft Teams - The name of the TeamsShiftsPolicy instance that is being applied to the user. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsShiftsPolicy -Identity IsaiahL@mwtdemo.onmicrosoft.com -PolicyName OffShiftAccessMessage1Always - - Applies the OffShiftAccessMessage1Always instance of TeamsShiftsPolicy to one user in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-teamsshiftspolicy - - - Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy - - - New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy - - - Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy - - - Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy - - - - - - Grant-CsTeamsVdiPolicy - Grant - CsTeamsVdiPolicy - - Assigns a teams Vdi policy at the per-user scope. 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. - - - - Assigns a teams Vdi policy at the per-user scope. 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. - - - - Grant-CsTeamsVdiPolicy - - 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 - - - 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 - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - - Grant-CsTeamsVdiPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsVdiPolicy - - 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 - - - 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 - - - - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsVdiPolicy -identity "Ken Myer" -PolicyName RestrictedUserPolicy - - In this example, a user with identity "Ken Myer" is being assigned the RestrictedUserPolicy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvdipolicy - - - - - - Grant-CsTeamsVirtualAppointmentsPolicy - Grant - CsTeamsVirtualAppointmentsPolicy - - This cmdlet applies an instance of the TeamsVirtualAppointmentsPolicy to users or groups in a tenant. - - - - This cmdlet applies an instance of the TeamsVirtualAppointmentsPolicy 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. - - - - Grant-CsTeamsVirtualAppointmentsPolicy - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsVirtualAppointmentsPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsVirtualAppointmentsPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - System.String - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -PolicyName sms-enabled -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName sms-enabled - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Global -PolicyName sms-enabled - - Assigns a given policy to the tenant. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsVirtualAppointmentsPolicy -Global -PolicyName sms-enabled - - Note: Using $null in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-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 - - - Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy - - - - - - Grant-CsTeamsWorkLocationDetectionPolicy - Grant - CsTeamsWorkLocationDetectionPolicy - - This cmdlet applies an instance of the TeamsWorkLocationDetectionPolicy to users or groups in a tenant. - - - - This cmdlet applies an instance of the TeamsWorkLocationDetectionPolicy 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. - - - - Grant-CsTeamsWorkLocationDetectionPolicy - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - - Grant-CsTeamsWorkLocationDetectionPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsWorkLocationDetectionPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: testuser@test.onmicrosoft.com - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - System.String - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -PolicyName sms-policy -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName wld-policy - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Global -PolicyName wld-policy - - Assigns a given policy to the tenant. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsWorkLocationDetectionPolicy -Global -PolicyName wld-policy - - Note: Using $null in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy - - - Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy - - - New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy - - - Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy - - - Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy - - - - - - New-CsExternalAccessPolicy - New - CsExternalAccessPolicy - - Enables you to create a new external access policy. - - - - 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/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/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 - - - - New-CsExternalAccessPolicy - - 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 - - > 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 - - List - - - None - - - BlockedExternalDomains - - > 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 - - List - - - None - - - 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 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 - - String - - - OrganizationDefault - - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - 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. - - Boolean - - Boolean - - - True - - - EnableFederationAccess - - 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 - - Boolean - - - True - - - EnableOutsideAccess - - 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 - - Boolean - - - None - - - EnablePublicCloudAudioVideoAccess - - 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 Server will be disabled any time a user is communicating with a public Internet connectivity contact. - - Boolean - - Boolean - - - None - - - EnableTeamsConsumerAccess - - (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. - - Boolean - - Boolean - - - True - - - EnableTeamsConsumerInbound - - (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. - - Boolean - - Boolean - - - True - - - EnableTeamsSmsAccess - - Allows you to control whether users can have SMS text messaging capabilities within Teams. - Possible values: True, False - - Boolean - - Boolean - - - None - - - EnableXmppAccess - - 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 - - Boolean - - - None - - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - - SwitchParameter - - - False - - - InMemory - - 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 - - - False - - - RestrictTeamsConsumerAccessToExternalUserProfiles - - Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory - Possible values: True, False - - Boolean - - Boolean - - - None - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the new external access policy is being created. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - AllowedExternalDomains - - > 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 - - List - - - None - - - BlockedExternalDomains - - > 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 - - List - - - None - - - 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 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 - - String - - - OrganizationDefault - - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text to accompany the policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - 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. - - Boolean - - Boolean - - - True - - - EnableFederationAccess - - 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 - - Boolean - - - True - - - EnableOutsideAccess - - 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 - - Boolean - - - None - - - EnablePublicCloudAudioVideoAccess - - 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 Server will be disabled any time a user is communicating with a public Internet connectivity contact. - - Boolean - - Boolean - - - None - - - EnableTeamsConsumerAccess - - (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. - - Boolean - - Boolean - - - True - - - EnableTeamsConsumerInbound - - (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. - - Boolean - - Boolean - - - True - - - EnableTeamsSmsAccess - - Allows you to control whether users can have SMS text messaging capabilities within Teams. - Possible values: True, False - - Boolean - - Boolean - - - None - - - EnableXmppAccess - - 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 - - Boolean - - - None - - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - SwitchParameter - - - False - - - RestrictTeamsConsumerAccessToExternalUserProfiles - - Defines if a user is restricted to collaboration with Teams Consumer (TFL) user only in Extended Directory - Possible values: True, False - - Boolean - - Boolean - - - None - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the new external access policy is being created. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Input types - - - None. The New-CsExternalAccessPolicy cmdlet does not accept pipelined input. - - - - - - - Output types - - - Creates new instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - New-CsExternalAccessPolicy -Identity site:Redmond -EnableFederationAccess $True -EnableOutsideAccess $True - - The command shown in Example 1 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 sets both the EnableFederationAccess and the EnableOutsideAccess properties to True. - - - - -------------------------- Example 2 -------------------------- - Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true -New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false - - In this example, the Global policy is updated to allow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation disabled and which can then be assigned to selected users for which Team-ACS federation will not be allowed. - - - - -------------------------- 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. - - - - -------------------------- EXAMPLE 4 -------------------------- - $x = New-CsExternalAccessPolicy -Identity RedmondAccessPolicy -InMemory - -$x.EnableFederationAccess = $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 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 -------------------------- - 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. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy - - - Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy - - - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy - - - Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy - - - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy - - - - - - New-CsOnlineVoicemailPolicy - New - CsOnlineVoicemailPolicy - - Creates a new Online Voicemail policy. - - - - Cloud Voicemail service provides organizations with voicemail deposit capabilities for Phone System implementation. - By default, users enabled for Phone System will be enabled for Cloud Voicemail. The Online Voicemail policy controls 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. - - Voicemail transcription is enabled by default - - Transcription profanity masking is disabled by default - - Transcription translation is enabled by default - - Editing call answer rule settings is enabled by default - - Voicemail maximum recording length is set to 5 minutes by default - - Primary and secondary system prompt languages are set to null by default and the user's voicemail language setting is used - - Tenant admin would be able to create a customized online voicemail policy to match the organization's requirements. - - - - New-CsOnlineVoicemailPolicy - - Identity - - > Applicable: Microsoft Teams - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - 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 - - Boolean - - - None - - - EnableTranscription - - > Applicable: Microsoft Teams - Allows you to disable or enable voicemail transcription. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionProfanityMasking - - > Applicable: Microsoft Teams - Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionTranslation - - > Applicable: Microsoft Teams - Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - MaximumRecordingLength - - > Applicable: Microsoft Teams - A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. - - Duration - - Duration - - - None - - - 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 - - String - - - None - - - PreambleAudioFile - - > Applicable: Microsoft Teams - The audio file to play to the caller before the user's voicemail greeting is played. - - String - - String - - - None - - - PreamblePostambleMandatory - - > Applicable: Microsoft Teams - Is playing the Pre- or Post-amble mandatory before the caller can leave a message. - - Boolean - - Boolean - - - False - - - PrimarySystemPromptLanguage - - > 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 - - String - - - None - - - SecondarySystemPromptLanguage - - > 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 - - String - - - None - - - 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 - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > 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 - - 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 - - Boolean - - - None - - - EnableTranscription - - > Applicable: Microsoft Teams - Allows you to disable or enable voicemail transcription. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionProfanityMasking - - > Applicable: Microsoft Teams - Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionTranslation - - > Applicable: Microsoft Teams - Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - 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 - - Duration - - - None - - - 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 - - String - - - None - - - PreambleAudioFile - - > Applicable: Microsoft Teams - The audio file to play to the caller before the user's voicemail greeting is played. - - String - - String - - - None - - - PreamblePostambleMandatory - - > Applicable: Microsoft Teams - Is playing the Pre- or Post-amble mandatory before the caller can leave a message. - - Boolean - - Boolean - - - False - - - PrimarySystemPromptLanguage - - > 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 - - String - - - None - - - SecondarySystemPromptLanguage - - > 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 - - String - - - None - - - 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 - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" -MaximumRecordingLength ([TimeSpan]::FromSeconds(60)) - - The command shown in Example 1 creates a per-user online voicemail policy CustomOnlineVoicemailPolicy with MaximumRecordingLength set to 60 seconds and other fields set to tenant level global value. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy - - - Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy - - - Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy - - - Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy - - - Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy - - - - - - New-CsTeamsAIPolicy - New - CsTeamsAIPolicy - - This cmdlet creates a Teams AI policy. - - - - 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 - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - - - - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsAIPolicy -Identity Test - - Creates a new Teams AI policy with the specified identity. The newly created policy with value will be printed on success. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsAIPolicy - - - Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy - - - Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy - - - Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy - - - Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy - - - - - - New-CsTeamsAppPermissionPolicy - New - CsTeamsAppPermissionPolicy - - 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. 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. - - - - New-CsTeamsAppPermissionPolicy - - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsapppermissionpolicy - - - - - - New-CsTeamsAppSetupPolicy - New - CsTeamsAppSetupPolicy - - 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>. - - - - New-CsTeamsAppSetupPolicy - - Identity - - Name of App setup policy. If empty, all Identities will be used by default. - - String - - String - - - 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 - - This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. - - Boolean - - Boolean - - - None - - - AllowUserPinning - - If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. - - Boolean - - Boolean - - - None - - - AppPresetList - - Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - - 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 - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Description - - Description of the app setup policy. - - String - - String - - - None - - - PinnedAppBarApps - - Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that are needed the most by users and promote ease of access. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - - None - - - PinnedCallingBarApps - - Determines the list of apps that are pre pinned for a participant in Calls. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - - None - - - PinnedMessageBarApps - - Apps are pinned in messaging extensions and into the ellipsis menu. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - 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 - - This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. - - Boolean - - Boolean - - - None - - - AllowUserPinning - - If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. - - Boolean - - Boolean - - - None - - - AppPresetList - - Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - - 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 - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Description of the app setup policy. - - String - - String - - - None - - - Identity - - Name of App setup policy. If empty, all Identities will be used by default. - - String - - String - - - None - - - PinnedAppBarApps - - Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that are needed the most by users and promote ease of access. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - - None - - - PinnedCallingBarApps - - Determines the list of apps that are pre pinned for a participant in Calls. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - - None - - - PinnedMessageBarApps - - Apps are pinned in messaging extensions and into the ellipsis menu. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) - - Create a new TeamsAppSetupPolicy, if no parameters are specified, the Global Policy configuration is used by default. - - - - -------------------------- Example 2 -------------------------- - New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowSideLoading $true -AllowUserPinning $true - - Create a new TeamsAppSetupPolicy. Users can upload a custom app package in the Teams app because AllowSideLoading is set as True, and existing app pins can be added to the list of pinned apps because AllowUserPinning is set as True. - - - - -------------------------- Example 3 -------------------------- - # Set ActivityApp, ChatApp, TeamsApp as PinnedAppBarApps -$ActivityApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="14d6962d-6eeb-4f48-8890-de55454bb136"} -$ChatApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="86fcd49b-61a2-4701-b771-54728cd291fb"} -$TeamsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="2a84919f-59d8-4441-a975-2a8c2643b741"} -$PinnedAppBarApps = @($ActivityApp,$ChatApp,$TeamsApp) - -# Settings to pin these apps to the app bar in Teams client. -New-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowUserPinning $true -PinnedAppBarApps $PinnedAppBarApps - - Create a new TeamsAppSetupPolicy and pin ActivityApp, ChatApp, TeamsApp apps to the app bar in Teams client by setting these apps as PinnedAppBarApps. - - - - -------------------------- Example 4 -------------------------- - # Set VivaConnectionsApp as PinnedMessageBarApps -$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} -$PinnedMessageBarApps = @($VivaConnectionsApp) -# Settings to pin these apps to the messaging extension in Teams client. -Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowUserPinning $true -PinnedMessageBarApps $PinnedMessageBarApps - - Create a new TeamsAppSetupPolicy and pin VivaConnections app to the messaging extension in Teams client by setting these apps as PinnedMessageBarApps. - - - - -------------------------- Example 5 -------------------------- - # Set VivaConnectionsApp as AppPresetList -$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} -$AppPresetList = @($VivaConnectionsApp) -# Settings to install these apps in your users' personal Teams environment -Set-CsTeamsAppSetupPolicy -Identity (Get-Date -Format FileDateTimeUniversal) -AllowSideLoading $true -AppPresetList $AppPresetList - - Create a new TeamsAppSetupPolicy and install VivaConnections App in users' personal Teams environment by setting these apps as AppPresetList. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsappsetuppolicy - - - - - - New-CsTeamsCallHoldPolicy - New - CsTeamsCallHoldPolicy - - Creates a new Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. - - - - Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. - Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. - - - - New-CsTeamsCallHoldPolicy - - Identity - - Unique identifier to be assigned to the new Teams call hold policy. - - String - - String - - - None - - - AudioFileId - - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - StreamingSourceAuthType - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - StreamingSourceUrl - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AudioFileId - - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier to be assigned to the new Teams call hold policy. - - String - - String - - - None - - - StreamingSourceAuthType - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - StreamingSourceUrl - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -Description "country music" -AudioFileID "c65233-ac2a27-98701b-123ccc" - - The command shown in Example 1 creates a new, per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. This policy is assigned the audio file ID: c65233-ac2a27-98701b-123ccc, which is the ID referencing an audio file that was uploaded using the Import-CsOnlineAudioFile cmdlet. - Any Microsoft Teams users who are assigned this policy will have their call holds customized such that the user being held will hear the audio file specified by AudioFileId. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy - - - Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy - - - Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy - - - Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy - - - Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - - - - New-CsTeamsCallingPolicy - New - CsTeamsCallingPolicy - - Use this cmdlet to create a new instance of a Teams Calling Policy. - - - - The Teams Calling Policy controls which calling and call forwarding features are available to users in Microsoft Teams. This cmdlet allows admins to create new policy instances. - - - - New-CsTeamsCallingPolicy - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - - - UserOverride: This option is not available for use. - - String - - String - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowSIPDevicesCalling - - > Applicable: Microsoft Teams - Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. - - Boolean - - Boolean - - - None - - - AllowTranscriptionForCalling - - > Applicable: Microsoft Teams - Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. - - Boolean - - Boolean - - - None - - - 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. - - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. - - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. - - String - - String - - - None - - - AllowWebPSTNCalling - - > Applicable: Microsoft Teams - Allows PSTN calling from the Team web client. - - Object - - Object - - - None - - - 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. - - Disabled: Auto-answer is disabled. This is the default setting. - - String - - String - - - Disabled - - - 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. - - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. - - Disabled: New or incoming calls will be presented to the user. - - UserOverride: Users can set their busy options directly from call settings in Teams app. - - String - - String - - - None - - - 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 - - Long - - Long - - - None - - - CallRecordingExpirationDays - - > Applicable: Microsoft Teams - Sets the expiration of the recorded 1:1 calls. Default is 60 days. - - Long - - Long - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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. This is the default value. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - - Disabled: Copilot is disabled for calls. - - String - - String - - - Enabled - - - 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 - - String - - - None - - - 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 - - False - - Boolean - - Boolean - - - False - - - EnableWebPstnMediaBypass - - Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - 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. - - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - UserOverride: For now, setting the value to UserOverride is the same as RegularIncoming. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Disabled: Prohibits the user from turning on live captions. - - String - - String - - - None - - - 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. - - Disabled: Music on hold is disabled. - - UserOverride: For now, setting the value to UserOverride is the same as Enabled. - - String - - String - - - Enabled - - - 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 - - String - - - "" - - - 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 - - String - - - Disabled - - - 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. - - Boolean - - Boolean - - - 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. - - Disabled: Spam Filtering is completely disabled. No checks are performed. A "Spam Likely" notification will not appear. - - EnabledWithoutIVR: Spam Filtering is partially enabled. Captcha IVR checks are disabled. A "Spam Likely" notification will appear. A call might get dropped if it gets a high score from Basic checks. - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - > 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 - - - Disabled - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - - - UserOverride: This option is not available for use. - - String - - String - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowSIPDevicesCalling - - > Applicable: Microsoft Teams - Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. - - Boolean - - Boolean - - - None - - - AllowTranscriptionForCalling - - > Applicable: Microsoft Teams - Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. - - Boolean - - Boolean - - - None - - - 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. - - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. - - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. - - String - - String - - - None - - - AllowWebPSTNCalling - - > Applicable: Microsoft Teams - Allows PSTN calling from the Team web client. - - Object - - Object - - - None - - - 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. - - Disabled: Auto-answer is disabled. This is the default setting. - - String - - String - - - Disabled - - - 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. - - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. - - Disabled: New or incoming calls will be presented to the user. - - UserOverride: Users can set their busy options directly from call settings in Teams app. - - String - - String - - - None - - - 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 - - Long - - Long - - - None - - - CallRecordingExpirationDays - - > Applicable: Microsoft Teams - Sets the expiration of the recorded 1:1 calls. Default is 60 days. - - Long - - Long - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - 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. This is the default value. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - - Disabled: Copilot is disabled for calls. - - String - - String - - - Enabled - - - 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 - - String - - - None - - - 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 - - False - - Boolean - - Boolean - - - False - - - EnableWebPstnMediaBypass - - Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - 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. - - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - UserOverride: For now, setting the value to UserOverride is the same as RegularIncoming. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Disabled: Prohibits the user from turning on live captions. - - String - - String - - - None - - - 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. - - Disabled: Music on hold is disabled. - - UserOverride: For now, setting the value to UserOverride is the same as Enabled. - - String - - String - - - Enabled - - - 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 - - String - - - "" - - - 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 - - String - - - Disabled - - - 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. - - Boolean - - Boolean - - - 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. - - Disabled: Spam Filtering is completely disabled. No checks are performed. A "Spam Likely" notification will not appear. - - EnabledWithoutIVR: Spam Filtering is partially enabled. Captcha IVR checks are disabled. A "Spam Likely" notification will appear. A call might get dropped if it gets a high score from Basic checks. - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - > 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 - - - Disabled - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsCallingPolicy -Identity Sales -AllowPrivateCalling $false - - The cmdlet create the policy instance Sales and sets the value of the parameter AllowPrivateCalling to False. The rest of the parameters are set to the corresponding values in the Global policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy - - - Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy - - - Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy - - - Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy - - - Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy - - - - - - New-CsTeamsChannelsPolicy - New - CsTeamsChannelsPolicy - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. - - - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. - This cmdlet allows you to create new policies of this type, which can later be assigned to specific users. - - - - New-CsTeamsChannelsPolicy - - Identity - - Specify the name of the policy that you are creating. - - String - - String - - - 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 - - - AllowOrgWideTeamCreation - - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateChannelCreation - - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSharedChannelCreation - - 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. - - Boolean - - Boolean - - - None - - - AllowUserToParticipateInExternalSharedChannel - - 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 - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Specifies the description of the policy. - - String - - String - - - None - - - 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 - - Bypasses all non-fatal errors. - - - SwitchParameter - - - False - - - 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 - - - - - - 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 - - - AllowOrgWideTeamCreation - - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateChannelCreation - - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSharedChannelCreation - - 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. - - Boolean - - Boolean - - - None - - - AllowUserToParticipateInExternalSharedChannel - - 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 - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Specifies the description of the policy. - - String - - String - - - None - - - 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 - - Bypasses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Specify the name of the policy that you are creating. - - String - - String - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsChannelsPolicy -Identity StudentPolicy -EnablePrivateTeamDiscovery $false - - This example shows creating a new policy with name "StudentPolicy" where Private Team Discovery is disabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy - - - Set-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy - - - Remove-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy - - - Grant-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy - - - Get-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy - - - - - - New-CsTeamsComplianceRecordingApplication - New - CsTeamsComplianceRecordingApplication - - Creates a new association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - 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. - 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. - 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. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. - - - - New-CsTeamsComplianceRecordingApplication - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Id - - 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 - - String - - - None - - - InMemory - - 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 - - - False - - - Parent - - 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. - - String - - String - - - 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 - - - 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 - - - - 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 - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - InMemory - - 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 - - - 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 - - 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 - - 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 - - - Id - - 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 - - String - - - 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 - - - InMemory - - 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 - - SwitchParameter - - - False - - - Parent - - 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. - - String - - String - - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' - - The command shown in Example 1 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' - - The command shown in Example 2 is a variation of Example 1. It also creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy, but it does this by using the Parent and Id parameters instead of the Identity parameter. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false - - The command shown in Example 3 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is deemed optional for meetings but mandatory for calls. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. - - - - -------------------------- Example 4 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeCallEstablishment $false -RequiredDuringCall $false - - The command shown in Example 4 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is deemed optional for calls but mandatory for meetings. Please refer to the documentation of the RequiredBeforeCallEstablishment and RequiredDuringCall parameters for more information. - - - - -------------------------- Example 5 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -ConcurrentInvitationCount 2 - - The command shown in Example 5 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made resilient by specifying that two invites must be sent to the same application for the same call or meeting. Please refer to the documentation of the ConcurrentInvitationCount parameter for more information. - - - - -------------------------- Example 6 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingApplication -Parent 'Tag:ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications @(New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') - - The command shown in Example 6 creates a new association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made resilient by pairing it with another application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Separate invites are sent to the paired applications for the same call or meeting. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - New-CsTeamsComplianceRecordingPairedApplication - New - CsTeamsComplianceRecordingPairedApplication - - Creates a new association between multiple application instances of policy-based recording applications to achieve application resiliency in automatic policy-based recording scenarios. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - 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. - Instances of these applications are created using CsOnlineApplicationInstance cmdlets and are then associated with Teams recording policies. - 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. - Please work with your Microsoft certified policy-based recording application provider to obtain an instance of their recording application, to determine if application resiliency is needed for your workflows, and how best to achieve application resiliency. Please also refer to the documentation of CsTeamsComplianceRecordingApplication cmdlets for further information. - - - - New-CsTeamsComplianceRecordingPairedApplication - - Id - - 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 - - String - - - None - - - - - - Id - - 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 - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144' - - The command shown in Example 1 creates an in-memory instance of an application instance of a policy-based recording application that can be associated with other such application instances to achieve application resiliency. - Note that this cmdlet is only used in conjunction with New-CsTeamsComplianceRecordingApplication and Set-CsTeamsComplianceRecordingApplication to create associations between multiple application instances of policy-based recording applications. Please refer to the documentation of CsTeamsComplianceRecordingApplication cmdlets for examples and further information. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - - - - New-CsTeamsComplianceRecordingPolicy - New - CsTeamsComplianceRecordingPolicy - - Creates a new Teams recording policy for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - Teams recording policies 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 record audio, video and video-based screen sharing activity. - Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. - 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. - Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. - - - - New-CsTeamsComplianceRecordingPolicy - - 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 - - - ComplianceRecordingApplications - - 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. - - ComplianceRecordingApplication[] - - ComplianceRecordingApplication[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CustomBanner - - References the Custom Banner text in the storage. - - Guid - - Guid - - - None - - - CustomPromptsEnabled - - Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. - - Boolean - - Boolean - - - None - - - CustomPromptsPackageId - - Reference to custom prompts package. - - String - - String - - - None - - - Description - - 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. - - String - - String - - - None - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. - - Boolean - - Boolean - - - False - - - Enabled - - 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 - - Boolean - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - InMemory - - 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 - - - False - - - RecordReroutedCalls - - 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 - - Boolean - - - 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 - - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - ComplianceRecordingApplications - - 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. - - ComplianceRecordingApplication[] - - ComplianceRecordingApplication[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CustomBanner - - References the Custom Banner text in the storage. - - Guid - - Guid - - - None - - - CustomPromptsEnabled - - Indicates whether compliance recording custom prompts feature is enabled for this tenant / user. - - Boolean - - Boolean - - - None - - - CustomPromptsPackageId - - Reference to custom prompts package. - - String - - String - - - None - - - Description - - 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. - - String - - String - - - None - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. - - Boolean - - Boolean - - - False - - - Enabled - - 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 - - Boolean - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - 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 - - - InMemory - - 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 - - SwitchParameter - - - False - - - RecordReroutedCalls - - 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 - - Boolean - - - 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 - - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - - - 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-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899') - - The command shown in Example 1 creates a new per-user Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. This policy is assigned a single application instance of a policy-based recording application: d93fefc7-93cc-4d44-9a5d-344b0fff2899, which is the ObjectId of the application instance as obtained from the Get-CsOnlineApplicationInstance cmdlet. - Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by that application instance. Existing calls and meetings are unaffected. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899'), @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') - - Example 2 is a variation of Example 1. In this case, the Teams recording policy is assigned two application instances of policy-based recording applications. - Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by both those application instances. Existing calls and meetings are unaffected. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - New-CsTeamsCustomBannerText - New - CsTeamsCustomBannerText - - Enables administrators to configure a custom text on the banner displayed when compliance recording bots start recording the call. - - - - Creates a single instance of a custom banner text. - - - - New-CsTeamsCustomBannerText - - 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 - - Guid - - - None - - - Description - - The description that the global admin would like to set to identify what this text represents. - - String - - String - - - None - - - Text - - The text that the global admin would like to set in the policy. - - String - - String - - - None - - - - - - 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 - - Guid - - - None - - - Text - - The text that the global admin would like to set in the policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsCustomBannerText -Id 123e4567-e89b-12d3-a456-426614174000 -Description "Custom Banner Text Example" -Text "Custom Text" - - This example creates an instance of TeamsCustomBannerText with the name CustomText. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext - - - Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext - - - New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext - - - Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext - - - - - - New-CsTeamsEmergencyCallingExtendedNotification - New - CsTeamsEmergencyCallingExtendedNotification - - - - - - This cmdlet supports creating specific emergency calling notification settings per emergency phone number. It is used with TeamsEmergencyCallingPolicy. - - - - New-CsTeamsEmergencyCallingExtendedNotification - - EmergencyDialString - - Specifies the emergency phone number. - - String - - String - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - 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 - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. - - - NotificationOnly - ConferenceMuted - ConferenceUnMuted - - Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode - - Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode - - - None - - - - - - EmergencyDialString - - Specifies the emergency phone number. - - String - - String - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - 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 - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. - - Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode - - Microsoft.Rtc.Management.WritableConfig.Policy.Teams.NotificationMode - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert2@contoso.com" -NotificationMode ConferenceUnMuted - - Creates an extended emergency calling notification for the emergency phone number 911 and stores it in the variable $en1. The variable should be added afterward to a TeamsEmergencyCallingPolicy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification - - - Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - - - - New-CsTeamsEmergencyCallingPolicy - New - CsTeamsEmergencyCallingPolicy - - - - - - This cmdlet creates a new Teams Emergency Calling policy. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. - - - - New-CsTeamsEmergencyCallingPolicy - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - The Description parameter describes the Teams Emergency Calling policy - what it is for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. - - String - - String - - - None - - - EnhancedEmergencyServiceDisclaimer - - Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. - - String - - String - - - None - - - ExtendedNotifications - - A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. - If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - - None - - - ExternalLocationLookupMode - - Enable ExternalLocationLookupMode. This mode allow users to set Emergency addresses for remote locations. - - - Disabled - Enabled - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. - - String - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. - - - NotificationOnly - ConferenceMuted - ConferenceUnMuted - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - - 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 - - - Description - - The Description parameter describes the Teams Emergency Calling policy - what it is for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. - - String - - String - - - None - - - EnhancedEmergencyServiceDisclaimer - - Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. - - String - - String - - - None - - - ExtendedNotifications - - A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. - If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - - None - - - ExternalLocationLookupMode - - Enable ExternalLocationLookupMode. This mode allow users to set Emergency addresses for remote locations. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy - - String - - String - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. - - String - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------- Emergency calling policy Example 1 -------------- - $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" -New-CsTeamsEmergencyCallingPolicy -Identity ECP1 -Description "Test ECP1" -NotificationGroup "alert@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted -ExternalLocationLookupMode Enabled -ExtendedNotifications @{add=$en1} - - - - - - -------------- Emergency calling policy Example 2 -------------- - $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert@contoso.com;567@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted -$en2 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" -New-CsTeamsEmergencyCallingPolicy -Identity ECP2 -Description "Test ECP2" -ExternalLocationLookupMode Enabled -ExtendedNotifications @{add=$en1,$en2} - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy - - - Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy - - - Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy - - - Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingExtendedNotification - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification - - - - - - New-CsTeamsEventsPolicy - New - CsTeamsEventsPolicy - - This cmdlet allows you to create a new TeamsEventsPolicy instance and set its properties. Note that this policy is currently still in preview. - - - - TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - New-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - 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 - - - AllowEventIntegrations - - 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 - - String - - - Enabled - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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 - - String - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - 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 - - - AllowEventIntegrations - - 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 - - String - - - Enabled - - - BroadcastPremiumApps - - 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 - - - Enabled - - - 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 - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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 - - String - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsEventsPolicy -Identity DisablePublicWebinars -AllowWebinars Enabled -EventAccessType EveryoneInCompanyExcludingGuests - - The command shown in Example 1 creates a new per-user Teams Events policy with the Identity DisablePublicWebinars. This policy disables a user from creating public webinars. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsEventsPolicy -Identity DisableWebinars -AllowWebinars Disabled - - The command shown in Example 2 creates a new per-user Teams Events policy with the Identity DisableWebinars. This policy disables a user from creating webinars. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy - - - - - - New-CsTeamsFeedbackPolicy - New - CsTeamsFeedbackPolicy - - Use this cmdlet to control whether users in your organization can send feedback about Teams to Microsoft through Give feedback and whether they receive the survey. - - - - Use this cmdlet to control whether users in your organization can send feedback about Teams to Microsoft through Give feedback and whether they receive the survey. By default, all users in your organization are automatically assigned the global (Org-wide default) policy and the Give feedback feature and survey are enabled in the policy. The exception is Teams for Education, where the features are enabled for teachers and disabled for students. For more information, visit Manage feedback policies in Microsoft Teams (https://learn.microsoft.com/microsoftteams/manage-feedback-policies-in-teams). - - - - New-CsTeamsFeedbackPolicy - - Identity - - A unique identifier. - - Object - - Object - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - EnableFeatureSuggestions - - This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. - - Boolean - - Boolean - - - None - - - Force - - Suppress all non-fatal errors. - - - SwitchParameter - - - False - - - InMemory - - The InMemory parameter creates an object reference without actually committing the object as a permanent change. - - - SwitchParameter - - - False - - - ReceiveSurveysMode - - Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. - Possible values: - Enabled - Disabled - EnabledUserOverride - - String - - String - - - Enabled - - - Tenant - - Internal Microsoft use only. - - Object - - Object - - - None - - - UserInitiatedMode - - 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 - - String - - String - - - Enabled - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - EnableFeatureSuggestions - - This setting will enable Tenant Admins to hide or show the Teams menu item “Help | Suggest a Feature”. - - Boolean - - Boolean - - - None - - - Force - - Suppress all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - A unique identifier. - - Object - - Object - - - None - - - InMemory - - The InMemory parameter creates an object reference without actually committing the object as a permanent change. - - SwitchParameter - - SwitchParameter - - - False - - - ReceiveSurveysMode - - Set the receiveSurveysMode parameter to enabled to allow users who are assigned the policy to receive the survey. - Possible values: - Enabled - Disabled - EnabledUserOverride - - String - - String - - - Enabled - - - Tenant - - Internal Microsoft use only. - - Object - - Object - - - None - - - UserInitiatedMode - - 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 - - String - - String - - - Enabled - - - 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-CsTeamsFeedbackPolicy -identity "New Hire Feedback Policy" -userInitiatedMode disabled -receiveSurveysMode disabled - - In this example, we create a feedback policy called New Hire Feedback Policy and we turn off the ability to give feedback through Give feedback and the survey. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfeedbackpolicy - - - - - - New-CsTeamsFilesPolicy - New - CsTeamsFilesPolicy - - Creates a new teams files policy. - - - - If your organization chooses a third-party for content storage, you can turn off the NativeFileEntryPoints parameter in the Teams Files policy. This parameter is enabled by default, which shows option to attach OneDrive / SharePoint content from Teams chats or channels. When this parameter is disabled, users won't see access points for OneDrive and SharePoint in Teams. Please note that OneDrive app in the left navigation pane in Teams isn't affected by this policy. Teams administrators would be able to create a customized teams files policy to match the organization's requirements. - - - - New-CsTeamsFilesPolicy - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - DefaultFileUploadAppId - - 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 - - String - - - None - - - FileSharingInChatswithExternalUsers - - 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 - - - Enabled - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - NativeFileEntryPoints - - 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 - - String - - - None - - - SPChannelFilesTab - - Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - DefaultFileUploadAppId - - 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 - - String - - - None - - - FileSharingInChatswithExternalUsers - - 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 - - - Enabled - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - NativeFileEntryPoints - - 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 - - String - - - None - - - SPChannelFilesTab - - Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsTeamsFilesPolicy -Identity "CustomTeamsFilesPolicy" -NativeFileEntryPoints Disabled/Enabled - - The command shown in Example 1 creates a per-user teams files policy CustomTeamsFilesPolicy with NativeFileEntryPoints set to Disabled/Enabled and other fields set to tenant level global value. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy - - - - - - New-CsTeamsHiddenMeetingTemplate - New - CsTeamsHiddenMeetingTemplate - - This cmdlet is used to create a `HiddenMeetingTemplate` object. - - - - Creates an object that can be supplied as `HiddenMeetingTemplate` to the New-CsTeamsMeetingTemplatePermissionPolicy (new-csteamsmeetingtemplatepermissionpolicy.md)and Set-CsTeamsMeetingTemplatePermissionPolicy (set-csteamsmeetingtemplatepermissionpolicy.md)cmdlets. - - - - New-CsTeamsHiddenMeetingTemplate - - Id - - > Applicable: Microsoft Teams - ID of the meeting template to hide. - - String - - String - - - None - - - - - - Id - - > Applicable: Microsoft Teams - ID of the meeting template to hide. - - String - - String - - - None - - - - - - - - - - - - ------ Example 1 - Creating a new hidden meeting template ------ - 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/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsHiddenMeetingTemplate - - - Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy - - - New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy - - - Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy - - - - - - New-CsTeamsHiddenTemplate - New - CsTeamsHiddenTemplate - - This cmdlet is used to create a `HiddenTemplate` object. - - - - Creates an object that can be supplied as `HiddenTemplate` to the New-CsTeamsTemplatePermissionPolicy (new-csteamstemplatepermissionpolicy.md) and [Set-CsTeamsTemplatePermissionPolicy](set-csteamstemplatepermissionpolicy.md)cmdlets. - - - - New-CsTeamsHiddenTemplate - - Id - - ID of the Teams template to hide. - - String - - String - - - None - - - - - - Id - - ID of the Teams template to hide. - - String - - String - - - None - - - - - - None - - - - - - - - - - HiddenTemplate.Cmdlets.HiddenTemplate - - - - - - - - - - - - - - -------------------------- 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/microsoftteams/new-csteamstemplatepermissionpolicy). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddentemplate - - - New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy - - - Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy - - - - - - New-CsTeamsMediaConnectivityPolicy - New - CsTeamsMediaConnectivityPolicy - - This cmdlet creates a Teams media connectivity policy. - - - - This cmdlet creates a Teams media connectivity 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-CsTeamsMediaConnectivityPolicy. - - - - New-CsTeamsMediaConnectivityPolicy - - DirectConnection - - 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 - - String - - - None - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - DirectConnection - - 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 - - String - - - None - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsMediaConnectivityPolicy -Identity Test - -Identity DirectConnection -------------------------- -Tag:Test Enabled - - Creates a new Teams media connectivity policy with the specified identity. The newly created policy with value will be printed on success. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMediaConnectivityPolicy - - - Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy - - - Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy - - - Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy - - - Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy - - - - - - New-CsTeamsMeetingBrandingPolicy - New - CsTeamsMeetingBrandingPolicy - - The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - This cmdlet creates a new TeamsMeetingBrandingPolicy . You can only create an empty meeting branding policy with this cmdlet, image upload is not supported. If you want to upload the images, you should use Teams Admin Center. - - - - New-CsTeamsMeetingBrandingPolicy - - Identity - - Identity of meeting branding policy that will be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultTheme - - This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. - - String - - String - - - None - - - EnableMeetingBackgroundImages - - Enable custom meeting backgrounds. - - Boolean - - Boolean - - - None - - - EnableMeetingOptionsThemeOverride - - Allow organizer to control meeting theme. - - Boolean - - Boolean - - - 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 - - - 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 - - PSListModifier - - - None - - - MeetingBrandingThemes - - 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. - - PSListModifier - - PSListModifier - - - None - - - NdiAssuranceSlateImages - - Used to specify images that can be used as assurance slates during NDI (Network Device Interface) streaming in Teams meetings. This parameter allows administrators to define a set of images that can be displayed to participants to ensure that the NDI stream is functioning correctly. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] - - - None - - - RequireBackgroundEffect - - This mandates a meeting background for participants. - - Boolean - - Boolean - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultTheme - - This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. - - String - - String - - - None - - - EnableMeetingBackgroundImages - - Enable custom meeting backgrounds. - - Boolean - - Boolean - - - None - - - EnableMeetingOptionsThemeOverride - - Allow organizer to control meeting theme. - - Boolean - - Boolean - - - 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 - - Identity of meeting branding policy that will be created. - - String - - String - - - None - - - 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 - - PSListModifier - - - None - - - MeetingBrandingThemes - - 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. - - PSListModifier - - PSListModifier - - - None - - - NdiAssuranceSlateImages - - Used to specify images that can be used as assurance slates during NDI (Network Device Interface) streaming in Teams meetings. This parameter allows administrators to define a set of images that can be displayed to participants to ensure that the NDI stream is functioning correctly. - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.NdiAssuranceSlate] - - - None - - - RequireBackgroundEffect - - This mandates a meeting background for participants. - - Boolean - - Boolean - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - Available in Teams PowerShell Module 4.9.3 and later. - - - - - ------------- Create empty meeting branding policy ------------- - PS C:\> New-CsTeamsMeetingBrandingPolicy -Identity "test policy" - - In this example, the command will create an empty meeting branding policy with the identity `test policy`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy - - - Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - - - - New-CsTeamsMeetingPolicy - New - CsTeamsMeetingPolicy - - 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. - - - - New-CsTeamsMeetingPolicy - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - AllowAnnotations - - This setting will allow admins to choose which users will be able to use the Annotation feature. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowAnonymousUsersToJoinMeeting - - > [!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 - - - True - - - AllowAnonymousUsersToStartMeeting - - 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 - - Boolean - - - None - - - AllowAvatarsInGallery - - If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. - - Boolean - - Boolean - - - None - - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - - - AllowCarbonSummary - - This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. - >[!NOTE] >Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. - - Boolean - - Boolean - - - None - - - AllowCartCaptionsScheduling - - Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real-time captions in meetings. - Possible values are: - - EnabledUserOverride : CART captions are available by default but you can disable them. - DisabledUserOverride : If you would like users to be able to use CART captions in meetings but they are disabled by default. - Disabled : If you do not want to allow CART captions in meetings. - - String - - String - - - DisabledUserOverride - - - AllowChannelMeetingScheduling - - Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. - - Boolean - - Boolean - - - None - - - AllowCloudRecording - - Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings - - Boolean - - Boolean - - - None - - - AllowDocumentCollaboration - - This setting will allow admins to choose which users will be able to use the Document Collaboration feature. - - String - - String - - - 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 - - - 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 - - Determines whether users are allowed to download the attendee engagement report. Set this to Enabled to allow the user to download the report. Set this to Disabled to prohibit the user to download it. ForceEnabled will enable attendee report generation and prohibit meeting organizer from disabling it. - Possible values: - - Enabled - - Disabled - - ForceEnabled - - String - - String - - - 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 - - Determines whether external 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 an external user from giving or requesting control in a meeting - - Boolean - - Boolean - - - None - - - AllowImmersiveView - - If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. - - Boolean - - Boolean - - - None - - - AllowIPAudio - - Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. - - Boolean - - Boolean - - - True - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video - - Boolean - - Boolean - - - None - - - AllowLocalRecording - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowMeetingCoach - - This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. - - Boolean - - Boolean - - - None - - - AllowMeetingReactions - - Set to false to disable Meeting Reactions. - - Boolean - - Boolean - - - True - - - AllowMeetingRegistration - - Controls if a user can create a webinar meeting. The default value is True. - Possible values: - - true - - false - - Boolean - - Boolean - - - 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 - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowNetworkConfigurationSettingsLookup - - Determines whether network configuration setting lookups can be made by users who are not Enterprise Voice enabled. It is used to enable Network Roaming policies. - - Boolean - - Boolean - - - False - - - AllowOrganizersToOverrideLobbySettings - - Set this parameter to true to enable Organizers to override lobby settings. - - Boolean - - Boolean - - - False - - - AllowOutlookAddIn - - Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client - - Boolean - - Boolean - - - None - - - AllowParticipantGiveRequestControl - - 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 - - - None - - - AllowPowerPointSharing - - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AllowPrivateMeetingScheduling - - 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 - - Boolean - - - None - - - AllowPrivateMeetNow - - 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 - - - TRUE - - - AllowPSTNUsersToBypassLobby - - Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True, PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. - - Boolean - - Boolean - - - None - - - AllowRecordingStorageOutsideRegion - - Allow storing recording outside of region. All meeting recordings will be permanently stored in another region, and can't be migrated. For more info, see <https://aka.ms/in-region>. - - Boolean - - Boolean - - - None - - - AllowScreenContentDigitization - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowSharedNotes - - Determines whether users are allowed to take shared notes. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AllowTasksFromTranscript - - This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. - - String - - String - - - None - - - AllowTrackingInReport - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowTranscription - - Determines whether real-time and/or 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 - - - AllowUserToJoinExternalMeeting - - Possible values are: - - Enabled - - FederatedOnly - - Disabled - - String - - String - - - Disabled - - - AllowWatermarkCustomizationForCameraVideo - - Allows the admin to grant customization permissions to a meeting organizer - - Boolean - - Boolean - - - None - - - AllowWatermarkCustomizationForScreenSharing - - Allows the admin to grant customization permissions to a meeting organizer - - Boolean - - Boolean - - - None - - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - - - AllowWatermarkForScreenSharing - - This setting allows scheduling meetings with watermarking for screen sharing enabled. - - Boolean - - Boolean - - - False - - - AllowWhiteboard - - Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AnonymousUserAuthenticationMethod - - 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 - - String - - - OneTimePasscode - - - AttendeeIdentityMasking - - This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). - Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings - - String - - String - - - None - - - AudibleRecordingNotification - - The setting controls whether recording notification is played to all attendees or just PSTN users. - - String - - String - - - None - - - AutoAdmittedUsers - - Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: - - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. - This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). - - String - - String - - - None - - - AutomaticallyStartCopilot - - > [!Note] > This feature has not been fully released yet, so the setting will have no effect.* - This setting gives admins the ability to auto-start Copilot. - Possible values are: - - Enabled - - Disabled - - String - - String - - - Disabled - - - BlockedAnonymousJoinClientTypes - - A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. - The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. - - List - - List - - - Empty List - - - CaptchaVerificationForMeetingJoin - - Require a verification check for meeting join. - - String - - String - - - None - - - ChannelRecordingDownload - - Controls how channel meeting recordings are saved, permissioned, and who can download them. - Possible values: - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ConnectToMeetingControls - - Allows external connections of thirdparty apps to Microsoft Teams - Possible values are: - Enabled Disabled - - String - - String - - - None - - - ContentSharingInExternalMeetings - - This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. - - String - - String - - - None - - - Copilot - - This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. - Possible values are: - - Enabled - - EnabledWithTranscript - - String - - String - - - EnabledWithTranscript - - - CopyRestriction - - Enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. - - Boolean - - Boolean - - - TRUE - - - Description - - Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - DesignatedPresenterRoleMode - - Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. - Possible values are: - - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. - - String - - String - - - EveryoneUserOverride - - - DetectSensitiveContentDuringScreenSharing - - Allows the admin to enable sensitive content detection during screen share. - - Boolean - - Boolean - - - None - - - EnrollUserOverride - - Possible values are: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - 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. - - String - - String - - - None - - - ExternalMeetingJoin - - Possible values are: - - EnabledForAnyone - - EnabledForTrustedOrgs - - Disabled - - String - - String - - - EnabledForAnyone - - - 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 - - - InfoShownInReportMode - - This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. - - String - - String - - - None - - - InMemory - - 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-. - - - SwitchParameter - - - False - - - IPAudioMode - - Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. - - String - - String - - - None - - - IPVideoMode - - Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. Invalid value combination IPVideoMode: EnabledOutgoingIncoming and IPAudioMode: Disabled - - String - - String - - - None - - - LiveCaptionsEnabledType - - 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 - - String - - - None - - - LiveInterpretationEnabledType - - 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 - - String - - - None - - - LiveStreamingMode - - Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). - Possible values are: - - Disabled (default) - - Enabled - - String - - String - - - None - - - LobbyChat - - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - Determines whether chat messages are allowed in the lobby. - Possible values are: - - Enabled - - Disabled - - String - - String - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - UInt32 - - UInt32 - - - None - - - MeetingChatEnabledType - - Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. - - String - - String - - - None - - - 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: - `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. - - String - - String - - - None - - - NewMeetingRecordingExpirationDays - - Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. - > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. - - Int32 - - Int32 - - - None - - - 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: - - MicrosoftDefault - - Enabled - - Disabled - - String - - String - - - None - - - ParticipantNameChange - - This setting will enable Tenant Admins to turn on/off participant renaming feature. - Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Particpant Renaming feature. - - String - - String - - - 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 - - Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. - - String - - String - - - TeamsAndSfb - - - QnAEngagementMode - - This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled - - String - - String - - - 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 - - This parameter can take two possible values: - - Stream - - OneDriveForBusiness - - > [!Note] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. - - String - - String - - - None - - - RoomAttributeUserOverride - - Possible values: - - Off - - Distinguish - - Attribute - - String - - String - - - None - - - RoomPeopleNameUserOverride - - Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. - > [!Note] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: - - On - - Off - - String - - String - - - None - - - ScreenSharingMode - - Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. - - String - - String - - - None - - - SmsNotifications - - Participants can sign up for text message meeting reminders. - - String - - String - - - None - - - SpeakerAttributionMode - - Possible values: - - EnabledUserOverride - - Disabled - - String - - String - - - None - - - StreamingAttendeeMode - - Possible values are: - - Disabled - - Enabled - - String - - String - - - Enabled - - - TeamsCameraFarEndPTZMode - - Possible values are: - - Disabled - - AutoAcceptInTenant - - AutoAcceptAll - - String - - String - - - Disabled - - - 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 - 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. - - Guid - - Guid - - - None - - - UsersCanAdmitFromLobby - - This policy controls who can admit from the lobby. - - String - - String - - - None - - - VideoFiltersMode - - Determines the background effects that a user can configure in the Teams client. Possible values are: - - NoFilters: No filters are available. - - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. - - AllFilters: All filters are available, including custom images. This is the default value. - - String - - String - - - AllFilters - - - VoiceIsolation - - Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. - Possible values are: - - Enabled (default) - - Disabled - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - WatermarkForAnonymousUsers - - Determines the meeting experience and watermark content of an anonymous user. - - String - - String - - - None - - - WatermarkForCameraVideoOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForCameraVideoPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WatermarkForScreenSharingOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForScreenSharingPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - WhoCanRegister - - Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts, set the value to 'EveryoneInCompany'. - Possible values: - - Everyone - - EveryoneInCompany - - Object - - Object - - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - AllowAnnotations - - This setting will allow admins to choose which users will be able to use the Annotation feature. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowAnonymousUsersToJoinMeeting - - > [!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 - - - True - - - AllowAnonymousUsersToStartMeeting - - 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 - - Boolean - - - None - - - AllowAvatarsInGallery - - If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. - - Boolean - - Boolean - - - None - - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - - - AllowCarbonSummary - - This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. - >[!NOTE] >Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. - - Boolean - - Boolean - - - None - - - AllowCartCaptionsScheduling - - Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real-time captions in meetings. - Possible values are: - - EnabledUserOverride : CART captions are available by default but you can disable them. - DisabledUserOverride : If you would like users to be able to use CART captions in meetings but they are disabled by default. - Disabled : If you do not want to allow CART captions in meetings. - - String - - String - - - DisabledUserOverride - - - AllowChannelMeetingScheduling - - Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. Note this only restricts from scheduling and not from joining a meeting scheduled by another user. - - Boolean - - Boolean - - - None - - - AllowCloudRecording - - Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings - - Boolean - - Boolean - - - None - - - AllowDocumentCollaboration - - This setting will allow admins to choose which users will be able to use the Document Collaboration feature. - - String - - String - - - 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 - - - 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 - - Determines whether users are allowed to download the attendee engagement report. Set this to Enabled to allow the user to download the report. Set this to Disabled to prohibit the user to download it. ForceEnabled will enable attendee report generation and prohibit meeting organizer from disabling it. - Possible values: - - Enabled - - Disabled - - ForceEnabled - - String - - String - - - 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 - - Determines whether external 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 an external user from giving or requesting control in a meeting - - Boolean - - Boolean - - - None - - - AllowImmersiveView - - If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. - - Boolean - - Boolean - - - None - - - AllowIPAudio - - Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. - - Boolean - - Boolean - - - True - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video - - Boolean - - Boolean - - - None - - - AllowLocalRecording - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowMeetingCoach - - This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. - - Boolean - - Boolean - - - None - - - AllowMeetingReactions - - Set to false to disable Meeting Reactions. - - Boolean - - Boolean - - - True - - - AllowMeetingRegistration - - Controls if a user can create a webinar meeting. The default value is True. - Possible values: - - true - - false - - Boolean - - Boolean - - - 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 - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowNetworkConfigurationSettingsLookup - - Determines whether network configuration setting lookups can be made by users who are not Enterprise Voice enabled. It is used to enable Network Roaming policies. - - Boolean - - Boolean - - - False - - - AllowOrganizersToOverrideLobbySettings - - Set this parameter to true to enable Organizers to override lobby settings. - - Boolean - - Boolean - - - False - - - AllowOutlookAddIn - - Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client - - Boolean - - Boolean - - - None - - - AllowParticipantGiveRequestControl - - 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 - - - None - - - AllowPowerPointSharing - - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AllowPrivateMeetingScheduling - - 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 - - Boolean - - - None - - - AllowPrivateMeetNow - - 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 - - - TRUE - - - AllowPSTNUsersToBypassLobby - - Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True, PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. - - Boolean - - Boolean - - - None - - - AllowRecordingStorageOutsideRegion - - Allow storing recording outside of region. All meeting recordings will be permanently stored in another region, and can't be migrated. For more info, see <https://aka.ms/in-region>. - - Boolean - - Boolean - - - None - - - AllowScreenContentDigitization - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowSharedNotes - - Determines whether users are allowed to take shared notes. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AllowTasksFromTranscript - - This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. - - String - - String - - - None - - - AllowTrackingInReport - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowTranscription - - Determines whether real-time and/or 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 - - - AllowUserToJoinExternalMeeting - - Possible values are: - - Enabled - - FederatedOnly - - Disabled - - String - - String - - - Disabled - - - AllowWatermarkCustomizationForCameraVideo - - Allows the admin to grant customization permissions to a meeting organizer - - Boolean - - Boolean - - - None - - - AllowWatermarkCustomizationForScreenSharing - - Allows the admin to grant customization permissions to a meeting organizer - - Boolean - - Boolean - - - None - - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - - - AllowWatermarkForScreenSharing - - This setting allows scheduling meetings with watermarking for screen sharing enabled. - - Boolean - - Boolean - - - False - - - AllowWhiteboard - - Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit - - Boolean - - Boolean - - - None - - - AnonymousUserAuthenticationMethod - - 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 - - String - - - OneTimePasscode - - - AttendeeIdentityMasking - - This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). - Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings - - String - - String - - - None - - - AudibleRecordingNotification - - The setting controls whether recording notification is played to all attendees or just PSTN users. - - String - - String - - - None - - - AutoAdmittedUsers - - Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: - - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. - This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). - - String - - String - - - None - - - AutomaticallyStartCopilot - - > [!Note] > This feature has not been fully released yet, so the setting will have no effect.* - This setting gives admins the ability to auto-start Copilot. - Possible values are: - - Enabled - - Disabled - - String - - String - - - Disabled - - - BlockedAnonymousJoinClientTypes - - A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. - The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. - - List - - List - - - Empty List - - - CaptchaVerificationForMeetingJoin - - Require a verification check for meeting join. - - String - - String - - - None - - - ChannelRecordingDownload - - Controls how channel meeting recordings are saved, permissioned, and who can download them. - Possible values: - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ConnectToMeetingControls - - Allows external connections of thirdparty apps to Microsoft Teams - Possible values are: - Enabled Disabled - - String - - String - - - None - - - ContentSharingInExternalMeetings - - This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. - - String - - String - - - None - - - Copilot - - This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. - Possible values are: - - Enabled - - EnabledWithTranscript - - String - - String - - - EnabledWithTranscript - - - CopyRestriction - - Enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. - - Boolean - - Boolean - - - TRUE - - - Description - - Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - DesignatedPresenterRoleMode - - Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. - Possible values are: - - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. - - String - - String - - - EveryoneUserOverride - - - DetectSensitiveContentDuringScreenSharing - - Allows the admin to enable sensitive content detection during screen share. - - Boolean - - Boolean - - - None - - - EnrollUserOverride - - Possible values are: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - 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. - - String - - String - - - None - - - ExternalMeetingJoin - - Possible values are: - - EnabledForAnyone - - EnabledForTrustedOrgs - - Disabled - - String - - String - - - EnabledForAnyone - - - 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 - - Specify the name of the policy being created. - - XdsIdentity - - XdsIdentity - - - None - - - InfoShownInReportMode - - This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. - - String - - String - - - None - - - InMemory - - 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-. - - SwitchParameter - - SwitchParameter - - - False - - - IPAudioMode - - Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. - - String - - String - - - None - - - IPVideoMode - - Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. Invalid value combination IPVideoMode: EnabledOutgoingIncoming and IPAudioMode: Disabled - - String - - String - - - None - - - LiveCaptionsEnabledType - - 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 - - String - - - None - - - LiveInterpretationEnabledType - - 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 - - String - - - None - - - LiveStreamingMode - - Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). - Possible values are: - - Disabled (default) - - Enabled - - String - - String - - - None - - - LobbyChat - - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - Determines whether chat messages are allowed in the lobby. - Possible values are: - - Enabled - - Disabled - - String - - String - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - UInt32 - - UInt32 - - - None - - - MeetingChatEnabledType - - Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. - - String - - String - - - None - - - 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: - `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. - - String - - String - - - None - - - NewMeetingRecordingExpirationDays - - Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. - > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. - - Int32 - - Int32 - - - None - - - 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: - - MicrosoftDefault - - Enabled - - Disabled - - String - - String - - - None - - - ParticipantNameChange - - This setting will enable Tenant Admins to turn on/off participant renaming feature. - Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Particpant Renaming feature. - - String - - String - - - 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 - - Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. - - String - - String - - - TeamsAndSfb - - - QnAEngagementMode - - This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled - - String - - String - - - 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 - - This parameter can take two possible values: - - Stream - - OneDriveForBusiness - - > [!Note] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. - - String - - String - - - None - - - RoomAttributeUserOverride - - Possible values: - - Off - - Distinguish - - Attribute - - String - - String - - - None - - - RoomPeopleNameUserOverride - - Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. - > [!Note] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: - - On - - Off - - String - - String - - - None - - - ScreenSharingMode - - Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. - - String - - String - - - None - - - SmsNotifications - - Participants can sign up for text message meeting reminders. - - String - - String - - - None - - - SpeakerAttributionMode - - Possible values: - - EnabledUserOverride - - Disabled - - String - - String - - - None - - - StreamingAttendeeMode - - Possible values are: - - Disabled - - Enabled - - String - - String - - - Enabled - - - TeamsCameraFarEndPTZMode - - Possible values are: - - Disabled - - AutoAcceptInTenant - - AutoAcceptAll - - String - - String - - - Disabled - - - 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 - 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. - - Guid - - Guid - - - None - - - UsersCanAdmitFromLobby - - This policy controls who can admit from the lobby. - - String - - String - - - None - - - VideoFiltersMode - - Determines the background effects that a user can configure in the Teams client. Possible values are: - - NoFilters: No filters are available. - - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. - - AllFilters: All filters are available, including custom images. This is the default value. - - String - - String - - - AllFilters - - - VoiceIsolation - - Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. - Possible values are: - - Enabled (default) - - Disabled - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - WatermarkForAnonymousUsers - - Determines the meeting experience and watermark content of an anonymous user. - - String - - String - - - None - - - WatermarkForCameraVideoOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForCameraVideoPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WatermarkForScreenSharingOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForScreenSharingPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - WhoCanRegister - - Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts, set the value to 'EveryoneInCompany'. - Possible values: - - Everyone - - EveryoneInCompany - - Object - - Object - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - New-CsTeamsMeetingPolicy -Identity SalesMeetingPolicy -AllowTranscription $True - - The command shown in Example 1 uses the New-CsTeamsMeetingPolicy cmdlet to create a new meeting policy with the Identity SalesMeetingPolicy. This policy will use all the default values for a meeting policy except one: AllowTranscription; in this example, meetings for users with this policy can include real time or post meeting captions and transcriptions. - - - - -------------------------- EXAMPLE 2 -------------------------- - New-CsTeamsMeetingPolicy -Identity HrMeetingPolicy -AutoAdmittedUsers "Everyone" -AllowMeetNow $False - - In Example 2, the New-CsTeamsMeetingPolicy cmdlet is used to create a meeting policy with the Identity HrMeetingPolicy. In this example two different property values are configured: AutoAdmittedUsers is set to Everyone and AllowMeetNow is set to False. All other policy properties will use the default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingpolicy - - - - - - New-CsTeamsMeetingTemplatePermissionPolicy - New - CsTeamsMeetingTemplatePermissionPolicy - - Creates a new instance of the TeamsMeetingTemplatePermissionPolicy. - - - - 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 - - Description - - > Applicable: Microsoft Teams - Description of the new policy instance to be created. - - String - - String - - - None - - - HiddenMeetingTemplates - - > 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[] - - HiddenMeetingTemplate[] - - - None - - - Identity - - > Applicable: Microsoft Teams - Name of the new policy instance to be created. - - String - - String - - - None - - - - - - Description - - > Applicable: Microsoft Teams - Description of the new policy instance to be created. - - String - - String - - - None - - - HiddenMeetingTemplates - - > 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[] - - HiddenMeetingTemplate[] - - - None - - - Identity - - > Applicable: Microsoft Teams - Name of the new policy instance to be created. - - String - - String - - - None - - - - - - - - - - - - Example 1 - Creating a new meeting template permission policy - $hiddentemplate_1 = New-CsTeamsHiddenMeetingTemplate -Id customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056 -$hiddentemplate_2 = New-CsTeamsHiddenMeetingTemplate -Id firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748 - -New-CsTeamsMeetingTemplatePermissionPolicy -Identity Test_Policy -HiddenMeetingTemplates @($hiddentemplate_1, $hiddentemplate_2) -Description "This is a test policy" - -Identity : Tag:Test_Policy -HiddenMeetingTemplates : {customtemplate_9ab0014a-bba4-4ad6-b816-0b42104b5056, firstparty_e514e598-fba6-4e1f-b8b3-138dd3bca748} -Description : This is a test policy - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/New-CsTeamsMeetingTemplatePermissionPolicy - - - New-CsTeamsHiddenMeetingTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamshiddenmeetingtemplate - - - Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy - - - Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy - - - - - - New-CsTeamsMessagingPolicy - New - CsTeamsMessagingPolicy - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. - - - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet creates a new Teams messaging policy. Custom policies can then be assigned to users using the Grant-CsTeamsMessagingPolicy cmdlet. - - - - New-CsTeamsMessagingPolicy - - Identity - - Unique identifier for the teams messaging policy to be created. - - XdsIdentity - - XdsIdentity - - - None - - - AllowSmartCompose - - Turn on this setting to let a user get text predictions for chat messages. - - Boolean - - Boolean - - - None - - - AllowChatWithGroup - - This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowCommunicationComplianceEndUserReporting - - This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False - - Boolean - - Boolean - - - None - - - AllowCustomGroupChatAvatars - - These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowExtendedWorkInfoInSearch - - This setting enables/disables showing company name and department name in search results for MTO users. - - Boolean - - Boolean - - - None - - - AllowFluidCollaborate - - This field enables or disables Fluid Collaborate feature for users. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowFullChatPermissionUserToDeleteAnyMessage - - This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGiphy - - Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowGiphyDisplay - - Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGroupChatJoinLinks - - This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessage - - Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. - If the `-AllowUserDeleteMessage` parameter is set to FALSE, the team owner will not be able to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowPasteInternetImage - - Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowPriorityMessages - - Determines whether a user is allowed to send priorities messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowRemoveUser - - Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSecurityEndUserReporting - - This setting determines if users can report any security concern posted in messages to their admin. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowSmartReply - - Turn this setting on to enable suggested replies for chat messages. - - Boolean - - Boolean - - - True - - - AllowStickers - - Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUrlPreviews - - Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. Note: Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessage - - Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserTranslation - - Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowVideoMessages - - This setting determines if users can create and send video messages. Possible values: True, False - - Boolean - - Boolean - - - None - - - AudioMessageEnabledType - - Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels,ChatsOnly,Disabled. - - AudioMessageEnabledTypeEnum - - AudioMessageEnabledTypeEnum - - - None - - - ChannelsInChatListEnabledType - - On mobile devices, enable to display favorite channels above recent chats. - Possible values are: DisabledUserOverride,EnabledUserOverride. - - ChannelsInChatListEnabledTypeEnum - - ChannelsInChatListEnabledTypeEnum - - - None - - - ChatPermissionRole - - Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. - - String - - String - - - Restricted - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CreateCustomEmojis - - This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. - - Boolean - - Boolean - - - None - - - DeleteCustomEmojis - - These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. - - Boolean - - Boolean - - - None - - - Description - - Allows you to provide a description of your policy to note the purpose of creating it. - - String - - String - - - None - - - DesignerForBackgroundsAndImages - - This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. - Possible values are: Enabled, Disabled. - - 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 - - - GiphyRatingType - - Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. - - String - - String - - - None - - - InMemory - - 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-. - - - SwitchParameter - - - False - - - InOrganizationChatControl - - This setting determines if chat regulation for internal communication in the tenant is allowed. - - String - - String - - - None - - - ReadReceiptsEnabledType - - Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. - - String - - String - - - 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 - - Guid - - Guid - - - 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 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowChatWithGroup - - This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowCommunicationComplianceEndUserReporting - - This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False - - Boolean - - Boolean - - - None - - - AllowCustomGroupChatAvatars - - These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowExtendedWorkInfoInSearch - - This setting enables/disables showing company name and department name in search results for MTO users. - - Boolean - - Boolean - - - None - - - AllowFluidCollaborate - - This field enables or disables Fluid Collaborate feature for users. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowFullChatPermissionUserToDeleteAnyMessage - - This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGiphy - - Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowGiphyDisplay - - Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGroupChatJoinLinks - - This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessage - - Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. - If the `-AllowUserDeleteMessage` parameter is set to FALSE, the team owner will not be able to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowPasteInternetImage - - Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowPriorityMessages - - Determines whether a user is allowed to send priorities messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowRemoveUser - - Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSecurityEndUserReporting - - This setting determines if users can report any security concern posted in messages to their admin. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowSmartCompose - - Turn on this setting to let a user get text predictions for chat messages. - - Boolean - - Boolean - - - None - - - AllowSmartReply - - Turn this setting on to enable suggested replies for chat messages. - - Boolean - - Boolean - - - True - - - AllowStickers - - Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUrlPreviews - - Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. Note: Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessage - - Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserTranslation - - Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowVideoMessages - - This setting determines if users can create and send video messages. Possible values: True, False - - Boolean - - Boolean - - - None - - - AudioMessageEnabledType - - Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels,ChatsOnly,Disabled. - - AudioMessageEnabledTypeEnum - - AudioMessageEnabledTypeEnum - - - None - - - ChannelsInChatListEnabledType - - On mobile devices, enable to display favorite channels above recent chats. - Possible values are: DisabledUserOverride,EnabledUserOverride. - - ChannelsInChatListEnabledTypeEnum - - ChannelsInChatListEnabledTypeEnum - - - None - - - ChatPermissionRole - - Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. - - String - - String - - - Restricted - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CreateCustomEmojis - - This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. - - Boolean - - Boolean - - - None - - - DeleteCustomEmojis - - These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. - - Boolean - - Boolean - - - None - - - Description - - Allows you to provide a description of your policy to note the purpose of creating it. - - String - - String - - - None - - - DesignerForBackgroundsAndImages - - This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. - Possible values are: Enabled, Disabled. - - 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 - - - GiphyRatingType - - Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. - - String - - String - - - None - - - Identity - - Unique identifier for the teams messaging policy to be created. - - XdsIdentity - - XdsIdentity - - - None - - - InMemory - - 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-. - - SwitchParameter - - SwitchParameter - - - False - - - InOrganizationChatControl - - This setting determines if chat regulation for internal communication in the tenant is allowed. - - String - - String - - - None - - - ReadReceiptsEnabledType - - Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. - - String - - String - - - 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 - - Guid - - Guid - - - 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 - - - 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 - - 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/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-CsTeamsPersonalAttendantPolicy - New - CsTeamsPersonalAttendantPolicy - - 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 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-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 -------------------------- - New-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy -CallScreening Enabled - - 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/microsoftteams/new-csteamspersonalattendantpolicy - - - Get-CsTeamsPersonalAttendantPolicy - - - - Set-CsTeamsPersonalAttendantPolicy - - - - Grant-CsTeamsPersonalAttendantPolicy - - - - Remove-CsTeamsPersonalAttendantPolicy - - - - - - - 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 - - Specify the name of the policy being created. - - String - - String - - - None - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - TeamsRecordingRollOutPolicy.Cmdlets.TeamsRecordingRollOutPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - 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/microsoftteams/new-csteamsrecordingrolloutpolicy - - - - - - New-CsTeamsSharedCallingRoutingPolicy - New - CsTeamsSharedCallingRoutingPolicy - - Use the New-CsTeamsSharedCallingRoutingPolicy cmdlet to configure a shared calling routing 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. - - - - New-CsTeamsSharedCallingRoutingPolicy - - Identity - - Unique identifier of the Teams shared calling routing policy to be created. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - 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 - - - False - - - 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 - - - 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 - - - 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 - - - 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 - - - False - - - 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 - - - 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 - - - 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. - - - 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 - - - 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 - - - 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. - - 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 - - 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 - - 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 - - SwitchParameter - - - False - - - Identity - - A unique identifier. - - String - - String - - - None - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - TeamsUpdateManagementPolicy.Cmdlets.TeamsUpdateManagementPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" -DisabledInProductMessages @("91382d07-8b89-444c-bbcb-cfe43133af33") - - Disable the in-product messages with the category "What's New". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsupdatemanagementpolicy - - - - - - New-CsTeamsVdiPolicy - New - CsTeamsVdiPolicy - - 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. - - - - New-CsTeamsVdiPolicy - - Identity - - Specify the name of the policy being created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DisableAudioVideoInCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. - - Boolean - - Boolean - - - None - - - DisableCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. - - Boolean - - Boolean - - - None - - - 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 - - - VDI2Optimization - - Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. - * Disabled - disallow a user to be VDI 2.0 optimized. - - 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 - - - DisableAudioVideoInCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. - - Boolean - - Boolean - - - None - - - DisableCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. - - Boolean - - Boolean - - - None - - - 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 - - Specify the name of the policy being created. - - String - - String - - - None - - - VDI2Optimization - - Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. - * Disabled - disallow a user to be VDI 2.0 optimized. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - TeamsVdiPolicy.Cmdlets.TeamsVdiPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" - - The command shown in Example 1 uses the New-CsTeamsVdiPolicy cmdlet to create a new Vdi policy with the Identity RestrictedUserPolicy. This policy will use all the default values for a vdi policy except one: VDI2Optimization; in this example, users with this policy will not be able to be VDI 2.0 optimized. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsVdiPolicy -Identity OnlyOptimizedPolicy -DisableAudioVideoInCallsAndMeetings $True -DisableCallsAndMeetings $True - - In Example 2, the New-CsTeamsVdiPolicy cmdlet is used to create a Vdi policy with the Identity OnlyOptimizedPolicy. In this example two different property values are configured: DisableAudioVideoInCallsAndMeetings is set to True and DisableCallsAndMeetings is set to True. All other policy properties will use the default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvdipolicy - - - - - - New-CsTeamsVirtualAppointmentsPolicy - New - CsTeamsVirtualAppointmentsPolicy - - This cmdlet is used to create a new instance of the TeamsVirtualAppointmentsPolicy. - - - - Creates a new instance of the TeamsVirtualAppointmentsPolicy. This policy can be used to tailor the virtual appointment template meeting experience. The parameter `EnableSmsNotifications` allows you to specify whether your users can choose to send SMS text notifications to external guests in meetings that they schedule using the virtual appointment meeting template. - - - - New-CsTeamsVirtualAppointmentsPolicy - - Identity - - Name of the new policy instance to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - Boolean - - - True - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - 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 - - - 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 - - Boolean - - - True - - - 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 - - - - - - - - - - TeamsVirtualAppointmentsPolicy.Cmdlets.TeamsVirtualAppointmentsPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsVirtualAppointmentsPolicy -Identity sms-enabled - -Identity EnableSmsNotifications --------- ---------------------- -Tag:sms-enabled True - - Creates a new policy instance with the identity enable-sms. `EnableSmsNotifications` will default to true if it is not specified. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsVirtualAppointmentsPolicy -Identity disable-sms -EnableSmsNotifications $false - -Identity EnableSmsNotifications --------- ---------------------- -Tag:sms-enabled False - - Creates a new policy instance with the identity sms-disabled. `EnableSmsNotifications` is set to the value specified in the command. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy - - - Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy - - - Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy - - - Set-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy - - - Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy - - - - - - New-CsTeamsVoiceApplicationsPolicy - New - CsTeamsVoiceApplicationsPolicy - - Creates a new Teams voice applications policy. `TeamsVoiceApplications` policy governs what permissions the supervisors/users have over auto attendants and call queues. - - - - `TeamsVoiceApplicationsPolicy` is used for Supervisor Delegated Administration which allows admins in the organization to permit certain users to make changes to auto attendant and call queue configurations. - - - - New-CsTeamsVoiceApplicationsPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - AllowAutoAttendantAfterHoursGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantAfterHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantBusinessHoursChange - - 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 - - Boolean - - - False - - - 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 - - - AllowAutoAttendantBusinessHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayRoutingChange - - 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 - - Boolean - - - 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 - - - AllowAutoAttendantLanguageChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantTimeZoneChange - - 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 - - Boolean - - - False - - - AllowCallQueueAgentOptChange - - 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 - - Boolean - - - False - - - AllowCallQueueConferenceModeChange - - 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 - - Boolean - - - False - - - AllowCallQueueLanguageChange - - 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 - - Boolean - - - False - - - AllowCallQueueMembershipChange - - 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 - - Boolean - - - False - - - AllowCallQueueMusicOnHoldChange - - 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 - - Boolean - - - False - - - 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 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 - - Boolean - - - False - - - AllowCallQueueNoAgentsRoutingChange - - 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 - - Boolean - - - False - - - AllowCallQueueOptOutChange - - 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 - - Boolean - - - False - - - AllowCallQueueOverflowRoutingChange - - 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 - - Boolean - - - 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 - - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. - - Boolean - - Boolean - - - False - - - AllowCallQueueTimeoutSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueWelcomeGreetingChange - - 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 - - Boolean - - - False - - - CallQueueAgentMonitorMode - - > 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. - When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. - When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. - - Object - - Object - - - Disabled - - - CallQueueAgentMonitorNotificationMode - - > 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. - - Object - - Object - - - Disabled - - - 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 - - - HistoricalAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. - - Object - - Object - - - None - - - RealTimeAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeAutoAttendantMetricsPermission - - > 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 - - Object - - - None - - - RealTimeCallQueueMetricsPermission - - > 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 - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowAutoAttendantAfterHoursGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantAfterHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantBusinessHoursChange - - 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 - - Boolean - - - False - - - 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 - - - AllowAutoAttendantBusinessHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayRoutingChange - - 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 - - Boolean - - - 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 - - - AllowAutoAttendantLanguageChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantTimeZoneChange - - 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 - - Boolean - - - False - - - AllowCallQueueAgentOptChange - - 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 - - Boolean - - - False - - - AllowCallQueueConferenceModeChange - - 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 - - Boolean - - - False - - - AllowCallQueueLanguageChange - - 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 - - Boolean - - - False - - - AllowCallQueueMembershipChange - - 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 - - Boolean - - - False - - - AllowCallQueueMusicOnHoldChange - - 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 - - Boolean - - - False - - - 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 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 - - Boolean - - - False - - - AllowCallQueueNoAgentsRoutingChange - - 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 - - Boolean - - - False - - - AllowCallQueueOptOutChange - - 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 - - Boolean - - - False - - - AllowCallQueueOverflowRoutingChange - - 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 - - Boolean - - - 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 - - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. - - Boolean - - Boolean - - - False - - - AllowCallQueueTimeoutSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueWelcomeGreetingChange - - 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 - - Boolean - - - False - - - CallQueueAgentMonitorMode - - > 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. - When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. - When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. - - Object - - Object - - - Disabled - - - CallQueueAgentMonitorNotificationMode - - > 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. - - Object - - Object - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - 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 - - - HistoricalAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. - - Object - - Object - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - RealTimeAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeAutoAttendantMetricsPermission - - > 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 - - Object - - - None - - - RealTimeCallQueueMetricsPermission - - > 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 - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - New-CsTeamsVoiceApplicationsPolicy -Identity SDA-Allow-CQ-Moh -AllowCallQueueMusicOnHoldChange $true - - The command shown in Example 1 creates a new per-user Teams voice applications policy with the Identity `SDA-Allow-Moh`. This policy allows delegated administrators to change the music on hold information. - - - - -------------------------- EXAMPLE 2 -------------------------- - New-CsTeamsVoiceApplicationsPolicy -Identity SDA-Allow-AA-After-Hour -AllowAutoAttendantAfterHoursGreetingChange $true - - The command shown in Example 2 creates a new per-user Teams voice applications policy with the Identity `SDA-Allow-AA-After-Hour`. This policy allows delegated administrators to change after-hours greetings for auto attendants. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy - - - Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy - - - Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy - - - Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy - - - Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy - - - - - - New-CsTeamsWorkLocationDetectionPolicy - New - CsTeamsWorkLocationDetectionPolicy - - 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). - - - - New-CsTeamsWorkLocationDetectionPolicy - - Identity - - Name of the new policy instance to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - EnableWorkLocationDetection - - This setting 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). - - Boolean - - Boolean - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - 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 - - - EnableWorkLocationDetection - - This setting 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). - - Boolean - - Boolean - - - None - - - 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 - - - - - - - - - - TeamsWorkLocationDetectionPolicy.Cmdlets.TeamsWorkLocationDetectionPolicy - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy -EnableWorkLocationDetection $true - -Identity EnableWorkLocationDetection --------- ---------------------- -Tag:wld-policy True - - Creates a new policy instance with the identity wld-enabled. `EnableWorkLocationDetection` is set to the value specified in the command. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy - -Identity EnableWorkLocationDetection --------- ---------------------- -Tag:wld-policy False - - Creates a new policy instance with the identity wld-policy. `EnableWorkLocationDetection` will default to false if it is not specified. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy - - - Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy - - - Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy - - - Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy - - - Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy - - - - - - Remove-CsExternalAccessPolicy - Remove - CsExternalAccessPolicy - - 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/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. - The `Remove-CsExternalAccessPolicy` cmdlet enables you to delete any policies that were created by using the `New-CsExternalAccessPolicy` cmdlet; that means you can delete any policies assigned to the site scope or the per-user scope. You can also run the `Remove-CsExternalAccessPolicy` cmdlet against the global external access policy. In that case, however, the global policies will not be deleted; by design, global policies cannot be deleted. Instead, the properties of the global policy will simply be reset to their default values. - - - - Remove-CsExternalAccessPolicy - - 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. - - XdsIdentity - - XdsIdentity - - - 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. - - - SwitchParameter - - - 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 - - - False - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being removed. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - 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 - - - - - - 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 - - SwitchParameter - - - 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 - - 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 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 - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being removed. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - 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 - - - - - - Input types - - - Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The `Remove-CsExternalAccessPolicy` cmdlet accepts pipelined input of the external access policy object. - - - - - - - Output types - - - None. Instead, the `Remove-CsExternalAccessPolicy` cmdlet does not return a value or object. Instead, the cmdlet deletes instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. - - - - - - - - - - - -------------------------- 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 -------------------------- - 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 -------------------------- - 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 -------------------------- - 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. - To delete all the policies where both EnableFederationAccess and EnablePublicCloudAccess are True use the -and operator when calling the `Where-Object` cmdlet: - `Where-Object {$ .EnableFederationAccess -eq $True -and $ .EnablePublicCloudAccess -eq $True}` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy - - - Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy - - - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy - - - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy - - - Set-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy - - - - - - Remove-CsOnlineVoicemailPolicy - Remove - CsOnlineVoicemailPolicy - - Deletes an existing Online Voicemail policy or resets the Global policy instance to the default values. - - - - Deletes an existing Online Voicemail policy or resets the Global policy instance to the default values. - - - - Remove-CsOnlineVoicemailPolicy - - Identity - - > Applicable: Microsoft Teams - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - 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 - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - You are not able to delete the pre-configured policy instances Default, TranscriptionProfanityMaskingEnabled and TranscriptionDisabled - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" - - The command shown in Example 1 deletes a per-user online voicemail policy CustomOnlineVoicemailPolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy - - - Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy - - - Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy - - - New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy - - - Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy - - - - - - Remove-CsTeamsAIPolicy - Remove - CsTeamsAIPolicy - - This cmdlet deletes a Teams AI policy. - - - - 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. - - - - Remove-CsTeamsAIPolicy - - Identity - - Identity of the Teams AI policy. - - String - - String - - - None - - - - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsAIPolicy -Identity "Test" - - Deletes a Teams AI policy with the identify of "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsAIPolicy - - - New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy - - - Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy - - - Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy - - - Set-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaipolicy - - - - - - Remove-CsTeamsAppPermissionPolicy - Remove - CsTeamsAppPermissionPolicy - - 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 is only applicable for tenants who have not been migrated to ACM or UAM. - - - - Remove-CsTeamsAppPermissionPolicy - - 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 - - XdsIdentity - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - 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 - - XdsIdentity - - - None - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsAppPermissionPolicy -Identity SalesPolicy - - Deletes a custom policy that has already been created in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsapppermissionpolicy - - - - - - Remove-CsTeamsAppSetupPolicy - Remove - CsTeamsAppSetupPolicy - - You can use this cmdlet to remove custom app setup policies. - - - - 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. - - - - Remove-CsTeamsAppSetupPolicy - - 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 - - XdsIdentity - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - 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 - - XdsIdentity - - - None - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsAppSetupPolicy -Identity SalesPolicy - - Deletes a custom policy that has already been created in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsappsetuppolicy - - - - - - Remove-CsTeamsCallHoldPolicy - Remove - CsTeamsCallHoldPolicy - - Deletes an existing Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. - - - - Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. - Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. - - - - Remove-CsTeamsCallHoldPolicy - - Identity - - Unique identifier of the Teams call hold policy to be removed. - - String - - String - - - 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 - - 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 - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier of the Teams call hold policy to be removed. - - 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-CsTeamsCallHoldPolicy -Identity 'ContosoPartnerTeamsCallHoldPolicy' - - The command shown in Example 1 deletes the Teams call hold policy ContosoPartnerTeamsCallHoldPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsCallHoldPolicy -Filter 'Tag:*' | Remove-CsTeamsCallHoldPolicy - - In Example 2, all the Teams call hold policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams call hold policies configured at the per-user scope. Those per-user policies are then removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy - - - New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy - - - Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy - - - Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy - - - Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy - - - - - - Remove-CsTeamsCallingPolicy - Remove - CsTeamsCallingPolicy - - - - - - This cmdlet removes an existing Teams Calling Policy instance or resets the Global policy instance to the default values. - - - - Remove-CsTeamsCallingPolicy - - Identity - - The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. - - 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 - - The Identity parameter is the unique identifier of the Teams Calling Policy instance to remove or reset. - - 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-CsTeamsCallingPolicy -Identity Sales - - This example removes the Teams Calling Policy with identity Sales - - - - -------------------------- Example 2 -------------------------- - PS C:\> Remove-CsTeamsCallingPolicy -Identity Global - - This example resets the Global Policy instance to the default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy - - - Set-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy - - - Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy - - - Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy - - - New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy - - - - - - Remove-CsTeamsChannelsPolicy - Remove - CsTeamsChannelsPolicy - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. - - - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. The Remove-CsTeamsChannelsPolicy cmdlet lets you delete a custom policy that has been configured in your organization. - If you run Remove-CsTeamsChannelsPolicy on the Global policy, it will be reset to the defaults provided for new organizations. - - - - Remove-CsTeamsChannelsPolicy - - 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 - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - 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 - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsChannelsPolicy -Identity SalesPolicy - - Deletes a custom policy that has already been created in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy - - - - - - Remove-CsTeamsComplianceRecordingApplication - Remove - CsTeamsComplianceRecordingApplication - - Deletes an existing association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - 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. - 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. - 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. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. - - - - Remove-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 compliance recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - - XdsIdentity - - XdsIdentity - - - 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 - - - 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 - - - - - - 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 - - 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 compliance recording policy with Identity ContosoPartnerComplianceRecordingPolicy. - - XdsIdentity - - XdsIdentity - - - 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 - - - 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-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' - - The command shown in Example 1 deletes an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication | Remove-CsTeamsComplianceRecordingApplication - - The command shown in Example 2 deletes all existing associations between application instances of policy-based recording applications and their corresponding Teams compliance recording policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Remove-CsTeamsComplianceRecordingPolicy - Remove - CsTeamsComplianceRecordingPolicy - - Deletes an existing Teams recording policy that is used to govern automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - Teams recording policies 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 record audio, video and video-based screen sharing activity. - Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. - 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. - Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. - - - - Remove-CsTeamsComplianceRecordingPolicy - - 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 - - - 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 - - - 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 - - - - - - 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 - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' - - The command shown in Example 1 deletes the Teams recording policy ContosoPartnerComplianceRecordingPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingPolicy -Filter 'Tag:*' | Remove-CsTeamsComplianceRecordingPolicy - - In Example 2, all the Teams recording policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams recording policies configured at the per-user scope. Those per-user policies are then removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Remove-CsTeamsCustomBannerText - Remove - CsTeamsCustomBannerText - - Enables administrators to remove a custom banner text configuration that is displayed when compliance recording bots start recording the call. - - - - Removes a single instance of custom banner text. - - - - Remove-CsTeamsCustomBannerText - - Identity - - > Applicable: Microsoft Teams - Policy instance name (optional). - - String - - String - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - Policy instance name (optional). - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsCustomBannerText -Identity CustomText - - This example removes a TeamsCustomBannerText instance with the name "CustomText". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsCustomBannerText - - - Set-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscustombannertext - - - New-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscustombannertext - - - Remove-CsTeamsCustomBannerText - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscustombannertext - - - - - - Remove-CsTeamsEmergencyCallingPolicy - Remove - CsTeamsEmergencyCallingPolicy - - - - - - This cmdlet removes an existing Teams Emergency Calling policy. - - - - Remove-CsTeamsEmergencyCallingPolicy - - Identity - - The Identity parameter is the unique identifier of the Teams Emergency Calling policy to remove. - - 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 - - The Identity parameter is the unique identifier of the Teams Emergency Calling policy to remove. - - String - - String - - - 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 -------------------------- - Remove-CsTeamsEmergencyCallingPolicy -Identity testECP - - This example removes an existing Teams Emergency Calling policy with identity testECP. - - - - -------------------------- Example 2 -------------------------- - Remove-CsTeamsEmergencyCallingPolicy -Identity Global - - This example resets the Global Policy instance to the default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy - - - Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy - - - Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - - - - Remove-CsTeamsEventsPolicy - Remove - CsTeamsEventsPolicy - - The CsTeamsEventsPolicy cmdlets removes a previously created TeamsEventsPolicy. Note that this policy is currently still in preview. - - - - Deletes a previously created TeamsEventsPolicy. 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-CsTeamsEventsPolicy - - Identity - - Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. - - 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 - - Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. - - 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-CsTeamsEventsPolicy -Identity DisablePublicWebinars - - In this example, the command will delete the DisablePublicWebinars policy from the organization's list of policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy - - - - - - Remove-CsTeamsFeedbackPolicy - Remove - CsTeamsFeedbackPolicy - - Use this cmdlet to remove a Teams Feedback policy from the Tenant. - - - - Removes a Teams Feedback policy from the Tenant. - - - - Remove-CsTeamsFeedbackPolicy - - Identity - - The identity of the policy to be removed. - - String - - String - - - 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 and suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - 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 - - 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 identity of the policy to be removed. - - String - - String - - - None - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - 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-CsTeamsFeedbackPolicy -Identity "New Hire Feedback Policy" - - In this example, the policy "New Hire Feedback Policy" is being removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfeedbackpolicy - - - - - - Remove-CsTeamsFilesPolicy - Remove - CsTeamsFilesPolicy - - Deletes an existing teams files policy or resets the Global policy instance to the default values. - - - - Deletes an existing teams files or resets the Global policy instance to the default values. - - - - Remove-CsTeamsFilesPolicy - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - - - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - - - - - You are not able to delete the pre-configured policy instances Default, TranscriptionProfanityMaskingEnabled and TranscriptionDisabled - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTeamsFilesPolicy -Identity "Customteamsfilespolicy" - - The command shown in Example 1 deletes a per-user teams files policy Customteamsfilespolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy - - - - - - Remove-CsTeamsMediaConnectivityPolicy - Remove - CsTeamsMediaConnectivityPolicy - - This cmdlet deletes a Teams media connectivity policy. - - - - This cmdlet deletes a Teams media connectivity policy with the specified identity string. - - - - Remove-CsTeamsMediaConnectivityPolicy - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsMediaConnectivityPolicy -Identity "Test" - - Deletes a Teams media connectivity policy with the identify of "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMediaConnectivityPolicy - - - New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy - - - Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy - - - Set-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmediaconnectivitypolicy - - - - - - Remove-CsTeamsMeetingBrandingPolicy - Remove - CsTeamsMeetingBrandingPolicy - - The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - Deletes a previously created TeamsMeetingBrandingPolicy. 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. If you want to remove policies currently assigned to one or more users, you should first assign a different policy to them. - - - - Remove-CsTeamsMeetingBrandingPolicy - - Identity - - Unique identifier of the policy to be deleted. - - String - - String - - - 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 - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - 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 - - - Identity - - Unique identifier of the policy to be deleted. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - Available in Teams PowerShell Module 4.9.3 and later. - - - - - ---------------- Remove meeting branding policy ---------------- - PS C:\> Remove-CsTeamsMeetingBrandingPolicy -Identity "policy test" - - In this example, the command deletes the `policy test` meeting branding policy from the organization's list of meeting branding policies and removes all assignments of this policy from users who have the policy assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy - - - Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - - - - Remove-CsTeamsMeetingPolicy - Remove - CsTeamsMeetingPolicy - - The `CsTeamsMeetingPolicy` cmdlets removes a previously created TeamsMeetingPolicy. - - - - Deletes a previously created TeamsMeetingPolicy. 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. If you want to remove policies currently assigned to one or more users, you should assign a different policy to them before. - - - - Remove-CsTeamsMeetingPolicy - - Identity - - Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMeetingPolicy. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - 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. - - Guid - - Guid - - - 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 - - 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 - - Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMeetingPolicy. - - 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 - 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. - - Guid - - 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-CsTeamsMeetingPolicy -Identity StudentMeetingPolicy - - In the example shown above, the command will delete the student meeting policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingpolicy - - - - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - Remove - CsTeamsMeetingTemplatePermissionPolicy - - Deletes an instance of TeamsMeetingTemplatePermissionPolicy. - - - - Deletes an instance of TeamsMeetingTemplatePermissionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. - - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - - Identity - - > Applicable: Microsoft Teams - Identity of the policy instance to be deleted. - - String - - String - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - Identity of the policy instance to be deleted. - - String - - String - - - None - - - - - - - - - - - - -- Example 1 - Deleting a meeting template permission policy -- - Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Test_Policy - - Deletes a policy instance with the Identity Test_Policy . - - - - -- Example 2 - Deleting a policy when its assigned to a user -- - Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar - -Remove-CsTeamsMeetingTemplatePermissionPolicy : The policy "Foobar" is currently assigned to one or more users. Assign a different policy to the users before removing -this one. Please refer to documentation. CorrelationId: 8698472b-f441-423b-8ee3-0469c7e07528 -At line:1 char:1 -+ Remove-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar -+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + CategoryInfo : NotSpecified: (:) [Remove-CsTeamsM...ermissionPolicy], PolicyRpException - + FullyQualifiedErrorId : ClientError,Microsoft.Teams.Policy.Administration.Cmdlets.Core.RemoveTeamsMeetingTemplatePermissionPolicyCmdlet - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Remove-CsTeamsMeetingTemplatePermissionPolicy - - - Set-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingtemplatepermissionpolicy - - - Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy - - - New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy - - - - - - Remove-CsTeamsMessagingPolicy - Remove - CsTeamsMessagingPolicy - - Deletes a custom messaging policy. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. - - - - Deletes a previously created TeamsMessagingPolicy. 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-CsTeamsMessagingPolicy - - Identity - - Unique identifier for the teams messaging policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMessagingPolicy . - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - 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 - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the teams messaging policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentMessagingPolicy . - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - 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-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 - - Remove an existing Notifications and Feeds Policy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnotificationandfeedspolicy - - - - - - Remove-CsTeamsPersonalAttendantPolicy - Remove - CsTeamsPersonalAttendantPolicy - - 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. - - - - This cmdlet removes an existing Teams Personal Attendant Policy instance or resets the Global policy instance to the default values. - - - - Remove-CsTeamsPersonalAttendantPolicy - - Identity - - The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. - - 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 - - The Identity parameter is the unique identifier of the Teams Personal Attendant Policy instance to remove or reset. - - String - - String - - - None - - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 7.2.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTeamsPersonalAttendantPolicy -Identity SalesPersonalAttendantPolicy - - 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/microsoftteams/remove-csteamspersonalattendantpolicy - - - New-CsTeamsPersonalAttendantPolicy - - - - Get-CsTeamsPersonalAttendantPolicy - - - - Set-CsTeamsPersonalAttendantPolicy - - - - Grant-CsTeamsPersonalAttendantPolicy - - - - - - - Remove-CsTeamsRecordingRollOutPolicy - Remove - CsTeamsRecordingRollOutPolicy - - The CsTeamsRecordingRollOutPolicy controls roll out of the change that governs the storage for meeting recordings. - - - - Removes a previously created CsTeamsRecordingRollOutPolicy. - This command is available from Teams powershell module 6.1.1-preview and above. - - - - Remove-CsTeamsRecordingRollOutPolicy - - Identity - - Unique identifier for the CsTeamsRecordingRollOutPolicy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity SomePolicy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - - 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 - - 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 - - Unique identifier for the CsTeamsRecordingRollOutPolicy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity SomePolicy. - - 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-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy - - In the example shown above, the command will delete the OrganizerPolicy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsrecordingrolloutpolicy - - - - - - Remove-CsTeamsSharedCallingRoutingPolicy - Remove - CsTeamsSharedCallingRoutingPolicy - - Deletes an existing Teams shared calling routing policy instance. - - - - TeamsSharedCallingRoutingPolicy is used to configure shared calling. - - - - Remove-CsTeamsSharedCallingRoutingPolicy - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - Identity - - Unique identifier assigned to the policy when it is 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 - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier assigned to the policy when it is created. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - This cmdlet was introduced in Teams PowerShell Module 5.5.0. - - - - - -------------------------- EXAMPLE 1 -------------------------- - Remove-CsTeamsSharedCallingRoutingPolicy -Identity "Seattle" - - The command shown in Example 1 deletes the Teams shared calling routing policy instance Seattle. - - - - -------------------------- EXAMPLE 2 -------------------------- - Get-CsTeamsSharedCallingRoutingPolicy -Filter "tag:*" | Remove-CsTeamsSharedCallingRoutingPolicy - - In Example 2, all Teams shared calling routing policies configured at the per-user scope are removed. To do this, the command first calls the Get-CsTeamsSharedCallingRoutingPolicy cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to Teams shared calling routing policies configured at the per-user scope. Those per-user policies are then piped to and removed by the Remove-CsTeamsSharedCallingRoutingPolicy cmdlet. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssharedcallingroutingpolicy - - - Get-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssharedcallingroutingpolicy - - - Grant-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssharedcallingroutingpolicy - - - Set-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy - - - New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssharedcallingroutingpolicy - - - - - - Remove-CsTeamsShiftsPolicy - Remove - 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. - - - - Remove-CsTeamsShiftsPolicy - - Identity - - > Applicable: Microsoft Teams - Policy instance name. - - XdsIdentity - - XdsIdentity - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - Policy instance name. - - XdsIdentity - - XdsIdentity - - - None - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsShiftsPolicy -Identity OffShiftAccess_WarningMessage1_AlwaysShowMessage - - In this example, the policy instance to be removed is called "OffShiftAccess_WarningMessage1_AlwaysShowMessage". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsshiftspolicy - - - Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy - - - New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy - - - Set-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftspolicy - - - Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy - - - - - - Remove-CsTeamsTemplatePermissionPolicy - Remove - CsTeamsTemplatePermissionPolicy - - Deletes an instance of TeamsTemplatePermissionPolicy. - - - - Deletes an instance of TeamsTemplatePermissionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. - - - - Remove-CsTeamsTemplatePermissionPolicy - - Identity - - Name of the policy instance to be deleted. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - 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 - - - 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 - - - Identity - - Name of the policy instance to be deleted. - - 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 >Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar - - Deletes a policy instance with the Identity Foobar . - - - - -------------------------- Example 2 -------------------------- - PS >Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar - -Remove-CsTeamsTemplatePermissionPolicy : The policy "Foobar" is currently assigned to one or more users or groups. Ensure policy is not assigned before removing. Please refer to documentation. CorrelationId: 8622aac5-00c3-4071-b6d0-d070db8f663f -At line:1 char:1 -+ Remove-CsTeamsTemplatePermissionPolicy -Identity Foobar ... -+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + CategoryInfo : NotSpecified: (:) [Remove-CsTeamsTemplatePermissionPolicy], PolicyRpException - + FullyQualifiedErrorId : ClientError,Microsoft.Teams.Policy.Administration.Cmdlets.Core.RemoveTeamsTemplatePermissionPolicyCmdlet - - Attempting to delete a policy instance that is currently assigned to users will result in an error. Remove the assignment before attempting to delete it. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy - - - Get-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy - - - New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy - - - Set-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy - - - - - - Remove-CsTeamsUpdateManagementPolicy - Remove - CsTeamsUpdateManagementPolicy - - Use this cmdlet to remove a Teams Update Management policy from the tenant. - - - - Removes a Teams Update Management policy from the tenant. - - - - Remove-CsTeamsUpdateManagementPolicy - - Identity - - The identity of the policy to be removed. - - String - - String - - - 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 and suppresses the display of any non-fatal error message that might arise when running the command. - - - 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 - - - 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 - - SwitchParameter - - - False - - - Identity - - The identity of the policy to be removed. - - 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-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" - - In this example, the policy "Campaign Policy" is being removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsupdatemanagementpolicy - - - - - - Remove-CsTeamsVdiPolicy - Remove - CsTeamsVdiPolicy - - This CsTeamsVdiPolicy cmdlets removes a previously created TeamsVdiPolicy. - - - - Deletes a previously created TeamsVdiPolicy. 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. If you want to remove policies currently assigned to one or more users, you should assign a different policy to them before. - - - - Remove-CsTeamsVdiPolicy - - Identity - - Unique identifier for the teams Vdi policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity RestrictedUserPolicy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - - 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 - - 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 - - Unique identifier for the teams Vdi policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity RestrictedUserPolicy. - - 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-CsTeamsMeetingPolicy -Identity RestrictedUserPolicy - - In the example shown above, the command will delete the restricted user policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvdipolicy - - - - - - Remove-CsTeamsVirtualAppointmentsPolicy - Remove - CsTeamsVirtualAppointmentsPolicy - - This cmdlet is used to delete an instance of TeamsVirtualAppointmentsPolicy. - - - - Deletes an instance of TeamsVirtualAppointmentsPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. - - - - Remove-CsTeamsVirtualAppointmentsPolicy - - Identity - - Name of the new policy instance to be created. - - String - - String - - - 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 - - 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 - - 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 - - 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 - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Remove-CsTeamsVoiceApplicationsPolicy -Identity "SDA-Allow-All" - - The command shown in Example 1 deletes the Teams voice applications policy SDA-Allow-All. - - - - -------------------------- EXAMPLE 2 -------------------------- - Get-CsTeamsVoiceApplicationsPolicy -Filter "tag:*" | Remove-CsTeamsVoiceApplicationsPolicy - - In Example 2, all Teams voice applications policies configured at the per-user scope are removed. To do this, the command first calls the Get-CsTeamsVoiceApplicationsPolicy cmdlet along with the Filter parameter; the filter value "tag:*" limits the returned data to Teams voice applications policies configured at the per-user scope. Those per-user policies are then piped to and removed by the Remove-CsTeamsVoiceApplicationsPolicy cmdlet. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy - - - Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy - - - Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy - - - Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy - - - New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy - - - - - - Remove-CsTeamsWorkLocationDetectionPolicy - Remove - CsTeamsWorkLocationDetectionPolicy - - This cmdlet is used to delete an instance of TeamsWorkLocationDetectionPolicy. - - - - Deletes an instance of TeamsWorkLocationDetectionPolicy. The `Identity` parameter accepts the identity of the policy instance to delete. - - - - Remove-CsTeamsWorkLocationDetectionPolicy - - Identity - - Name of the new policy instance to be created. - - String - - String - - - 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 - - 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 - - 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-CsTeamsWorkLocationDetectionPolicy -Identity wld-policy - - Deletes a given policy instance with the Identity wld-policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy - - - Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy - - - New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy - - - Set-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy - - - Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy - - - - - - Set-CsExternalAccessPolicy - Set - CsExternalAccessPolicy - - 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/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/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. - - - - Set-CsExternalAccessPolicy - - 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 - - - AllowedExternalDomains - - > 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 - - List - - - None - - - BlockedExternalDomains - - > 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 - - List - - - None - - - 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: 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 - - String - - - OrganizationDefault - - - 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 - - - False - - - 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 - - String - - - None - - - 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. - 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. - - Boolean - - Boolean - - - True - - - 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 - - Boolean - - - None - - - 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 - - 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 - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - True - - - 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. - - Boolean - - Boolean - - - True - - - EnableTeamsSmsAccess - - Allows you to control whether users can have SMS text messaging capabilities within Teams. Possible Values: True, False - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - - 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 - - - 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 - - Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory Possible Values: True, False - - Boolean - - Boolean - - - None - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being modified. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - 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 - - - - - - AllowedExternalDomains - - > 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 - - List - - - None - - - BlockedExternalDomains - - > 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 - - List - - - None - - - 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: 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 - - String - - - OrganizationDefault - - - 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 - - SwitchParameter - - - False - - - 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 - - String - - - None - - - 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. - 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. - - Boolean - - Boolean - - - True - - - 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 - - Boolean - - - None - - - 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 - - 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 - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - True - - - 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. - - Boolean - - Boolean - - - True - - - EnableTeamsSmsAccess - - Allows you to control whether users can have SMS text messaging capabilities within Teams. Possible Values: True, False - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - - 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 - - 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 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 - - Defines if a user is restriced to collaboration with Teams Consumer (TFL) user only in Extended Directory Possible Values: True, False - - Boolean - - Boolean - - - None - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account for whom the external access policy is being modified. For example: - `-Tenant "38aad667-af54-4397-aaa7-e94c79ec2308"` - You can return the tenant ID for each of your Skype for Business Online tenants by running this command: - `Get-CsTenant | Select-Object DisplayName, TenantID` - - Guid - - Guid - - - 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 - - - - - - Input types - - - Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. The `Set-CsExternalAccessPolicy` cmdlet accepts pipelined input of the external access policy object. - - - - - - - Output types - - - The `Set-CsExternalAccessPolicy` cmdlet does not return a value or object. Instead, the cmdlet configures instances of the Microsoft.Rtc.Management.WritableConfig.Policy.ExternalAccess.ExternalAccessPolicy object. - - - - - - - - - - - -------------------------- 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 -------------------------- - 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 -------------------------- - 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-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 4 -------------------------- - Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $false -New-CsExternalAccessPolicy -Identity AcsFederationAllowed -EnableAcsFederationAccess $true - - In this example, the Global policy is updated to disallow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation enabled and which can be assigned to selected users for which Team-ACS federation will be allowed. - - - - -------------------------- Example 5 -------------------------- - Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true -New-CsExternalAccessPolicy -Identity AcsFederationNotAllowed -EnableAcsFederationAccess $false - - In this example, the Global policy is updated to allow Teams-ACS federation for all users, then a new external access policy instance is created with Teams-ACS federation disabled and which can then be assigned to selected users for which Team-ACS federation will not be allowed. - - - - -------------------------- 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. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csexternalaccesspolicy - - - Get-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexternalaccesspolicy - - - Grant-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csexternalaccesspolicy - - - New-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csexternalaccesspolicy - - - Remove-CsExternalAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csexternalaccesspolicy - - - - - - Set-CsOnlineVoicemailPolicy - Set - CsOnlineVoicemailPolicy - - Modifies an existing Online Voicemail policy. - - - - Cloud Voicemail service provides organizations with voicemail deposit capabilities for Phone System implementation. - By default, users enabled for Phone System will be enabled for Cloud Voicemail. The Online Voicemail policy controls 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. - - Voicemail transcription is enabled by default - - Transcription profanity masking is disabled by default - - Transcription translation is enabled by default - - Editing call answer rule settings is enabled by default - - Voicemail maximum recording length is set to 5 minutes by default - - Primary and secondary system prompt languages are set to null by default and the user's voicemail language setting is used - - Tenant admin would be able to create a customized online voicemail policy to match the organization's requirements. - - - - Set-CsOnlineVoicemailPolicy - - Identity - - > Applicable: Microsoft Teams - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - 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 - - Boolean - - - None - - - EnableTranscription - - > Applicable: Microsoft Teams - Allows you to disable or enable voicemail transcription. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionProfanityMasking - - > Applicable: Microsoft Teams - Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionTranslation - - > Applicable: Microsoft Teams - Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - MaximumRecordingLength - - > Applicable: Microsoft Teams - A duration of voicemail maximum recording length. The length should be between 30 seconds to 10 minutes. - - Duration - - Duration - - - None - - - 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 - - String - - - None - - - PreambleAudioFile - - > Applicable: Microsoft Teams - The audio file to play to the caller before the user's voicemail greeting is played. - - String - - String - - - None - - - PreamblePostambleMandatory - - > Applicable: Microsoft Teams - Is playing the Pre- or Post-amble mandatory before the caller can leave a message. - - Boolean - - Boolean - - - False - - - PrimarySystemPromptLanguage - - > 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 - - String - - - None - - - SecondarySystemPromptLanguage - - > 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 - - String - - - None - - - 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 - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > 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 - - 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 - - Boolean - - - None - - - EnableTranscription - - > Applicable: Microsoft Teams - Allows you to disable or enable voicemail transcription. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionProfanityMasking - - > Applicable: Microsoft Teams - Allows you to disable or enable profanity masking for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - None - - - EnableTranscriptionTranslation - - > Applicable: Microsoft Teams - Allows you to disable or enable translation for the voicemail transcriptions. Possible values are $true or $false. - - Boolean - - Boolean - - - 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 - - Duration - - - None - - - 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 - - String - - - None - - - PreambleAudioFile - - > Applicable: Microsoft Teams - The audio file to play to the caller before the user's voicemail greeting is played. - - String - - String - - - None - - - PreamblePostambleMandatory - - > Applicable: Microsoft Teams - Is playing the Pre- or Post-amble mandatory before the caller can leave a message. - - Boolean - - Boolean - - - False - - - PrimarySystemPromptLanguage - - > 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 - - String - - - None - - - SecondarySystemPromptLanguage - - > 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 - - String - - - None - - - 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 - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineVoicemailPolicy -Identity "CustomOnlineVoicemailPolicy" -MaximumRecordingLength ([TimeSpan]::FromSeconds(60)) - - The command shown in Example 1 changes the MaximumRecordingLength to 60 seconds for the per-user online voicemail policy CustomOnlineVoicemailPolicy. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineVoicemailPolicy -EnableTranscriptionProfanityMasking $false - - The command shown in Example 2 changes the EnableTranscriptionProfanityMasking to false for tenant level global online voicemail policy when calling without Identity parameter. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy - - - Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy - - - New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy - - - Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy - - - Grant-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy - - - - - - Set-CsPrivacyConfiguration - Set - CsPrivacyConfiguration - - Modifies an existing set of privacy configuration settings. Privacy configuration settings help determine how much information users make available to other users. This cmdlet was introduced in Lync Server 2010. - - - - Skype for Business Server gives users the opportunity to share a wealth of presence information with other people: they can publish a photograph of themselves; they can provide detailed location information; they can have presence information automatically made available to everyone in the organization (as opposed to having this information available only to people on their Contacts list). - Some users will welcome the opportunity to make this information available to their colleagues; other users might be more reluctant to share this data. (For example, many people might be hesitant about having their photo included in their presence data.) As a general rule, users have control over what information they will (or will not) share; for example, users can select or clear a check box in order to control whether or not their location information is shared with others. In addition, the privacy configuration cmdlets enable administrators to manage privacy settings for their users. In some cases, administrators can enable or disable settings; for example, if the property AutoInitiateContacts is set to True, then team members will automatically be added to each user's Contacts list; if set to False, team members will not be automatically be added to each user's Contacts list. - In other cases, administrators can configure the default values in Skype for Business while still giving users the right to change these values. For example, by default location data is published for users, although users do have the right to stop location publication. By setting the PublishLocationDataByDefault property to False, administrators can change this behavior: in that case, location data will not be published by default, although users will still have the right to publish this data if they choose. - Privacy configuration settings can be applied at the global scope, the site scope, and at the service scope (albeit only for the User Server service). The `Set-CsPrivacyConfiguration` cmdlet enables you to modify any of the privacy configuration settings currently in use in your organization. - - - - Set-CsPrivacyConfiguration - - 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 - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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). - - 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. - - - SwitchParameter - - - False - - - 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 - - Boolean - - - 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. - - - SwitchParameter - - - False - - - 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 - - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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). - - 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. - - - 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 - - - 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 - - Boolean - - - 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. - - - SwitchParameter - - - False - - - 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 - - - - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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). - - 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. - - SwitchParameter - - 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 - - - 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 - - - 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 - - Boolean - - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.UserServices.PrivacyConfiguration - - - 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. - - - - - - - - - - - -------------------------- 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 -------------------------- - 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 -------------------------- - 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. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skypeforbusiness/set-csprivacyconfiguration - - - Get-CsPrivacyConfiguration - - - - New-CsPrivacyConfiguration - - - - Remove-CsPrivacyConfiguration - - - - - - - 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 - Set - CsTeamsAIPolicy - - This cmdlet sets Teams AI policy value for users in 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 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 - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - - - - - Description - - 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 - - String - - - None - - - EnrollFace - - Policy value of the Teams AI EnrollFace policy. EnrollFace controls user access to user face enrollment in the Teams app settings. - - String - - String - - - Enabled - - - EnrollVoice - - Policy value of the Teams AI EnrollVoice policy. EnrollVoice controls user access to user voice enrollment in the Teams app settings. - - String - - String - - - Enabled - - - Identity - - Identity of the Teams AI policy. - - String - - String - - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsAIPolicy -Identity Global -EnrollFace Disabled - - Set Teams AI policy "EnrollFace" value to "Disabled" for global as default. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsAIPolicy -Identity Global -EnrollVoice Disabled - - Set Teams AI policy "EnrollVoice" value to "Disabled" for global as default. - - - - -------------------------- 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 5 -------------------------- - PS C:\> Set-CsTeamsAIPolicy -Identity Test -EnrollVoice Enabled - - Set Teams AI policy "EnrollVoice" value to "Enabled" for identity "Test". - - - - -------------------------- 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 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/microsoftteams/Set-CsTeamsAIPolicy - - - New-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaipolicy - - - Remove-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaipolicy - - - Get-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaipolicy - - - Grant-CsTeamsAIPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaipolicy - - - - - - Set-CsTeamsAppPermissionPolicy - Set - CsTeamsAppPermissionPolicy - - Cmdlet to set the app permission policy for Teams. - - - - 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>. - - - - Set-CsTeamsAppPermissionPolicy - - Identity - - Name of App setup permission policy. If empty, all Identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultCatalogApps - - Choose which Teams apps published by Microsoft or its partners can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - - None - - - DefaultCatalogAppsType - - Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Description - - Description of app setup permission policy. - - String - - String - - - None - - - Force - - Do not use. - - - SwitchParameter - - - False - - - GlobalCatalogApps - - Choose which Teams apps published by a third party can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - - None - - - GlobalCatalogAppsType - - Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - PrivateCatalogApps - - Choose to allow or block the installation of custom apps. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - - None - - - PrivateCatalogAppsType - - Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsAppPermissionPolicy - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultCatalogApps - - Choose which Teams apps published by Microsoft or its partners can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - - None - - - DefaultCatalogAppsType - - Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Description - - Description of app setup permission policy. - - String - - String - - - None - - - Force - - Do not use. - - - SwitchParameter - - - False - - - GlobalCatalogApps - - Choose which Teams apps published by a third party can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - - None - - - GlobalCatalogAppsType - - Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Instance - - Do not use. - - PSObject - - PSObject - - - None - - - PrivateCatalogApps - - Choose to allow or block the installation of custom apps. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - - None - - - PrivateCatalogAppsType - - Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - 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 - - - DefaultCatalogApps - - Choose which Teams apps published by Microsoft or its partners can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp[] - - - None - - - DefaultCatalogAppsType - - Choose to allow or block the installation of Microsoft apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Description - - Description of app setup permission policy. - - String - - String - - - None - - - Force - - Do not use. - - SwitchParameter - - SwitchParameter - - - False - - - GlobalCatalogApps - - Choose which Teams apps published by a third party can be installed by your users. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp[] - - - None - - - GlobalCatalogAppsType - - Choose to allow or block the installation of third-party apps. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Identity - - Name of App setup permission policy. If empty, all Identities will be used by default. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Do not use. - - PSObject - - PSObject - - - None - - - PrivateCatalogApps - - Choose to allow or block the installation of custom apps. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp[] - - - None - - - PrivateCatalogAppsType - - Choose which custom apps can be installed by your users. Values that can be used: AllowedAppList, BlockedAppList. - - String - - String - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) -New-CsTeamsAppPermissionPolicy -Identity Set-$identity -Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType BlockedAppList -DefaultCatalogApps @()-GlobalCatalogAppsType -GlobalCatalogApps @() BlockedAppList -PrivateCatalogAppsType BlockedAppList -PrivateCatalogApps @() - - This example allows all Microsoft apps, third-party apps, and custom apps. No apps are blocked. - - - - -------------------------- Example 2 -------------------------- - $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) -New-CsTeamsAppPermissionPolicy -Identity Set-$identity -Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogAppsType AllowedAppList -GlobalCatalogApps @() -PrivateCatalogAppsType AllowedAppList -PrivateCatalogApps @() - - This example blocks all Microsoft apps, third-party apps, and custom apps. No apps are allowed. - - - - -------------------------- Example 3 -------------------------- - $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) -# create a new Teams app permission policy and block all apps -New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -GlobalCatalogAppsType AllowedAppList -PrivateCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() - -$ListsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp -Property @{Id="0d820ecd-def2-4297-adad-78056cde7c78"} -$OneNoteApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.DefaultCatalogApp -Property @{Id="26bc2873-6023-480c-a11b-76b66605ce8c"} -$DefaultCatalogAppList = @($ListsApp,$OneNoteApp) -# set allow Lists and OneNote apps and block other Microsoft apps -Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -DefaultCatalogApps $DefaultCatalogAppList - - This example allows Microsoft Lists and OneNote apps and blocks other Microsoft apps. Microsoft Lists and OneNote can be installed by your users. - - - - -------------------------- Example 4 -------------------------- - $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) -# create a new Teams app permission policy and block all apps -New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType AllowedAppList -GlobalCatalogAppsType AllowedAppList -PrivateCatalogAppsType AllowedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() -$TaskListApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp -Property @{Id="57c81e84-9b7b-4783-be4e-0b7ffc0719af"} -$OnePlanApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.GlobalCatalogApp -Property @{Id="ca0540bf-6b61-3027-6313-a7cb4470bf1b"} -$GlobalCatalogAppList = @($TaskListApp,$OnePlanApp) -# set allow TaskList and OnePlan apps and block other Third-party apps -Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -GlobalCatalogAppsType AllowedAppList -GlobalCatalogApps $GlobalCatalogAppList - - This example allows third-party TaskList and OnePlan apps and blocks other third-party apps. TaskList and OnePlan can be installed by your users. - - - - -------------------------- Example 5 -------------------------- - $identity = "TestTeamsAppPermissionPolicy" + (Get-Date -Format FileDateTimeUniversal) -# create a new Teams app permission policy and block all apps -New-CsTeamsAppPermissionPolicy -Identity Set-$identity -DefaultCatalogAppsType BlockedAppList -GlobalCatalogAppsType BlockedAppList -PrivateCatalogAppsType BlockedAppList -DefaultCatalogApps @() -GlobalCatalogApps @() -PrivateCatalogApps @() -$GetStartApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp -Property @{Id="f8374f94-b179-4cd2-8343-9514dc5ea377"} -$TestBotApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PrivateCatalogApp -Property @{Id="47fa3584-9366-4ce7-b1eb-07326c6ba799"} -$PrivateCatalogAppList = @($GetStartApp,$TestBotApp) -# set allow TaskList and OnePlan apps and block other custom apps -Set-CsTeamsAppPermissionPolicy -Identity Set-$identity -PrivateCatalogAppsType AllowedAppList -PrivateCatalogApps $PrivateCatalogAppList - - This example allows custom GetStartApp and TestBotApp apps and blocks other custom apps. GetStartApp and TestBotApp can be installed by your users. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsapppermissionpolicy - - - - - - Set-CsTeamsAppSetupPolicy - Set - CsTeamsAppSetupPolicy - - Cmdlet to set the app setup policy for Teams. - - - - 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>. - - - - Set-CsTeamsAppSetupPolicy - - Identity - - Name of app setup policy. If empty, all identities will be used by default. - - XdsIdentity - - XdsIdentity - - - 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 - - This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. - - Boolean - - Boolean - - - None - - - AllowUserPinning - - If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. - - Boolean - - Boolean - - - None - - - AppPresetList - - Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Description of App setup policy. - - String - - String - - - None - - - Force - - Do not use. - - - SwitchParameter - - - False - - - PinnedAppBarApps - - Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - - None - - - PinnedCallingBarApps - - Determines the list of apps that are pre pinned for a participant in Calls. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - - None - - - PinnedMessageBarApps - - Apps will be pinned in messaging extensions and into the ellipsis menu. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsAppSetupPolicy - - 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 - - This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. - - Boolean - - Boolean - - - None - - - AllowUserPinning - - If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. - - Boolean - - Boolean - - - None - - - AppPresetList - - Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Description of App setup policy. - - String - - String - - - None - - - Force - - Do not use. - - - SwitchParameter - - - False - - - Instance - - Do not use. - - PSObject - - PSObject - - - None - - - PinnedAppBarApps - - Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - - None - - - PinnedCallingBarApps - - Determines the list of apps that are pre pinned for a participant in Calls. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - - None - - - PinnedMessageBarApps - - Apps will be pinned in messaging extensions and into the ellipsis menu. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - This is also known as side loading. This setting determines if a user can upload a custom app package in the Teams app. Turning it on lets you create or develop a custom app to be used personally or across your organization without having to submit it to the Teams app store. Uploading a custom app also lets you test an app before you distribute it more widely by only assigning it to a single user or group of users. - - Boolean - - Boolean - - - None - - - AllowUserPinning - - If you turn this on, the user's existing app pins will be added to the list of pinned apps set in this policy. Users can rearrange, add, and remove pins as they choose. If you turn this off, the user's existing app pins will be removed and replaced with the apps defined in this policy. - - Boolean - - Boolean - - - None - - - AppPresetList - - Choose which apps and messaging extensions you want to be installed in your users' personal Teams environment and in meetings they create. Users can install other available apps from the Teams app store. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset[] - - - 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Description of App setup policy. - - String - - String - - - None - - - Force - - Do not use. - - SwitchParameter - - SwitchParameter - - - 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 - - Pinning an app displays the app in the app bar in Teams client. Admins can pin apps and they can allow users to pin apps. Pinning is used to highlight apps that users need the most and promote ease of access. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp[] - - - None - - - PinnedCallingBarApps - - Determines the list of apps that are pre pinned for a participant in Calls. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedCallingBarApp[] - - - None - - - PinnedMessageBarApps - - Apps will be pinned in messaging extensions and into the ellipsis menu. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp[] - - - None - - - Tenant - - Do not use. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp - - - - - - - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - # Create new teams app setup policy named "Set-Test". -New-CsTeamsAppSetupPolicy -Identity 'Set-Test' -Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AllowUserPinning $true -AllowSideLoading $false - - Step 1: Create a new Teams app setup policy named "Set-Test". Step 2: Set AllowUserPinning as true, AllowSideLoading as false. - - - - -------------------------- Example 2 -------------------------- - New-CsTeamsAppSetupPolicy -Identity 'Set-Test' -$ActivityApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="14d6962d-6eeb-4f48-8890-de55454bb136"} -$ChatApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="86fcd49b-61a2-4701-b771-54728cd291fb"} -$TeamsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedApp -Property @{Id="2a84919f-59d8-4441-a975-2a8c2643b741"} -$PinnedAppBarApps = @($ActivityApp,$ChatApp,$TeamsApp) -Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -PinnedAppBarApps $PinnedAppBarApps - - Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set ActivityApp, ChatApp, TeamsApp as PinnedAppBarApps. Step 3: Settings to pin these apps to the app bar in Teams client. - - - - -------------------------- Example 3 -------------------------- - New-CsTeamsAppSetupPolicy -Identity 'Set-Test' -$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.PinnedMessageBarApp -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} -$PinnedMessageBarApps = @($VivaConnectionsApp) -Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -PinnedMessageBarApps $PinnedMessageBarApps - - Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set VivaConnectionsApp as PinnedAppBarApps. Step 3: Settings to pin these apps to the messaging extension in Teams client. - - - - -------------------------- Example 4 -------------------------- - New-CsTeamsAppSetupPolicy -Identity 'Set-Test' -$VivaConnectionsApp = New-Object -TypeName Microsoft.Teams.Policy.Administration.Cmdlets.Core.AppPreset -Property @{Id="d2c6f111-ffad-42a0-b65e-ee00425598aa"} -$AppPresetList = @($VivaConnectionsApp) -Set-CsTeamsAppSetupPolicy -Identity 'Set-Test' -AppPresetList $AppPresetList - - Step 1: Create new teams app setup policy named "Set-Test". Step 2: Set VivaConnectionsApp as AppPresetList Step 3: Settings to install these apps in your users' personal Teams environment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsappsetuppolicy - - - - - - Set-CsTeamsCallHoldPolicy - Set - CsTeamsCallHoldPolicy - - Modifies an existing Teams call hold policy in your tenant. The Teams call hold policy is used to customize the call hold experience for Teams clients. - - - - Teams call hold policies are used to customize the call hold experience for teams clients. - When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. - Assigning a Teams call hold policy to a user sets an audio file to be played during the duration of the hold. - - - - Set-CsTeamsCallHoldPolicy - - Identity - - Unique identifier of the Teams call hold policy being modified. - - String - - String - - - None - - - AudioFileId - - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - StreamingSourceAuthType - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - StreamingSourceUrl - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AudioFileId - - A string representing the ID referencing an audio file uploaded via the Import-CsOnlineAudioFile cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier of the Teams call hold policy being modified. - - String - - String - - - None - - - StreamingSourceAuthType - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - StreamingSourceUrl - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -AudioFileId "c65233-ac2a27-98701b-123ccc" - - The command shown in Example 1 modifies an existing per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. - This policy is re-assigned the audio file ID to be used to: c65233-ac2a27-98701b-123ccc, which is the ID referencing an audio file that was uploaded using the Import-CsOnlineAudioFile cmdlet. - Any Microsoft Teams users who are assigned this policy will have their call holds customized such that the user being held will hear the audio file specified by AudioFileId. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsCallHoldPolicy -Identity "ContosoPartnerTeamsCallHoldPolicy" -Description "country music" - - The command shown in Example 2 modifies an existing per-user Teams call hold policy with the Identity ContosoPartnerTeamsCallHoldPolicy. - This policy is re-assigned the description from its existing value to "country music". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy - - - Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy - - - New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy - - - Grant-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy - - - Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - - - - Set-CsTeamsCallingPolicy - Set - CsTeamsCallingPolicy - - Use this cmdlet to update values in existing Teams Calling Policies. - - - - The Teams Calling Policy controls which calling and call forwarding features are available to users in Microsoft Teams. This cmdlet allows admins to set values in a given Calling Policy instance. - Only the parameters specified are changed. Other parameters keep their existing values. - - - - Set-CsTeamsCallingPolicy - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - - UserOverride: This option is not available for use. - - String - - String - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowSIPDevicesCalling - - > Applicable: Microsoft Teams - Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. - - Boolean - - Boolean - - - None - - - AllowTranscriptionForCalling - - > Applicable: Microsoft Teams - Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. - - Boolean - - Boolean - - - None - - - 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. - - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. - - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. - - String - - String - - - None - - - AllowWebPSTNCalling - - > Applicable: Microsoft Teams - Allows PSTN calling from the Teams web client. - - Object - - Object - - - None - - - AutoAnswerEnabledType - - Allow admins to enable or disable Auto-answer settings for users. - - String - - String - - - None - - - 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. - - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. - - Disabled: New or incoming calls will be presented to the user. - - UserOverride: Users can set their busy options directly from call settings in Teams app. - - String - - String - - - None - - - 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 - - Long - - Long - - - None - - - CallRecordingExpirationDays - - > Applicable: Microsoft Teams - Sets the expiration of the recorded 1:1 calls. Default is 60 days. - - Long - - Long - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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. This is the default value. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - - Disabled: Copilot is disabled for calls. - - String - - String - - - Enabled - - - 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 - - String - - - None - - - 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 - - False - - Boolean - - Boolean - - - False - - - EnableWebPstnMediaBypass - - Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - - SwitchParameter - - - False - - - 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. - - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - UserOverride: Users can determine their PSTN call routing choice from call settings in the Teams app. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Disabled: Prohibits the user from turning on live captions. - - String - - String - - - None - - - 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. - - Disabled: Music on hold is disabled. - - UserOverride: For now, setting the value to UserOverride is the same as Enabled. - - String - - String - - - Enabled - - - 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 - - String - - - "" - - - 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 - - String - - - Disabled - - - 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. - - Boolean - - Boolean - - - 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. - - Disabled: Spam detection is disabled. - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - > 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 - - - Disabled - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - - UserOverride: This option is not available for use. - - String - - String - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - AllowSIPDevicesCalling - - > Applicable: Microsoft Teams - Determines whether the user is allowed to use a SIP device for calling on behalf of a Teams client. - - Boolean - - Boolean - - - None - - - AllowTranscriptionForCalling - - > Applicable: Microsoft Teams - Determines whether post-call transcriptions are allowed. Set this to True to allow. Set this to False to prohibit. - - Boolean - - Boolean - - - None - - - 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. - - AlwaysDisabled: Calls are never routed to voicemail, regardless of the call forward or unanswered settings for the user. Voicemail isn't available as a call forwarding or unanswered setting in Teams. - - UserOverride: Calls are forwarded to voicemail based on the call forwarding and/or unanswered settings for the user. - - String - - String - - - None - - - AllowWebPSTNCalling - - > Applicable: Microsoft Teams - Allows PSTN calling from the Teams web client. - - Object - - Object - - - None - - - AutoAnswerEnabledType - - Allow admins to enable or disable Auto-answer settings for users. - - String - - String - - - None - - - 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. - - Unanswered: The user's unanswered settings will take effect, such as routing to voicemail or forwarding to another user. - - Disabled: New or incoming calls will be presented to the user. - - UserOverride: Users can set their busy options directly from call settings in Teams app. - - String - - String - - - None - - - 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 - - Long - - Long - - - None - - - CallRecordingExpirationDays - - > Applicable: Microsoft Teams - Sets the expiration of the recorded 1:1 calls. Default is 60 days. - - Long - - Long - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - 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. This is the default value. - - EnabledWithTranscript: Copilot will only work when transcription is enabled during calls. - - Disabled: Copilot is disabled for calls. - - String - - String - - - Enabled - - - 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 - - String - - - None - - - 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 - - False - - Boolean - - Boolean - - - False - - - EnableWebPstnMediaBypass - - Determines if MediaBypass is enabled for PSTN calls on specified Web platforms. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - 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. - - Unanswered: The inbound federated call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound federated call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Unanswered: The inbound PSTN call will be routed according to the called user's unanswered call settings and the call will not be presented to the called user. The called user will see a missed call notification. If the called user has not enabled unanswered call settings the call will be disconnected. - - Voicemail: The inbound PSTN call will be routed directly to the called user's voicemail and the call will not be presented to the user. If the called user does not have voicemail enabled the call will be disconnected. - - UserOverride: Users can determine their PSTN call routing choice from call settings in the Teams app. - - Setting this parameter to Unanswered or Voicemail will have precedence over other call forwarding settings like call forward/simultaneous ringing to delegate, call groups, or call forwarding. - - String - - String - - - RegularIncoming - - - 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. - - Disabled: Prohibits the user from turning on live captions. - - String - - String - - - None - - - 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. - - Disabled: Music on hold is disabled. - - UserOverride: For now, setting the value to UserOverride is the same as Enabled. - - String - - String - - - Enabled - - - 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 - - String - - - "" - - - 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 - - String - - - Disabled - - - 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. - - Boolean - - Boolean - - - 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. - - Disabled: Spam detection is disabled. - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - > 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 - - - Disabled - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsCallingPolicy -Identity Global -AllowPrivateCalling $true - - Sets the value of the parameter AllowPrivateCalling in the Global (default) Teams Calling Policy instance. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsCallingPolicy -Identity HRPolicy -LiveCaptionsEnabledTypeForCalling Disabled - - Sets the value of the parameter LiveCaptionsEnabledTypeForCalling to Disabled in the Teams Calling Policy instance called HRPolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallingpolicy - - - Get-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallingpolicy - - - Remove-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallingpolicy - - - Grant-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallingpolicy - - - New-CsTeamsCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallingpolicy - - - - - - Set-CsTeamsChannelsPolicy - Set - CsTeamsChannelsPolicy - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams and Channels experience within the Teams application. - - - - The CsTeamsChannelsPolicy allows you to manage features related to the Teams & Channels experience within the Teams application. - This cmdlet allows you to update existing policies of this type. - - - - Set-CsTeamsChannelsPolicy - - Identity - - Use this parameter to specify the name of the policy being updated. - - XdsIdentity - - XdsIdentity - - - 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 - - - AllowOrgWideTeamCreation - - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateChannelCreation - - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSharedChannelCreation - - 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. - - Boolean - - Boolean - - - None - - - AllowUserToParticipateInExternalSharedChannel - - 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 - - Boolean - - - 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 - - - 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 - - - - Set-CsTeamsChannelsPolicy - - 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 - - - AllowOrgWideTeamCreation - - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateChannelCreation - - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSharedChannelCreation - - 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. - - Boolean - - Boolean - - - None - - - AllowUserToParticipateInExternalSharedChannel - - 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 - - Boolean - - - 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 - - - - - - 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 - - - AllowOrgWideTeamCreation - - Determines whether a user is allowed to create an org-wide team. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateChannelCreation - - Determines whether a user is allowed to create a private channel. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSharedChannelCreation - - 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. - - Boolean - - Boolean - - - None - - - AllowUserToParticipateInExternalSharedChannel - - 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 - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - 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 - - SwitchParameter - - - False - - - Identity - - Use this parameter to specify the name of the policy being updated. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsChannelsPolicy -Identity StudentPolicy -EnablePrivateTeamDiscovery $true - - This example shows updating an existing policy with name "StudentPolicy" and enabling Private Team Discovery. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamschannelspolicy - - - New-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamschannelspolicy - - - Remove-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamschannelspolicy - - - Grant-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy - - - Get-CsTeamsChannelsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamschannelspolicy - - - - - - Set-CsTeamsClientConfiguration - Set - CsTeamsClientConfiguration - - Changes the Teams client configuration settings for the specified tenant. - - - - 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 whether or not meeting room devices running teams are can display content from user accounts. The parameter descriptions below describe what settings are managed by this configuration and how they are enforced. - An organization can have only one effective Teams Client Configuration - these settings will apply across the entire organization for the particular features they control. - Note that three of these settings (ContentPin, ResourceAccountContentAccess, and AllowResourceAccountSendMessage) control resource account behavior for Surface Hub devices attending Skype for Business meetings, and are not used in Microsoft Teams. - - - - Set-CsTeamsClientConfiguration - - Identity - - The only valid input is Global - the tenant wide configuration. - - XdsIdentity - - XdsIdentity - - - None - - - AllowBox - - Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowDropBox - - Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEgnyte - - Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEmailIntoChannel - - When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. - To find the email address for a channel, click the More options menu for the channel and then select Get email address. - - Boolean - - Boolean - - - None - - - AllowGoogleDrive - - Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowGuestUser - - Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies - - Boolean - - Boolean - - - None - - - AllowOrganizationTab - - When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. - - Boolean - - Boolean - - - None - - - AllowResourceAccountSendMessage - - Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). - - Boolean - - Boolean - - - None - - - AllowRoleBasedChatPermissions - - When set to True, Supervised Chat is enabled for the tenant. - - Boolean - - Boolean - - - False - - - AllowScopedPeopleSearchandAccess - - If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. - - Boolean - - Boolean - - - None - - - AllowShareFile - - Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowSkypeBusinessInterop - - When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. - - Boolean - - Boolean - - - None - - - AllowTBotProactiveMessaging - - Deprecated, do not use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentPin - - This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. - Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting - - String - - String - - - None - - - Force - - Bypass any verification checks and non-fatal errors. - - - SwitchParameter - - - False - - - ResourceAccountContentAccess - - Require a secondary form of authentication to access meeting content. - Possible values: NoAccess, PartialAccess and FullAccess - - String - - String - - - None - - - RestrictedSenderList - - Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - WhatIf - - The WhatIf switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - - Set-CsTeamsClientConfiguration - - AllowBox - - Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowDropBox - - Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEgnyte - - Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEmailIntoChannel - - When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. - To find the email address for a channel, click the More options menu for the channel and then select Get email address. - - Boolean - - Boolean - - - None - - - AllowGoogleDrive - - Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowGuestUser - - Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies - - Boolean - - Boolean - - - None - - - AllowOrganizationTab - - When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. - - Boolean - - Boolean - - - None - - - AllowResourceAccountSendMessage - - Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). - - Boolean - - Boolean - - - None - - - AllowRoleBasedChatPermissions - - When set to True, Supervised Chat is enabled for the tenant. - - Boolean - - Boolean - - - False - - - AllowScopedPeopleSearchandAccess - - If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. - - Boolean - - Boolean - - - None - - - AllowShareFile - - Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowSkypeBusinessInterop - - When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. - - Boolean - - Boolean - - - None - - - AllowTBotProactiveMessaging - - Deprecated, do not use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ContentPin - - This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. - Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting - - String - - String - - - None - - - Force - - Bypass any verification checks and non-fatal errors. - - - SwitchParameter - - - False - - - Instance - - You can use this to pass the results from Get-CsTeamsClientConfiguration into the Set-CsTeamsClientConfiguration rather than specifying the "-Identity Global" parameter. - - PSObject - - PSObject - - - None - - - ResourceAccountContentAccess - - Require a secondary form of authentication to access meeting content. - Possible values: NoAccess, PartialAccess and FullAccess - - String - - String - - - None - - - RestrictedSenderList - - Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - WhatIf - - The WhatIf switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - - - - AllowBox - - Designates whether users are able to leverage Box as a third party storage solution in Microsoft Teams. If $true, users will be able to add Box in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowDropBox - - Designates whether users are able to leverage DropBox as a third party storage solution in Microsoft Teams. If $true, users will be able to add DropBox in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEgnyte - - Designates whether users are able to leverage Egnyte as a third party storage solution in Microsoft Teams. If $true, users will be able to add Egnyte in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowEmailIntoChannel - - When set to $true, mail hooks are enabled, and users can post messages to a channel by sending an email to the email address of Teams channel. - To find the email address for a channel, click the More options menu for the channel and then select Get email address. - - Boolean - - Boolean - - - None - - - AllowGoogleDrive - - Designates whether users are able to leverage GoogleDrive as a third party storage solution in Microsoft Teams. If $true, users will be able to add Google Drive in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowGuestUser - - Designates whether or not guest users in your organization will have access to the Teams client. If $true, guests in your tenant will be able to access the Teams client. Note that this setting has a core dependency on Guest Access being enabled in your Office 365 tenant. For more information on this topic, read Authorize Guest Access in Microsoft Teams: https://learn.microsoft.com/microsoftteams/teams-dependencies - - Boolean - - Boolean - - - None - - - AllowOrganizationTab - - When set to $true, users will be able to see the organizational chart icon other users' contact cards, and when clicked, this icon will display the detailed organizational chart. - - Boolean - - Boolean - - - None - - - AllowResourceAccountSendMessage - - Surface Hub uses a device account to provide email and collaboration services (IM, video, voice). This device account is used as the originating identity (the "from" party) when sending email, IM, and placing calls. As this account is not coming from an individual, identifiable user, it is deemed "anonymous" because it originated from the Surface Hub's device account. If set to $true, these device accounts will be able to send chat messages in Skype for Business Online (does not apply to Microsoft Teams). - - Boolean - - Boolean - - - None - - - AllowRoleBasedChatPermissions - - When set to True, Supervised Chat is enabled for the tenant. - - Boolean - - Boolean - - - False - - - AllowScopedPeopleSearchandAccess - - If set to $true, the Exchange address book policy (ABP) will be used to provide customized view of the global address book for each user. This is only a virtual separation and not a legal separation. - - Boolean - - Boolean - - - None - - - AllowShareFile - - Designates whether users are able to leverage Citrix ShareFile as a third party storage solution in Microsoft Teams. If $true, users will be able to add Citrix ShareFile in the client and interact with the files stored there. - - Boolean - - Boolean - - - None - - - AllowSkypeBusinessInterop - - When set to $true, Teams conversations automatically show up in Skype for Business for users that aren't enabled for Teams. - - Boolean - - Boolean - - - None - - - AllowTBotProactiveMessaging - - Deprecated, do not use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ContentPin - - This setting applies only to Skype for Business Online (not Microsoft Teams) and defines whether the user must provide a secondary form of authentication to access the meeting content from a resource device account . Meeting content is defined as files that are shared to the "Content Bin" - files that have been attached to the meeting. - Possible Values: NotRequired, RequiredOutsideScheduleMeeting, AlwaysRequired . Default Value: RequiredOutsideScheduleMeeting - - String - - String - - - None - - - Force - - Bypass any verification checks and non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The only valid input is Global - the tenant wide configuration. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - You can use this to pass the results from Get-CsTeamsClientConfiguration into the Set-CsTeamsClientConfiguration rather than specifying the "-Identity Global" parameter. - - PSObject - - PSObject - - - None - - - ResourceAccountContentAccess - - Require a secondary form of authentication to access meeting content. - Possible values: NoAccess, PartialAccess and FullAccess - - String - - String - - - None - - - RestrictedSenderList - - Senders domains can be further restricted to ensure that only allowed SMTP domains can send emails to the Teams channels. This is a semicolon-separated string of the domains you'd like to allow to send emails to Teams channels. - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - WhatIf - - The WhatIf switch does not work with this cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsClientConfiguration -Identity Global -AllowDropBox $false - - In this example, the client configuration effective for the organization (Global) is being updated to disable the use of DropBox in the organization. All other settings in the configuration remain the same. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsclientconfiguration - - - - - - Set-CsTeamsComplianceRecordingApplication - Set - CsTeamsComplianceRecordingApplication - - Modifies an existing association between an application instance of a policy-based recording application and a Teams recording policy for administering automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - 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. - 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. - 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. Please also refer to the documentation of CsTeamsComplianceRecordingPolicy cmdlets for further information. - - - - Set-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 - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - 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 - - 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 - - - - Set-CsTeamsComplianceRecordingApplication - - 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 - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - - 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 - - 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 - - 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 - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false - - The command shown in Example 1 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made optional for meetings. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -RequiredBeforeCallEstablishment $false -RequiredDuringCall $false - - The command shown in Example 2 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made optional for calls. Please refer to the documentation of the RequiredBeforeCallEstablishment and RequiredDuringCall parameters for more information. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ConcurrentInvitationCount 2 - - The command shown in Example 3 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made resilient by specifying that two invites must be sent to the same application for the same call or meeting. Please refer to the documentation of the ConcurrentInvitationCount parameter for more information. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications @(New-CsTeamsComplianceRecordingPairedApplication -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') - - The command shown in Example 4 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application is made resilient by pairing it with another application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Separate invites are sent to the paired applications for the same call or meeting. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. - - - - -------------------------- Example 5 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingApplication -Identity 'Tag:ContosoPartnerComplianceRecordingPolicy/d93fefc7-93cc-4d44-9a5d-344b0fff2899' -ComplianceRecordingPairedApplications $null - - The command shown in Example 5 modifies an existing association between an application instance of a policy-based recording application with ObjectId d93fefc7-93cc-4d44-9a5d-344b0fff2899 and a Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. - In this example, the application's resiliency is removed by removing the pairing it had with the application instance of a policy-based recording application with ObjectId 39dc3ede-c80e-4f19-9153-417a65a1f144. Please refer to the documentation of the ComplianceRecordingPairedApplications parameter for more information. - - - - -------------------------- Example 6 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingApplication | Set-CsTeamsComplianceRecordingApplication -RequiredBeforeMeetingJoin $false -RequiredDuringMeeting $false - - The command shown in Example 6 modifies all existing associations between application instances of policy-based recording applications and their corresponding Teams recording policy. - In this example, all applications are made optional for meetings. Please refer to the documentation of the RequiredBeforeMeetingJoin and RequiredDuringMeeting parameters for more information. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Set-CsTeamsComplianceRecordingPolicy - Set - CsTeamsComplianceRecordingPolicy - - Modifies an existing Teams recording policy for governing automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - Teams recording policies 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 record audio, video and video-based screen sharing activity. - Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. - 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. - Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. - - - - Set-CsTeamsComplianceRecordingPolicy - - 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 - - - ComplianceRecordingApplications - - 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. - - ComplianceRecordingApplication[] - - ComplianceRecordingApplication[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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. - - String - - String - - - None - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording - - Boolean - - Boolean - - - False - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. - - Boolean - - Boolean - - - False - - - Enabled - - 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 - - Boolean - - - 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 - - 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 - - Boolean - - - 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 - - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsComplianceRecordingPolicy - - ComplianceRecordingApplications - - 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. - - ComplianceRecordingApplication[] - - ComplianceRecordingApplication[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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. - - String - - String - - - None - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording - - Boolean - - Boolean - - - False - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. - - Boolean - - Boolean - - - False - - - Enabled - - 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 - - Boolean - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - CustomBanner - - References the Custom Banner text in the storage. - - Guid - - Guid - - - None - - - RecordReroutedCalls - - 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 - - Boolean - - - 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 - - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - ComplianceRecordingApplications - - 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. - - ComplianceRecordingApplication[] - - ComplianceRecordingApplication[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - 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. - - String - - String - - - None - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording - - Boolean - - Boolean - - - False - - - DisableComplianceRecordingAudioNotificationForCalls - - Setting this attribute to true disables recording audio notifications for 1:1 calls that are under compliance recording. - - Boolean - - Boolean - - - False - - - Enabled - - 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 - - Boolean - - - False - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - 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 - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - CustomBanner - - References the Custom Banner text in the storage. - - Guid - - Guid - - - None - - - RecordReroutedCalls - - 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 - - Boolean - - - 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 - - - WarnUserOnRemoval - - This parameter is reserved for future use. - - Boolean - - Boolean - - - True - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899') - - The command shown in Example 1 modifies an existing per-user Teams recording policy with the Identity ContosoPartnerComplianceRecordingPolicy. This policy is re-assigned a single application instance of a policy-based recording application: d93fefc7-93cc-4d44-9a5d-344b0fff2899, which is the ObjectId of the application instance as obtained from the Get-CsOnlineApplicationInstance cmdlet. - Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by that application instance. Existing calls and meetings are unaffected. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id 'd93fefc7-93cc-4d44-9a5d-344b0fff2899'), @(New-CsTeamsComplianceRecordingApplication -Parent 'ContosoPartnerComplianceRecordingPolicy' -Id '39dc3ede-c80e-4f19-9153-417a65a1f144') - - Example 2 is a variation of Example 1. In this case, the Teams recording policy is re-assigned two application instances of policy-based recording applications. - Any Microsoft Teams users who are assigned this policy will have their calls and meetings recorded by both those application instances. Existing calls and meetings are unaffected. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $false - - The command shown in Example 3 stops 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. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Set-CsTeamsComplianceRecordingPolicy -Identity 'ContosoPartnerComplianceRecordingPolicy' -Enabled $true - - The command shown in Example 4 causes automatic policy-based recording to occur for all new calls and meetings of all Microsoft Teams users who are assigned this policy. Existing calls and meetings are unaffected. - - - - -------------------------- Example 5 -------------------------- - PS C:\> Get-CsTeamsComplianceRecordingPolicy | Set-CsTeamsComplianceRecordingPolicy -Enabled $false - - The command shown in Example 5 stops automatic policy-based recording for all Teams recording policies. This effectively stops automatic policy-based recording for all new calls and meetings of all Microsoft Teams users who are assigned any Teams recording policy. Existing calls and meetings are unaffected. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Grant-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Set-CsTeamsEducationAssignmentsAppPolicy - Set - 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 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. - - - - Set-CsTeamsEducationAssignmentsAppPolicy - - Identity - - The identity of the policy being modified. The only value supported is "Global", as you cannot create user level policies of this type. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppress all non-fatal errors. - - - SwitchParameter - - - False - - - MakeCodeEnabledType - - Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - ParentDigestEnabledType - - Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - TurnItInApiKey - - The api key in order to enable TurnItIn. - - String - - String - - - None - - - TurnItInApiUrl - - The api url in order to enable TurnItIn - - String - - String - - - None - - - TurnItInEnabledType - - A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsEducationAssignmentsAppPolicy - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppress all non-fatal errors. - - - SwitchParameter - - - False - - - Instance - - Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. - - PSObject - - PSObject - - - None - - - MakeCodeEnabledType - - Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - ParentDigestEnabledType - - Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - TurnItInApiKey - - The api key in order to enable TurnItIn. - - String - - String - - - None - - - TurnItInApiUrl - - The api url in order to enable TurnItIn - - String - - String - - - None - - - TurnItInEnabledType - - A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" - - 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 - - Suppress all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The identity of the policy being modified. The only value supported is "Global", as you cannot create user level policies of this type. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Pass in the policy fetched from Get-CsTeamsEducationAssignmentsAppPolicy. - - PSObject - - PSObject - - - None - - - MakeCodeEnabledType - - Block-based coding activities to introduce computer science concepts. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - ParentDigestEnabledType - - Send digest emails to parents/guardians. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - Tenant - - Internal use only. - - System.Guid - - System.Guid - - - None - - - TurnItInApiKey - - The api key in order to enable TurnItIn. - - String - - String - - - None - - - TurnItInApiUrl - - The api url in order to enable TurnItIn - - String - - String - - - None - - - TurnItInEnabledType - - A service that detects plagiarism in student writing. Possible values are "Enabled" or "Disabled" - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsEducationAssignmentsAppPolicy -TurnItInEnabledType "Enabled" - - Enables the TurnItIn app for the organization - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationassignmentsapppolicy - - - - - - Set-CsTeamsEducationConfiguration - Set - CsTeamsEducationConfiguration - - This cmdlet is used to manage the organization-wide education configuration for Teams. - - - - This cmdlet is used to manage the organization-wide education configuration for Teams which contains settings that are applicable to education organizations. - You must be a Teams Service Administrator for your organization to run the cmdlet. - - - - Set-CsTeamsEducationConfiguration - - ParentGuardianPreferredContactMethod - - Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. - - System.String - - System.String - - - Email - - - UpdateParentInformation - - Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. - - System.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 - - - - - - ParentGuardianPreferredContactMethod - - Indicates whether Email or SMS is the preferred contact method used for parent communication invitations. Possible values are 'Email' and 'SMS'. - - System.String - - System.String - - - Email - - - UpdateParentInformation - - Indicates whether updating parents contact information is Enabled/Disabled by educators. Possible values are 'Enabled' and 'Disabled'. - - System.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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsEducationConfiguration -ParentGuardianPreferredContactMethod Email - - - - - - -------------------------- Example 2 -------------------------- - Set-CsTeamsEducationConfiguration -ParentGuardianPreferredContactMethod SMS - - - - - - -------------------------- Example 3 -------------------------- - Set-CsTeamsEducationConfiguration -UpdateParentInformation Enabled - - - - - - -------------------------- Example 4 -------------------------- - Set-CsTeamsEducationConfiguration -UpdateParentInformation Disabled - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseducationconfiguration - - - Get-CsTeamsEducationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseducationconfiguration - - - - - - Set-CsTeamsEmergencyCallingPolicy - Set - CsTeamsEmergencyCallingPolicy - - - - - - This cmdlet modifies an existing Teams Emergency Calling policy. Emergency calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. - - - - Set-CsTeamsEmergencyCallingPolicy - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provides a description of the Teams Emergency Calling policy to identify the purpose of setting it. - - String - - String - - - None - - - EnhancedEmergencyServiceDisclaimer - - Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. - - String - - String - - - None - - - ExtendedNotifications - - A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. - If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - - None - - - ExternalLocationLookupMode - - Enables ExternalLocationLookupMode. This mode allows users to set Emergency addresses for remote locations. - - - Disabled - Enabled - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. - - String - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. - - - NotificationOnly - ConferenceMuted - ConferenceUnMuted - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - - 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 - - - Description - - Provides a description of the Teams Emergency Calling policy to identify the purpose of setting it. - - String - - String - - - None - - - EnhancedEmergencyServiceDisclaimer - - Allows the tenant administrator to configure a text string, which is shown at the top of the Calls app. The user can acknowledge the string by selecting OK. The string will be shown on client restart. The disclaimer can be up to 350 characters. - - String - - String - - - None - - - ExtendedNotifications - - A list of one or more instances of TeamsEmergencyCallingExtendedNotification. Each TeamsEmergencyCallingExtendedNotification should use a unique EmergencyDialString. - If an extended notification is found for an emergency phone number based on the EmergencyDialString parameter the extended notification will be controlling the notification. If no extended notification is found the notification settings on the policy instance itself will be used. - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - System.Management.Automation.PSListModifier[Microsoft.Teams.Policy.Administration.Cmdlets.Core.TeamsEmergencyCallingExtendedNotification] - - - None - - - ExternalLocationLookupMode - - Enables ExternalLocationLookupMode. This mode allows users to set Emergency addresses for remote locations. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.ExternalLocationLookupMode - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy - - String - - String - - - None - - - NotificationDialOutNumber - - 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 - - String - - - None - - - NotificationGroup - - NotificationGroup is an email list of users and groups to be notified of an emergency call via Teams chat. Individual users or groups are separated by ";", for instance, "group1@contoso.com;group2@contoso.com". A maximum of 10 e-mail addresses can be specified and a maximum of 50 users in total can be notified. Both UPN and SMTP address are accepted when adding users directly. - - String - - String - - - None - - - NotificationMode - - The type of conference experience for security desk notification. Possible values are NotificationOnly, ConferenceMuted, and ConferenceUnMuted. - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - Microsoft.Teams.Policy.Administration.Cmdlets.Core.NotificationMode - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -NotificationGroup "123@contoso.com;567@contoso.com" - - This example modifies NotificationGroup of an existing policy instance with identity TestECP. - - - - -------------------------- Example 2 -------------------------- - $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert2@contoso.com" -NotificationMode ConferenceUnMuted -Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{remove=$en1} - - This example first creates a new Teams Emergency Calling Extended Notification object and then removes that Teams Emergency Calling Extended Notification from an existing Teams Emergency Calling policy. - - - - -------------------------- Example 3 -------------------------- - $en1 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "911" -NotificationGroup "alert@contoso.com" -NotificationDialOutNumber "+14255551234" -NotificationMode ConferenceUnMuted -$en2 = New-CsTeamsEmergencyCallingExtendedNotification -EmergencyDialString "933" -Set-CsTeamsEmergencyCallingPolicy -Identity "TestECP" -ExtendedNotifications @{add=$en1,$en2} - - This example first creates two new Teams Emergency Calling Extended Notification objects and then adds them to an existing Teams Emergency Calling policy with identity TestECP. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy - - - Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy - - - Grant-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingExtendedNotification - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingextendednotification - - - - - - Set-CsTeamsEventsPolicy - Set - CsTeamsEventsPolicy - - This cmdlet allows you to configure options for customizing Teams events experiences. Note that this policy is currently still in preview. - - - - User-level policy for tenant admin to configure options for customizing Teams events experiences. Use this cmdlet to update an existing policy. - - - - Set-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - None - - - AllowedWebinarTypesForRecordingPublish - - 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. - - String - - String - - - 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 - - - None - - - AllowEventIntegrations - - 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 - - - None - - - 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 - - - None - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - 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 - - Enables administrators to provide explanatory text to accompany a Teams Events policy. - - String - - String - - - None - - - EventAccessType - - > [!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 - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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. - - Boolean - - Boolean - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - None - - - AllowedWebinarTypesForRecordingPublish - - 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. - - String - - String - - - 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 - - - None - - - AllowEventIntegrations - - 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 - - - None - - - 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 - - - None - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - Enables administrators to provide explanatory text to accompany a Teams Events policy. - - String - - String - - - None - - - EventAccessType - - > [!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 - - String - - - None - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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. - - Boolean - - Boolean - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsEventsPolicy -Identity Global -AllowWebinars Disabled - - The command shown in Example 1 sets the value of the Default (Global) Events Policy in the organization to disable webinars, and leaves all other parameters the same. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy - - - - - - Set-CsTeamsExternalAccessConfiguration - Set - CsTeamsExternalAccessConfiguration - - - - - - Allows admins to set values in the TeamsExternalAccessConfiguration, which specifies configs that can be used to improve entire org security. This configuration primarily allows admins to block malicious external users from the organization. - - - - Set-CsTeamsExternalAccessConfiguration - - Identity - - The only option is Global - - XdsIdentity - - XdsIdentity - - - None - - - BlockedUsers - - 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. - - List - - List - - - None - - - BlockExternalAccessUserAccess - - Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. - - Boolean - - Boolean - - - False - - - Force - - Bypass confirmation - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - BlockedUsers - - 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. - - List - - List - - - None - - - BlockExternalAccessUserAccess - - Designates whether BlockedUsers list is taking effect or not. $true means BlockedUsers are blocked and can't communicate with internal users. - - Boolean - - Boolean - - - False - - - Force - - Bypass confirmation - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The only option is Global - - XdsIdentity - - XdsIdentity - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsExternalAccessConfiguration -Identity Global -BlockExternalAccessUserAccess $true - - In this example, the admin has enabled the BlockExternalUserAccess. The users in the BlockedUsers will be blocked from communicating with the internal users. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsExternalAccessConfiguration -Identity Global -BlockedUsers @("user1@malicious.com", "user2@malicious.com") - - In this example, the admin has added two malicious users into the blocked list. These blocked users can't communicate with internal users anymore. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsexternalaccessconfiguration - - - - - - Set-CsTeamsFeedbackPolicy - Set - CsTeamsFeedbackPolicy - - Use this cmdlet to modify a Teams feedback policy (the ability to send feedback about Teams to Microsoft and whether they receive the survey). - - - - Modifies a Teams feedback policy (the ability to send feedback about Teams to Microsoft and whether they receive the survey). - - - - Set-CsTeamsFeedbackPolicy - - Identity - - The unique identifier of the policy. - - String - - String - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - Instance - - Internal Microsoft use. - - Object - - Object - - - None - - - ReceiveSurveysMode - - 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 - - String - - String - - - Enabled - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - None - - - UserInitiatedMode - - 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 - - String - - String - - - Enabled - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - String - - - None - - - Instance - - Internal Microsoft use. - - Object - - Object - - - None - - - ReceiveSurveysMode - - 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 - - String - - String - - - Enabled - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - None - - - UserInitiatedMode - - 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 - - String - - String - - - Enabled - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsFeedbackPolicy -identity "New Hire Feedback Policy" -userInitiatedMode enabled -receiveSurveysMode disabled - - In this example, the policy "New Hire Feedback Policy" is modified, sets the userInitiatedMode parameter to enabled and the receiveSurveysMode parameter to disabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfeedbackpolicy - - - - - - Set-CsTeamsFilesPolicy - Set - 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 (e.g., Box). - - - - If your organization chooses a third-party for content storage, you can turn off the NativeFileEntryPoints parameter in the Teams Files policy. This parameter is enabled by default, which shows option to attach OneDrive / SharePoint content from Teams chats or channels. When this parameter is disabled, users won't see access points for OneDrive and SharePoint in Teams. Please note that OneDrive app in the left navigation pane in Teams isn't affected by this policy. Teams administrators can also choose which file service will be used by default when users upload files from their local devices by dragging and dropping them in a chat or channel. OneDrive and SharePoint are the existing defaults, but admins can now change it to a third-party app. Teams administrators would be able to create a customized teams files policy to match the organization's requirements. - - - - Set-CsTeamsFilesPolicy - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - DefaultFileUploadAppId - - 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 - - String - - - None - - - FileSharingInChatswithExternalUsers - - 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 - - - Enabled - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - NativeFileEntryPoints - - 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 - - String - - - None - - - SPChannelFilesTab - - Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultFileUploadAppId - - 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 - - String - - - None - - - FileSharingInChatswithExternalUsers - - 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 - - - Enabled - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - A unique identifier specifying the scope, and in some cases the name, of the policy. - - String - - String - - - None - - - NativeFileEntryPoints - - 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 - - String - - - None - - - SPChannelFilesTab - - Indicates whether Iframe channel files tab is enabled, if not, integrated channel files tab will be enabled. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsFilesPolicy -Identity "CustomOnlineVoicemailPolicy" -NativeFileEntryPoints Disabled/Enabled - - The command shown in Example 1 changes the teams files policy CustomTeamsFilesPolicy with NativeFileEntryPoints set to Disabled/Enabled. - - - - -------------------------- Example 2 -------------------------- - Set-CsTeamsFilesPolicy -DefaultFileUploadAppId GUID_appId - - The command shown in Example 2 changes the DefaultFileUploadAppId to AppId_GUID for tenant level global teams files policy when calling without Identity parameter. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsfilespolicy - - - Get-CsTeamsFilesPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfilespolicy - - - - - - Set-CsTeamsMediaConnectivityPolicy - Set - CsTeamsMediaConnectivityPolicy - - This cmdlet Set Teams media connectivity policy value for current tenant. - - - - This cmdlet Set Teams media connectivity policy DirectConnection value for current tenant. The value can be "Enabled" or "Disabled" - - - - Set-CsTeamsMediaConnectivityPolicy - - DirectConnection - - Policy value of the Teams media connectivity DirectConnection policy. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - Set-CsTeamsMediaConnectivityPolicy - - DirectConnection - - Policy value of the Teams media connectivity DirectConnection policy. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - DirectConnection - - Policy value of the Teams media connectivity DirectConnection policy. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams media connectivity policy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMediaConnectivityPolicy -Identity Test -DirectConnection Disabled - -Identity DirectConnection --------- ---------------- -Global Enabled -Tag:Test Disabled - - Set Teams media connectivity policy "DirectConnection" value to "Disabled" for identity "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMediaConnectivityPolicy - - - New-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmediaconnectivitypolicy - - - Remove-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmediaconnectivitypolicy - - - Get-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmediaconnectivitypolicy - - - Grant-CsTeamsMediaConnectivityPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmediaconnectivitypolicy - - - - - - Set-CsTeamsMeetingBrandingPolicy - Set - CsTeamsMeetingBrandingPolicy - - The CsTeamsMeetingBrandingPolicy cmdlet enables administrators to control the appearance in meetings by defining custom backgrounds, logos, and colors. - - - - The `Set-CsTeamsMeetingBrandingPolicy` cmdlet allows administrators to update existing meeting branding policies. However, it cannot be used to upload the images. If you want to upload the images, you should use Teams Admin Center. - - - - Set-CsTeamsMeetingBrandingPolicy - - Identity - - Identity of meeting branding policy that will be updated. To refer to the global policy, use this syntax: `-Identity global`. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DefaultTheme - - This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. - - String - - String - - - None - - - EnableMeetingBackgroundImages - - Enables custom meeting backgrounds. - - Boolean - - Boolean - - - None - - - EnableMeetingOptionsThemeOverride - - Allows organizers to control meeting themes. - - Boolean - - Boolean - - - None - - - Force - - 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. It is not possible to add or remove background images using cmdlets. You should use Teams Admin Center for that purpose. - - PSListModifier - - PSListModifier - - - None - - - MeetingBrandingThemes - - 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 - - PSListModifier - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DefaultTheme - - This parameter is reserved for Microsoft internal use only. Identity of default meeting theme. - - String - - String - - - None - - - EnableMeetingBackgroundImages - - Enables custom meeting backgrounds. - - Boolean - - Boolean - - - None - - - EnableMeetingOptionsThemeOverride - - Allows organizers to control meeting themes. - - Boolean - - Boolean - - - None - - - Force - - Suppresses any confirmation prompts that would otherwise be displayed before making changes. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Identity of meeting branding policy that will be updated. To refer to the global policy, use this syntax: `-Identity global`. - - String - - String - - - None - - - MeetingBackgroundImages - - 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 - - PSListModifier - - - None - - - MeetingBrandingThemes - - 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 - - PSListModifier - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - Available in Teams PowerShell Module 4.9.3 and later. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMeetingBrandingPolicy -PS C:\> $brandingPolicy = Get-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -PS C:\> $brandingPolicy.MeetingBrandingThemes[0].BrandAccentColor = "#FF0000" -PS C:\> Set-CsTeamsMeetingBrandingPolicy -Identity "demo branding" -MeetingBrandingThemes $brandingPolicy.MeetingBrandingThemes - - In this example, the commands will change the brand accent color of the theme inside the `demo branding` meeting branding policy to `#FF0000` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - Get-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbrandingpolicy - - - Grant-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbrandingpolicy - - - New-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbrandingpolicy - - - Remove-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbrandingpolicy - - - Set-CsTeamsMeetingBrandingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbrandingpolicy - - - - - - Set-CsTeamsMeetingConfiguration - Set - CsTeamsMeetingConfiguration - - The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. - - - - The CsTeamsMeetingConfiguration cmdlets enable administrators to control the meetings configurations in their tenants. Use this cmdlet to set the configuration for your organization. - - - - Set-CsTeamsMeetingConfiguration - - Identity - - The only valid input is Global - - XdsIdentity - - XdsIdentity - - - None - - - ClientAppSharingPort - - Determines the starting port number for client screen sharing or application sharing. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50040 - - UInt32 - - UInt32 - - - None - - - ClientAppSharingPortRange - - Determines the total number of ports available for client sharing or application sharing. Default value is 20 - - UInt32 - - UInt32 - - - None - - - ClientAudioPort - - Determines the starting port number for client audio. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50000 - - UInt32 - - UInt32 - - - None - - - ClientAudioPortRange - - Determines the total number of ports available for client audio. Default value is 20 - - UInt32 - - UInt32 - - - None - - - ClientMediaPortRangeEnabled - - Determines whether custom media port and range selections need to be enforced. When set to True, clients will use the specified port range for media traffic. When set to False (the default value) for any available port (from port 1024 through port 65535) will be used to accommodate media traffic. - - Boolean - - Boolean - - - None - - - ClientVideoPort - - Determines the starting port number for client video. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50020 - - UInt32 - - UInt32 - - - None - - - ClientVideoPortRange - - Determines the total number of ports available for client video. Default value is 20 - - UInt32 - - UInt32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CustomFooterText - - Text to be used on custom meeting invitations - - String - - String - - - None - - - DisableAnonymousJoin - - Determines whether anonymous users are blocked from joining meetings in the tenant. Set this to TRUE to block anonymous users from joining. Set this to FALSE to allow anonymous users to join meetings. - - Boolean - - Boolean - - - 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 - - Determines whether Quality of Service Marking for real-time media (audio, video, screen/app sharing) is enabled in the tenant. Set this to TRUE to enable and FALSE to disable - - Boolean - - Boolean - - - 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 - - {{Fill Force Description}} - - - SwitchParameter - - - False - - - HelpURL - - URL to a website where users can obtain assistance on joining the meeting.This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - - String - - String - - - None - - - Instance - - Use this parameter to update a saved configuration instance - - PSObject - - PSObject - - - None - - - LegalURL - - URL to a website containing legal information and meeting disclaimers. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - - String - - String - - - None - - - 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 - - - LogoURL - - 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 - - String - - String - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - ClientAppSharingPort - - Determines the starting port number for client screen sharing or application sharing. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50040 - - UInt32 - - UInt32 - - - None - - - ClientAppSharingPortRange - - Determines the total number of ports available for client sharing or application sharing. Default value is 20 - - UInt32 - - UInt32 - - - None - - - ClientAudioPort - - Determines the starting port number for client audio. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50000 - - UInt32 - - UInt32 - - - None - - - ClientAudioPortRange - - Determines the total number of ports available for client audio. Default value is 20 - - UInt32 - - UInt32 - - - None - - - ClientMediaPortRangeEnabled - - Determines whether custom media port and range selections need to be enforced. When set to True, clients will use the specified port range for media traffic. When set to False (the default value) for any available port (from port 1024 through port 65535) will be used to accommodate media traffic. - - Boolean - - Boolean - - - None - - - ClientVideoPort - - Determines the starting port number for client video. Minimum allowed value: 1024 Maximum allowed value: 65535 Default value: 50020 - - UInt32 - - UInt32 - - - None - - - ClientVideoPortRange - - Determines the total number of ports available for client video. Default value is 20 - - UInt32 - - UInt32 - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CustomFooterText - - Text to be used on custom meeting invitations - - String - - String - - - None - - - DisableAnonymousJoin - - Determines whether anonymous users are blocked from joining meetings in the tenant. Set this to TRUE to block anonymous users from joining. Set this to FALSE to allow anonymous users to join meetings. - - Boolean - - Boolean - - - 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 - - Determines whether Quality of Service Marking for real-time media (audio, video, screen/app sharing) is enabled in the tenant. Set this to TRUE to enable and FALSE to disable - - Boolean - - Boolean - - - 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 - - {{Fill Force Description}} - - SwitchParameter - - SwitchParameter - - - False - - - HelpURL - - URL to a website where users can obtain assistance on joining the meeting.This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - - String - - String - - - None - - - Identity - - The only valid input is Global - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Use this parameter to update a saved configuration instance - - PSObject - - PSObject - - - None - - - LegalURL - - URL to a website containing legal information and meeting disclaimers. This would be included in the meeting invite. Please ensure this URL is publicly accessible for invites that go beyond your federation boundaries - - String - - String - - - None - - - 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 - - - LogoURL - - 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 - - String - - String - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMeetingConfiguration -EnableQoS $true -ClientVideoPort 10000 -Identity Global - - In this example, the user is enabling collection of QoS data in his organization and lowering the video stream quality to accommodate low bandwidth networks. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingconfiguration - - - - - - Set-CsTeamsMeetingPolicy - Set - 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 `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 Set-CsTeamsMeetingPolicy cmdlet allows administrators to update existing meeting policies that can be assigned to particular users to control Teams features related to meetings. - - - - Set-CsTeamsMeetingPolicy - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - AllowAnnotations - - This setting will allow admins to choose which users will be able to use the Annotation feature. - - Boolean - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - None - - - AllowAnonymousUsersToJoinMeeting - - > [!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 - - - True - - - AllowAnonymousUsersToStartMeeting - - 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 - - Boolean - - - None - - - AllowAvatarsInGallery - - If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. - - Boolean - - Boolean - - - None - - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - - - AllowCarbonSummary - - This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. - > [!NOTE] > Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. - - Boolean - - Boolean - - - None - - - AllowCartCaptionsScheduling - - Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real time captions in meetings. Possible values are: - - EnabledUserOverride , CART captions is available by default but a user can disable. - DisabledUserOverride , if you would like users to be able to use CART captions in meetings but by default it is disabled. - Disabled , if you'd like to not allow CART captions in meeting. - - String - - String - - - DisabledUserOverride - - - AllowChannelMeetingScheduling - - Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. - > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. - - Boolean - - Boolean - - - None - - - AllowCloudRecording - - Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings. - - Boolean - - Boolean - - - None - - - AllowDocumentCollaboration - - This setting will allow admins to choose which users will be able to use the Document Collaboration feature. - - String - - String - - - 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 - - Determines whether meeting organizers are allowed to download the attendee engagement report. Possible values are: - - Enabled: allow the meeting organizer to download the report. - - Disabled: disable attendee report generation and prohibit meeting organizer from downloading it. - - ForceEnabled: enable attendee report generation and prohibit meeting organizer from disabling it. - - If set to Enabled or ForceEnabled, only meeting organizers and co-organizers will get a link to download the report in Teams. Regular attendees will have no access to it. - - String - - String - - - None - - - AllowExternalNonTrustedMeetingChat - - This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. - - Boolean - - Boolean - - - 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 - - Determines whether external 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 an external user from giving or requesting control in a meeting. - - Boolean - - Boolean - - - None - - - AllowImmersiveView - - If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. - - Boolean - - Boolean - - - None - - - AllowIPAudio - - Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. - - Boolean - - Boolean - - - True - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - None - - - AllowLocalRecording - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowMeetingCoach - - This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. - - Boolean - - Boolean - - - None - - - AllowMeetingReactions - - Set to false to disable Meeting Reactions. - - Boolean - - Boolean - - - True - - - AllowMeetingRegistration - - Controls if a user can create a webinar meeting. The default value is True. - Possible values: - - True - - False - - Boolean - - Boolean - - - True - - - AllowMeetNow - - Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc meetings. Set this to FALSE to prohibit the user from starting ad-hoc meetings. - - Boolean - - Boolean - - - None - - - AllowNDIStreaming - - This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. - - Boolean - - Boolean - - - None - - - AllowNetworkConfigurationSettingsLookup - - 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 - - - False - - - AllowOrganizersToOverrideLobbySettings - - This parameter has been deprecated and currently has no effect. - - Boolean - - Boolean - - - False - - - AllowOutlookAddIn - - Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client. - - Boolean - - Boolean - - - None - - - AllowParticipantGiveRequestControl - - 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 - - - None - - - AllowPowerPointSharing - - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateMeetingScheduling - - 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 - - Boolean - - - None - - - AllowPrivateMeetNow - - This setting controls whether a user can start an ad hoc private meeting. - - Boolean - - Boolean - - - None - - - AllowPSTNUsersToBypassLobby - - Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True , PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. - - Boolean - - Boolean - - - None - - - AllowRecordingStorageOutsideRegion - - Allows storing recordings outside of the region. All meeting recordings will be permanently stored in another region, and can't be migrated. This does not apply to recordings saved in OneDrive or SharePoint. - - Boolean - - Boolean - - - False - - - AllowScreenContentDigitization - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowSharedNotes - - Determines whether users are allowed to take shared Meeting notes. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowTasksFromTranscript - - This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. - - String - - String - - - None - - - AllowTrackingInReport - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - - AllowUserToJoinExternalMeeting - - Currently, this parameter has no effect. - Possible values are: - - Enabled - - FederatedOnly - - Disabled - - String - - String - - - Disabled - - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - - - AllowWatermarkForScreenSharing - - This setting allows scheduling meetings with watermarking for screen sharing enabled. - - Boolean - - Boolean - - - False - - - AllowWhiteboard - - Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AnonymousUserAuthenticationMethod - - 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 - - String - - - OneTimePasscode - - - AttendeeIdentityMasking - - This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). - Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings - - String - - String - - - None - - - AudibleRecordingNotification - - The setting controls whether recording notification is played to all attendees or just PSTN users. - - String - - String - - - None - - - AutoAdmittedUsers - - Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: - - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. - This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). - - String - - String - - - None - - - AutomaticallyStartCopilot - - > [!NOTE] > This feature has not been fully released yet, so the setting will have no effect. - This setting gives admins the ability to auto-start Copilot. - Possible values are: - - Enabled - - Disabled - - String - - String - - - 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 - - A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. - The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. - - List - - List - - - Empty List - - - CaptchaVerificationForMeetingJoin - - Require a verification check for meeting join. - Possible values: - NotRequired , CAPTCHA not required to join the meeting - AnonymousUsersAndUntrustedOrganizations , Anonymous users and people from untrusted organizations must complete a CAPTCHA challenge to join the meeting. - - String - - String - - - None - - - ChannelRecordingDownload - - Controls how channel meeting recordings are saved, permissioned, and who can download them. - Possible values: - - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. - - Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. - - String - - String - - - Allow - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ConnectToMeetingControls - - Allows external connections of thirdparty apps to Microsoft Teams - Possible values are: - Enabled - - Disabled - - String - - String - - - Enabled - - - ContentSharingInExternalMeetings - - This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. - - String - - String - - - None - - - Copilot - - This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. - Possible values are: - - Enabled - - EnabledWithTranscript - - String - - String - - - None - - - CopyRestriction - - This parameter enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. - - Boolean - - Boolean - - - TRUE - - - Description - - Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - DesignatedPresenterRoleMode - - Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. - Possible values are: - - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. - - String - - String - - - None - - - DetectSensitiveContentDuringScreenSharing - - Allows the admin to enable sensitive content detection during screen share. - - Boolean - - Boolean - - - None - - - EnrollUserOverride - - Turn on/off Biometric enrollment Possible values are: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - 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. - - String - - String - - - None - - - ExternalMeetingJoin - - Determines whether the user is allowed to join external meetings. - Possible values are: - - EnabledForAnyone - - EnabledForTrustedOrgs - - Disabled - - String - - String - - - EnabledForAnyone - - - 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 - - - InfoShownInReportMode - - This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. - - String - - String - - - None - - - IPAudioMode - - Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. - - String - - String - - - None - - - IPVideoMode - - Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. - - String - - String - - - None - - - LiveCaptionsEnabledType - - 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 - - String - - - DisabledUserOverride - - - LiveInterpretationEnabledType - - 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 - - String - - - DisabledUserOverride - - - LiveStreamingMode - - Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). - Possible values are: - - Disabled - - Enabled - - String - - String - - - None - - - LobbyChat - - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - Determines whether chat messages are allowed in the lobby. - Possible values are: - - Enabled - - Disabled - - String - - String - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - UInt32 - - UInt32 - - - None - - - MeetingChatEnabledType - - Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. - > [!NOTE] > Due to a new feature rollout, in order to set the value of MeetingChatEnabledType to Disabled, you will need to also set the value of LobbyChat to disabled. e.g., > Install-Module MicrosoftTeams -RequiredVersion 6.6.1-preview -Force -AllowClobber -AllowPrereleaseConnect-MicrosoftTeams Set-CsTeamsMeetingPolicy -Identity Global -MeetingChatEnabledType Disabled -LobbyChat Disabled - - String - - String - - - None - - - 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: - `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. - - String - - String - - - None - - - NewMeetingRecordingExpirationDays - - Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. Value can also be -1 to set meeting recordings to never expire. - > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. - - Int32 - - Int32 - - - None - - - 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: - - MicrosoftDefault - - Enabled - - Disabled - - String - - String - - - None - - - ParticipantNameChange - - This setting will enable Tenant Admins to turn on/off participant renaming feature. - Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Participant Renaming feature. - - String - - String - - - 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 - - Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. - - String - - String - - - TeamsAndSfb - - - QnAEngagementMode - - This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled - - String - - String - - - 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 - - This parameter can take two possible values: - - Stream - - OneDriveForBusiness - - > [!NOTE] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. - - String - - String - - - None - - - RoomAttributeUserOverride - - Possible values: - - Off - - Distinguish - - Attribute - - String - - String - - - None - - - RoomPeopleNameUserOverride - - Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. - > [!NOTE] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: > > - Off: No People Recognition option on Microsoft Teams Room (Default). > - On: Policy value allows People recognition option on Microsoft Teams Rooms under call control bar. - - String - - String - - - None - - - ScreenSharingMode - - Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. - - String - - String - - - None - - - SmsNotifications - - Participants can sign up for text message meeting reminders. - - String - - String - - - None - - - SpeakerAttributionMode - - Determines if users are identified in transcriptions and if they can change the value of the Automatically identify me in meeting captions and transcripts setting. - Possible values: - - Enabled : Speakers are identified in transcription. - EnabledUserOverride : Speakers are identified in transcription. If enabled, users can override this setting and choose not to be identified in their Teams profile settings. - DisabledUserOverride : Speakers are not identified in transcription. If enabled, users can override this setting and choose to be identified in their Teams profile settings. - Disabled : Speakers are not identified in transcription. - - String - - String - - - None - - - StreamingAttendeeMode - - Controls if Teams uses overflow capability once a meeting reaches its capacity (1,000 users with full functionality). - Possible values are: - - Disabled - - Enabled - - Set this to Enabled to allow up to 10,000 extra view-only attendees to join. - - String - - String - - - Disabled - - - TeamsCameraFarEndPTZMode - - Possible values are: - - Disabled - - AutoAcceptInTenant - - AutoAcceptAll - - String - - String - - - Disabled - - - 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` - 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. - - Guid - - Guid - - - None - - - UsersCanAdmitFromLobby - - This policy controls who can admit from the lobby. - - String - - String - - - None - - - VideoFiltersMode - - Determines the background effects that a user can configure in the Teams client. Possible values are: - - NoFilters: No filters are available. - - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. - - AllFilters: All filters are available, including custom images. - - String - - String - - - None - - - VoiceIsolation - - Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. - Possible values are: - Enabled (default) - - Disabled - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - WatermarkForAnonymousUsers - - Determines the meeting experience and watermark content of an anonymous user. - - String - - String - - - None - - - WatermarkForCameraVideoOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForCameraVideoPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WatermarkForScreenSharingOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForScreenSharingPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - WhoCanRegister - - Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts set the value to 'EveryoneInCompany'. - Possible values: - - Everyone - - EveryoneInCompany - - String - - String - - - Everyone - - - - - - 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: - - Disabled - - Enabled - - String - - String - - - Enabled - - - AllowAnnotations - - This setting will allow admins to choose which users will be able to use the Annotation feature. - - Boolean - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - None - - - AllowAnonymousUsersToJoinMeeting - - > [!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 - - - True - - - AllowAnonymousUsersToStartMeeting - - 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 - - Boolean - - - None - - - AllowAvatarsInGallery - - If admins disable avatars in 2D meetings, then users cannot represent themselves as avatars in the Gallery view. This does not disable avatars in Immersive view. - - Boolean - - Boolean - - - None - - - AllowBreakoutRooms - - Set to true to enable Breakout Rooms, set to false to disable the Breakout Rooms functionality. - - Boolean - - Boolean - - - True - - - AllowCarbonSummary - - This setting will enable Tenant Admins to enable/disable the sharing of location data necessary to provide the end of meeting carbon summary screen for either the entire tenant or for a particular user. If set to True the meeting organizer will share their location to the client of the participant to enable the calculation of distance and the resulting carbon. - > [!NOTE] > Location data will not be visible to the organizer or participants in this case and only carbon avoided will be shown. If set to False then organizer location data will not be shown and no carbon summary screen will be displayed to the participants. - - Boolean - - Boolean - - - None - - - AllowCartCaptionsScheduling - - Determines whether a user can add a URL for captions from a Communications Access Real-Time Translation (CART) captioner for providing real time captions in meetings. Possible values are: - - EnabledUserOverride , CART captions is available by default but a user can disable. - DisabledUserOverride , if you would like users to be able to use CART captions in meetings but by default it is disabled. - Disabled , if you'd like to not allow CART captions in meeting. - - String - - String - - - DisabledUserOverride - - - AllowChannelMeetingScheduling - - Determines whether a user can schedule channel meetings. Set this to TRUE to allow a user to schedule channel meetings. Set this to FALSE to prohibit the user from scheduling channel meetings. - > [!NOTE] > This only restricts from scheduling and not from joining a meeting scheduled by another user. - - Boolean - - Boolean - - - None - - - AllowCloudRecording - - Determines whether cloud recording is allowed in a user's meetings. Set this to TRUE to allow the user to be able to record meetings. Set this to FALSE to prohibit the user from recording meetings. - - Boolean - - Boolean - - - None - - - AllowDocumentCollaboration - - This setting will allow admins to choose which users will be able to use the Document Collaboration feature. - - String - - String - - - 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 - - Determines whether meeting organizers are allowed to download the attendee engagement report. Possible values are: - - Enabled: allow the meeting organizer to download the report. - - Disabled: disable attendee report generation and prohibit meeting organizer from downloading it. - - ForceEnabled: enable attendee report generation and prohibit meeting organizer from disabling it. - - If set to Enabled or ForceEnabled, only meeting organizers and co-organizers will get a link to download the report in Teams. Regular attendees will have no access to it. - - String - - String - - - None - - - AllowExternalNonTrustedMeetingChat - - This field controls whether a user is allowed to chat in external meetings with users from non trusted organizations. - - Boolean - - Boolean - - - 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 - - Determines whether external 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 an external user from giving or requesting control in a meeting. - - Boolean - - Boolean - - - None - - - AllowImmersiveView - - If admins have disabled avatars, this does not disable using avatars in Immersive view on Teams desktop or web. Additionally, it does not prevent users from joining the Teams meeting on VR headsets. - - Boolean - - Boolean - - - None - - - AllowIPAudio - - Determines whether audio is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their audio. Set this to FALSE to prohibit the user from sharing their audio. - - Boolean - - Boolean - - - True - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - None - - - AllowLocalRecording - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowMeetingCoach - - This setting will allow admins to allow users the option of turning on Meeting Coach during meetings, which provides users with private personalized feedback on their communication and inclusivity. If set to True, then users will see and be able to click the option for turning on Meeting Coach during calls. If set to False, then users will not have the option to turn on Meeting Coach during calls. - - Boolean - - Boolean - - - None - - - AllowMeetingReactions - - Set to false to disable Meeting Reactions. - - Boolean - - Boolean - - - True - - - AllowMeetingRegistration - - Controls if a user can create a webinar meeting. The default value is True. - Possible values: - - True - - False - - Boolean - - Boolean - - - True - - - AllowMeetNow - - Determines whether a user can start ad-hoc meetings. Set this to TRUE to allow a user to start ad-hoc meetings. Set this to FALSE to prohibit the user from starting ad-hoc meetings. - - Boolean - - Boolean - - - None - - - AllowNDIStreaming - - This parameter enables the use of NDI technology to capture and deliver broadcast-quality audio and video over your network. - - Boolean - - Boolean - - - None - - - AllowNetworkConfigurationSettingsLookup - - 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 - - - False - - - AllowOrganizersToOverrideLobbySettings - - This parameter has been deprecated and currently has no effect. - - Boolean - - Boolean - - - False - - - AllowOutlookAddIn - - Determines whether a user can schedule Teams Meetings in Outlook desktop client. Set this to TRUE to allow the user to be able to schedule Teams meetings in Outlook client. Set this to FALSE to prohibit a user from scheduling Teams meeting in Outlook client. - - Boolean - - Boolean - - - None - - - AllowParticipantGiveRequestControl - - 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 - - - None - - - AllowPowerPointSharing - - Determines whether Powerpoint sharing is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPrivateMeetingScheduling - - 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 - - Boolean - - - None - - - AllowPrivateMeetNow - - This setting controls whether a user can start an ad hoc private meeting. - - Boolean - - Boolean - - - None - - - AllowPSTNUsersToBypassLobby - - Determines whether a PSTN user joining the meeting is allowed or not to bypass the lobby. If you set this parameter to True , PSTN users are allowed to bypass the lobby as long as an authenticated user is joined to the meeting. - - Boolean - - Boolean - - - None - - - AllowRecordingStorageOutsideRegion - - Allows storing recordings outside of the region. All meeting recordings will be permanently stored in another region, and can't be migrated. This does not apply to recordings saved in OneDrive or SharePoint. - - Boolean - - Boolean - - - False - - - AllowScreenContentDigitization - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowSharedNotes - - Determines whether users are allowed to take shared Meeting notes. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowTasksFromTranscript - - This policy setting allows for the extraction of AI-Assisted Action Items/Tasks from the Meeting Transcript. - - String - - String - - - None - - - AllowTrackingInReport - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - - AllowUserToJoinExternalMeeting - - Currently, this parameter has no effect. - Possible values are: - - Enabled - - FederatedOnly - - Disabled - - String - - String - - - Disabled - - - AllowWatermarkForCameraVideo - - This setting allows scheduling meetings with watermarking for video enabled. - - Boolean - - Boolean - - - False - - - AllowWatermarkForScreenSharing - - This setting allows scheduling meetings with watermarking for screen sharing enabled. - - Boolean - - Boolean - - - False - - - AllowWhiteboard - - Determines whether whiteboard is allowed in a user's meetings. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AnonymousUserAuthenticationMethod - - 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 - - String - - - OneTimePasscode - - - AttendeeIdentityMasking - - This setting will allow admins to enable or disable Masked Attendee mode in Meetings. Masked Attendee meetings will hide attendees' identifying information (e.g., name, contact information, profile photo). - Possible Values: Enabled: Hides attendees' identifying information in meetings. Disabled: Does not allow attendees' to hide identifying information in meetings - - String - - String - - - None - - - AudibleRecordingNotification - - The setting controls whether recording notification is played to all attendees or just PSTN users. - - String - - String - - - None - - - AutoAdmittedUsers - - Determines what types of participants will automatically be added to meetings organized by this user. Possible values are: - - EveryoneInCompany , if you would like meetings to place every external user in the lobby but allow all users in the company to join the meeting immediately. - EveryoneInSameAndFederatedCompany , if you would like meetings to allow federated users to join like your company's users, but place all other external users in a lobby. - Everyone , if you'd like to admit anonymous users by default. - OrganizerOnly , if you would like that only meeting organizers can bypass the lobby. - EveryoneInCompanyExcludingGuests , if you would like meetings to place every external and guest users in the lobby but allow all other users in the company to join the meeting immediately. - InvitedUsers , if you would like that only meeting organizers and invited users can bypass the lobby. - This setting also applies to participants joining via a PSTN device (i.e. a traditional phone). - - String - - String - - - None - - - AutomaticallyStartCopilot - - > [!NOTE] > This feature has not been fully released yet, so the setting will have no effect. - This setting gives admins the ability to auto-start Copilot. - Possible values are: - - Enabled - - Disabled - - String - - String - - - 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 - - A user can join a Teams meeting anonymously using a Teams client (https://support.microsoft.com/office/join-a-meeting-without-a-teams-account-c6efc38f-4e03-4e79-b28f-e65a4c039508) or using a [custom application built using Azure Communication Services](https://learn.microsoft.com/azure/communication-services/concepts/join-teams-meeting). When anonymous meeting join is enabled, both types of clients may be used by default. This optional parameter can be used to block one of the client types that can be used. - The allowed values are ACS (to block the use of Azure Communication Services clients) or Teams (to block the use of Teams clients). Both can also be specified, separated by a comma, but this is equivalent to disabling anonymous join completely. - - List - - List - - - Empty List - - - CaptchaVerificationForMeetingJoin - - Require a verification check for meeting join. - Possible values: - NotRequired , CAPTCHA not required to join the meeting - AnonymousUsersAndUntrustedOrganizations , Anonymous users and people from untrusted organizations must complete a CAPTCHA challenge to join the meeting. - - String - - String - - - None - - - ChannelRecordingDownload - - Controls how channel meeting recordings are saved, permissioned, and who can download them. - Possible values: - - Allow - Saves channel meeting recordings to a "Recordings" folder in the channel. The permissions on the recording files will be based on the Channel SharePoint permissions. This is the same as any other file uploaded for the channel. - - Block - Saves channel meeting recordings to a "Recordings\View only" folder in the channel. Channel owners will have full rights to the recordings in this folder, but channel members will have read access without the ability to download. - - String - - String - - - Allow - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ConnectToMeetingControls - - Allows external connections of thirdparty apps to Microsoft Teams - Possible values are: - Enabled - - Disabled - - String - - String - - - Enabled - - - ContentSharingInExternalMeetings - - This policy allows admins to determine whether the user can share content in meetings organized by external organizations. The user should have a Teams Premium license to be protected under this policy. - - String - - String - - - None - - - Copilot - - This setting allows the admin to choose whether Copilot will be enabled with a persisted transcript or a non-persisted transcript. - Possible values are: - - Enabled - - EnabledWithTranscript - - String - - String - - - None - - - CopyRestriction - - This parameter enables a setting that controls a meeting option which allows users to disable right-click or Ctrl+C to copy, Copy link, Forward message, and Share to Outlook for meeting chat messages. - - Boolean - - Boolean - - - TRUE - - - Description - - Enables administrators to provide explanatory text about the meeting policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - DesignatedPresenterRoleMode - - Determines if users can change the default value of the Who can present? setting in Meeting options in the Teams client. This policy setting affects all meetings, including Meet Now meetings. - Possible values are: - - EveryoneUserOverride: All meeting participants can be presenters. This is the default value. This parameter corresponds to the Everyone setting in Teams. - EveryoneInCompanyUserOverride: Authenticated users in the organization, including guest users, can be presenters. This parameter corresponds to the People in my organization setting in Teams. - EveryoneInSameAndFederatedCompanyUserOverride: Authenticated users in the organization, including guest users and users from federated organizations, can be presenters. This parameter corresponds to the People in my organization and trusted organizations setting in Teams. - OrganizerOnlyUserOverride: Only the meeting organizer can be a presenter and all meeting participants are designated as attendees. This parameter corresponds to the Only me setting in Teams. - - String - - String - - - None - - - DetectSensitiveContentDuringScreenSharing - - Allows the admin to enable sensitive content detection during screen share. - - Boolean - - Boolean - - - None - - - EnrollUserOverride - - Turn on/off Biometric enrollment Possible values are: - - Disabled - - Enabled - - String - - String - - - Disabled - - - ExplicitRecordingConsent - - Set participant agreement and notification for Recording, Transcript, Copilot in Teams meetings. - 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. - - String - - String - - - None - - - ExternalMeetingJoin - - Determines whether the user is allowed to join external meetings. - Possible values are: - - EnabledForAnyone - - EnabledForTrustedOrgs - - Disabled - - String - - String - - - EnabledForAnyone - - - 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 - - Specify the name of the policy being created. - - XdsIdentity - - XdsIdentity - - - None - - - InfoShownInReportMode - - This policy controls what kind of information get shown for the user's attendance in attendance report/dashboard. - - String - - String - - - None - - - IPAudioMode - - Determines whether audio can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming audio in the meeting. Set this to DISABLED to prohibit outgoing and incoming audio in the meeting. - - String - - String - - - None - - - IPVideoMode - - Determines whether video can be turned on in meetings and group calls. Set this to ENABLEDOUTGOINGINCOMING to allow outgoing and incoming video in the meeting. Set this to DISABLED to prohibit outgoing and incoming video in the meeting. - - String - - String - - - None - - - LiveCaptionsEnabledType - - 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 - - String - - - DisabledUserOverride - - - LiveInterpretationEnabledType - - 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 - - String - - - DisabledUserOverride - - - LiveStreamingMode - - Determines whether you provide support for your users to stream their Teams meetings to large audiences through Real-Time Messaging Protocol (RTMP). - Possible values are: - - Disabled - - Enabled - - String - - String - - - None - - - LobbyChat - - >[!NOTE] >This feature has not been released yet and will have no changes if it is enabled or disabled. - Determines whether chat messages are allowed in the lobby. - Possible values are: - - Enabled - - Disabled - - String - - String - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - UInt32 - - UInt32 - - - None - - - MeetingChatEnabledType - - Specifies if users will be able to chat in meetings. Possible values are: Disabled, Enabled, and EnabledExceptAnonymous. - > [!NOTE] > Due to a new feature rollout, in order to set the value of MeetingChatEnabledType to Disabled, you will need to also set the value of LobbyChat to disabled. e.g., > Install-Module MicrosoftTeams -RequiredVersion 6.6.1-preview -Force -AllowClobber -AllowPrereleaseConnect-MicrosoftTeams Set-CsTeamsMeetingPolicy -Identity Global -MeetingChatEnabledType Disabled -LobbyChat Disabled - - String - - String - - - None - - - 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: - `ar-SA,az-Latn-AZ,bg-BG,ca-ES,cs-CZ,cy-GB,da-DK,de-DE,el-GR,en-GB,en-US,es-ES,es-MX,et-EE,eu-ES,fi-FI,fil-PH,fr-CA,fr-FR,gl-ES,he-IL,hi-IN,hr-HR,hu-HU,id-ID,is-IS,it-IT,ja-JP,ka-GE,kk-KZ,ko-KR,lt-LT,lv-LV,mk-MK,ms-MY,nb-NO,nl-NL,nn-NO,pl-PL,pt-BR,pt-PT,ro-RO,ru-RU,sk-SK,sl-SL,sq-AL,sr-Latn-RS,sv-SE,th-TH,tr-TR,uk-UA,vi-VN,zh-CN,zh-TW`. - - String - - String - - - None - - - NewMeetingRecordingExpirationDays - - Specifies the number of days before meeting recordings will expire and move to the recycle bin. Value can be from 1 to 99,999 days. Value can also be -1 to set meeting recordings to never expire. - > [!NOTE] > You may opt to set Meeting Recordings to never expire by entering the value -1. - - Int32 - - Int32 - - - None - - - 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: - - MicrosoftDefault - - Enabled - - Disabled - - String - - String - - - None - - - ParticipantNameChange - - This setting will enable Tenant Admins to turn on/off participant renaming feature. - Possible Values: Enabled: Turns on the Participant Renaming feature. Disabled: Turns off the Participant Renaming feature. - - String - - String - - - 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 - - Determines the Outlook meeting add-in available to users on Islands mode. By default, this is set to TeamsAndSfb, and the users sees both the Skype for Business and Teams add-ins. Set this to Teams to remove the Skype for Business add-in and only show the Teams add-in. - - String - - String - - - TeamsAndSfb - - - QnAEngagementMode - - This setting enables Microsoft 365 Tenant Admins to Enable or Disable the Questions and Answers experience (Q+A). When Enabled, Organizers can turn on Q+A for their meetings. When Disabled, Organizers cannot turn on Q+A in their meetings. The setting is enforced when a meeting is created or is updated by Organizers. Attendees can use Q+A in meetings where it was previously added. Organizers can remove Q+A for those meetings through Teams and Outlook Meeting Options. Possible values: Enabled, Disabled - - String - - String - - - 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 - - This parameter can take two possible values: - - Stream - - OneDriveForBusiness - - > [!NOTE] > The change of storing Teams meeting recordings from Classic Stream to OneDrive and SharePoint (ODSP) has been completed as of August 30th, 2021. All recordings are now stored in ODSP. This change overrides the RecordingStorageMode parameter, and modifying the setting in PowerShell no longer has any impact. - - String - - String - - - None - - - RoomAttributeUserOverride - - Possible values: - - Off - - Distinguish - - Attribute - - String - - String - - - None - - - RoomPeopleNameUserOverride - - Enabling people recognition requires the tenant CsTeamsMeetingPolicy roomPeopleNameUserOverride to be "On" and roomAttributeUserOverride to be Attribute for allowing individual voice and face profiles to be used for recognition in meetings. - > [!NOTE] > In some locations, people recognition can't be used due to local laws or regulations. Possible values: > > - Off: No People Recognition option on Microsoft Teams Room (Default). > - On: Policy value allows People recognition option on Microsoft Teams Rooms under call control bar. - - String - - String - - - None - - - ScreenSharingMode - - Determines the mode in which a user can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens. - - String - - String - - - None - - - SmsNotifications - - Participants can sign up for text message meeting reminders. - - String - - String - - - None - - - SpeakerAttributionMode - - Determines if users are identified in transcriptions and if they can change the value of the Automatically identify me in meeting captions and transcripts setting. - Possible values: - - Enabled : Speakers are identified in transcription. - EnabledUserOverride : Speakers are identified in transcription. If enabled, users can override this setting and choose not to be identified in their Teams profile settings. - DisabledUserOverride : Speakers are not identified in transcription. If enabled, users can override this setting and choose to be identified in their Teams profile settings. - Disabled : Speakers are not identified in transcription. - - String - - String - - - None - - - StreamingAttendeeMode - - Controls if Teams uses overflow capability once a meeting reaches its capacity (1,000 users with full functionality). - Possible values are: - - Disabled - - Enabled - - Set this to Enabled to allow up to 10,000 extra view-only attendees to join. - - String - - String - - - Disabled - - - TeamsCameraFarEndPTZMode - - Possible values are: - - Disabled - - AutoAcceptInTenant - - AutoAcceptAll - - String - - String - - - Disabled - - - 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` - 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. - - Guid - - Guid - - - None - - - UsersCanAdmitFromLobby - - This policy controls who can admit from the lobby. - - String - - String - - - None - - - VideoFiltersMode - - Determines the background effects that a user can configure in the Teams client. Possible values are: - - NoFilters: No filters are available. - - BlurOnly: Background blur is the only option available (requires a processor with AVX2 support, see Hardware requirements for Microsoft Teams (https://learn.microsoft.com/microsoftteams/hardware-requirements-for-the-teams-app) for more information). - BlurAndDefaultBackgrounds: Background blur and a list of pre-selected images are available. - - AllFilters: All filters are available, including custom images. - - String - - String - - - None - - - VoiceIsolation - - Determines whether you provide support for your users to enable voice isolation in Teams meeting calls. - Possible values are: - Enabled (default) - - Disabled - - String - - String - - - None - - - 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: - - Disabled - - Enabled - - String - - String - - - Disabled - - - WatermarkForAnonymousUsers - - Determines the meeting experience and watermark content of an anonymous user. - - String - - String - - - None - - - WatermarkForCameraVideoOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForCameraVideoPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WatermarkForScreenSharingOpacity - - Allows the transparency of watermark to be customizable. - - Int64 - - Int64 - - - None - - - WatermarkForScreenSharingPattern - - Allows the pattern design of watermark to be customizable. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - WhoCanRegister - - Controls the attendees who can attend a webinar meeting. The default is Everyone, meaning that everyone can register. If you want to restrict registration to internal accounts set the value to 'EveryoneInCompany'. - Possible values: - - Everyone - - EveryoneInCompany - - String - - String - - - Everyone - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Set-CsTeamsMeetingPolicy -Identity SalesMeetingPolicy -AllowTranscription $True - - The command shown in Example 1 uses the Set-CsTeamsMeetingPolicy cmdlet to update an existing meeting policy with the Identity SalesMeetingPolicy. This policy will use all the existing values except one: AllowTranscription; in this example, meetings for users with this policy can include real time or post meeting captions and transcriptions. - - - - -------------------------- EXAMPLE 2 -------------------------- - Set-CsTeamsMeetingPolicy -Identity HrMeetingPolicy -AutoAdmittedUsers "Everyone" -AllowMeetNow $False - - In Example 2, the Set-CsTeamsMeetingPolicy cmdlet is used to update a meeting policy with the Identity HrMeetingPolicy. In this example two different property values are configured: AutoAdmittedUsers is set to Everyone and AllowMeetNow is set to False. All other policy properties will use the existing values. - - - - -------------------------- EXAMPLE 3 -------------------------- - Set-CsTeamsMeetingPolicy -Identity NonEVNetworkRoamingPolicy -AllowNetworkConfigurationSettingsLookup $True - - In Example 3, the Set-CsTeamsMeetingPolicy cmdlet is used to update an existing meeting policy with the Identity NonEVNetworkRoamingPolicy. This policy will use all the existing values except one: AllowNetworkConfigurationSettingsLookup; in this example, we will fetch network roaming policy for the non-EV user with NonEVNetworkRoamingPolicy based on his current network location. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingpolicy - - - - - - Set-CsTeamsMeetingTemplatePermissionPolicy - Set - CsTeamsMeetingTemplatePermissionPolicy - - This cmdlet updates an existing TeamsMeetingTemplatePermissionPolicy. - - - - Update any of the properties of an existing instance of the TeamsMeetingTemplatePermissionPolicy. - - - - Set-CsTeamsMeetingTemplatePermissionPolicy - - Description - - > Applicable: Microsoft Teams - Pass in a new description if that field needs to be updated. - - String - - String - - - None - - - HiddenMeetingTemplates - - > 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[] - - HiddenMeetingTemplate[] - - - None - - - Identity - - > Applicable: Microsoft Teams - Name of the policy instance to be updated. - - String - - String - - - None - - - - - - Description - - > Applicable: Microsoft Teams - Pass in a new description if that field needs to be updated. - - String - - String - - - None - - - HiddenMeetingTemplates - - > 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[] - - HiddenMeetingTemplate[] - - - None - - - Identity - - > Applicable: Microsoft Teams - Name of the policy instance to be updated. - - String - - String - - - None - - - - - - - - - - - - -- Example 1 - Updating the description of an existing policy -- - PS> Set-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar -Description "updated description" - - Updates the description field of a policy. - - - - Example 2 - Updating the hidden meeting template list of an existing policy - PS> Set-CsTeamsMeetingTemplatePermissionPolicy -Identity Foobar -HiddenMeetingTemplates @($hiddentemplate_1, $hiddentemplate_2) - - Updates the hidden meeting templates array. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMeetingTemplatePermissionPolicy - - - Get-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingtemplatepermissionpolicy - - - New-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingtemplatepermissionpolicy - - - Remove-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingtemplatepermissionpolicy - - - Grant-CsTeamsMeetingTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingtemplatepermissionpolicy - - - - - - Set-CsTeamsMessagingConfiguration - Set - CsTeamsMessagingConfiguration - - The TeamsMessagingConfiguration determines the messaging settings for users in your tenant. - - - - TeamsMessagingConfiguration determines the messaging settings for the users in your tenant. This cmdlet lets you update the user messaging options you'd like to enable in your organization. - - - - Set-CsTeamsMessagingConfiguration - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - This setting enables/disables the use of custom emojis and reactions across the whole tenant. Upon enablement, admins and/or users can define a user group that is allowed. Possible Values: True, False - - Boolean - - Boolean - - - None - - - EnableInOrganizationChatControl - - This setting determines if chat regulation for internal communication in tenant is allowed. Possible Values: True, False - - Boolean - - Boolean - - - None - - - EnableVideoMessageCaptions - - This setting determines if closed captions will be displayed, for Teams Video Clips, during playback. Possible values: True, False - - Boolean - - Boolean - - - None - - - FileTypeCheck - - > [!NOTE] > This parameter is in Private Preview. - This setting enables weaponizable file detection in Teams messages in the tenant. - Possible Values: - Enabled - - Disabled - - String - - String - - - Enabled - - - 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 - - - MessagingNotes - - This setting enables/disables MessagingNotes integration across the whole tenant. Possible Values: Disabled, Enabled - - String - - String - - - 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 parameter is in Private Preview. - This setting enables malicious URL detection in Teams messages in the tenant. - Possible Values: - Enabled - - Disabled - - String - - String - - - Enabled - - - 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 - - - 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 - - This setting enables/disables the use of custom emojis and reactions across the whole tenant. Upon enablement, admins and/or users can define a user group that is allowed. Possible Values: True, False - - Boolean - - Boolean - - - None - - - EnableInOrganizationChatControl - - This setting determines if chat regulation for internal communication in tenant is allowed. Possible Values: True, False - - Boolean - - Boolean - - - None - - - EnableVideoMessageCaptions - - This setting determines if closed captions will be displayed, for Teams Video Clips, during playback. Possible values: True, False - - Boolean - - Boolean - - - None - - - FileTypeCheck - - > [!NOTE] > This parameter is in Private Preview. - This setting enables weaponizable file detection in Teams messages in the tenant. - Possible Values: - Enabled - - Disabled - - String - - String - - - Enabled - - - 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 - - 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 - - This setting enables/disables MessagingNotes integration across the whole tenant. Possible Values: Disabled, Enabled - - String - - String - - - 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 parameter is in Private Preview. - This setting enables malicious URL detection in Teams messages in the tenant. - Possible Values: - Enabled - - Disabled - - String - - String - - - Enabled - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMessagingConfiguration -CustomEmojis $False - - The command shown in example 1 disables custom emojis within Teams. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Set-CsTeamsMessagingConfiguration - - - Get-CsTeamsMessagingConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmessagingconfiguration - - - - - - Set-CsTeamsMessagingPolicy - Set - CsTeamsMessagingPolicy - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. - - - - The CsTeamsMessagingPolicy cmdlets enable administrators to control if a user is enabled to exchange messages. These also help determine the type of messages users can create and modify. This cmdlet updates a Teams messaging policy. Custom policies can then be assigned to users using the Grant-CsTeamsMessagingPolicy cmdlet. - - - - Set-CsTeamsMessagingPolicy - - 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 - - - AllowSmartCompose - - Turn on this setting to let a user get text predictions for chat messages. - - Boolean - - Boolean - - - None - - - AllowChatWithGroup - - This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowCommunicationComplianceEndUserReporting - - This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False - - Boolean - - Boolean - - - None - - - AllowCustomGroupChatAvatars - - These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowExtendedWorkInfoInSearch - - This setting enables/disables showing company name and department name in search results for MTO users. - - Boolean - - Boolean - - - None - - - AllowFluidCollaborate - - This field enables or disables Fluid Collaborate feature for users. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowFullChatPermissionUserToDeleteAnyMessage - - This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGiphy - - Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. Note : Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for Giphys to be allowed. - - Boolean - - Boolean - - - None - - - AllowGiphyDisplay - - Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGroupChatJoinLinks - - This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessage - - Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPasteInternetImage - - Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowPriorityMessages - - Determines whether a user is allowed to send priority messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowRemoveUser - - Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSecurityEndUserReporting - - This setting determines if users can report any security concern posted in message to their admin. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowSmartReply - - Turn this setting on to enable suggested replies for chat messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowStickers - - Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUrlPreviews - - Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. - Note that Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteChat - - Turn this setting on to allow users to permanently delete their 1:1, 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 - - Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. If this value is set to FALSE, the team owner will not be able to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserTranslation - - Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowVideoMessages - - This setting determines if users can create and send video messages. Possible values: True, False - - Boolean - - Boolean - - - None - - - AudioMessageEnabledType - - Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels, ChatsOnly, Disabled. - - AudioMessageEnabledTypeEnum - - AudioMessageEnabledTypeEnum - - - None - - - ChannelsInChatListEnabledType - - On mobile devices, enable to display favorite channels above recent chats. - Possible values are: DisabledUserOverride, EnabledUserOverride. - - ChannelsInChatListEnabledTypeEnum - - ChannelsInChatListEnabledTypeEnum - - - None - - - ChatPermissionRole - - Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. - - String - - String - - - Restricted - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CreateCustomEmojis - - This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. - - Boolean - - Boolean - - - None - - - DeleteCustomEmojis - - These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. - - Boolean - - Boolean - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - String - - String - - - None - - - DesignerForBackgroundsAndImages - - This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. - Possible values are: Enabled, Disabled. - - DesignerForBackgroundsAndImagesTypeEnum - - DesignerForBackgroundsAndImagesTypeEnum - - - Enabled - - - 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 - - - GiphyRatingType - - Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. - - String - - String - - - None - - - InOrganizationChatControl - - This setting determines if chat regulation for internal communication in the tenant is allowed. - - String - - String - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - ReadReceiptsEnabledType - - Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. - - String - - String - - - 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` - 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. - - Guid - - Guid - - - 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 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowChatWithGroup - - This setting determines if users can chat with groups (Distribution, M365 and Security groups). Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowCommunicationComplianceEndUserReporting - - This setting determines if users can report offensive messages to their admin for Communication Compliance. Possible Values: True, False - - Boolean - - Boolean - - - None - - - AllowCustomGroupChatAvatars - - These settings enables, disables updating or fetching custom group chat avatars for the users included in the messaging policy. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowExtendedWorkInfoInSearch - - This setting enables/disables showing company name and department name in search results for MTO users. - - Boolean - - Boolean - - - None - - - AllowFluidCollaborate - - This field enables or disables Fluid Collaborate feature for users. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowFullChatPermissionUserToDeleteAnyMessage - - This setting determines if users with the 'Full permissions' role can delete any group or meeting chat message within their tenant. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGiphy - - Determines whether a user is allowed to access and post Giphys. Set this to TRUE to allow. Set this FALSE to prohibit. Note : Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for Giphys to be allowed. - - Boolean - - Boolean - - - None - - - AllowGiphyDisplay - - Determines if Giphy images should be displayed that had been already sent or received in chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowGroupChatJoinLinks - - This setting determines if users in a group chat can create and share join links for other users within the organization to join that chat. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines whether a user is allowed to use Immersive Reader for reading conversation messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines whether a user is allowed to access and post memes. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessage - - Determines whether owners are allowed to delete all the messages in their team. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowPasteInternetImage - - Determines if a user is allowed to paste internet-based images in compose. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowPriorityMessages - - Determines whether a user is allowed to send priority messages. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowRemoveUser - - Determines whether a user is allowed to remove a user from a conversation. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowSecurityEndUserReporting - - This setting determines if users can report any security concern posted in message to their admin. Possible values: True, False - - Boolean - - Boolean - - - None - - - AllowSmartCompose - - Turn on this setting to let a user get text predictions for chat messages. - - Boolean - - Boolean - - - None - - - AllowSmartReply - - Turn this setting on to enable suggested replies for chat messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowStickers - - Determines whether a user is allowed to access and post stickers. Set this to TRUE to allow. Set this FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUrlPreviews - - Use this setting to turn automatic URL previewing on or off in messages. Set this to TRUE to turn on. Set this to FALSE to turn off. - Note that Optional Connected Experiences (https://learn.microsoft.com/deployoffice/privacy/manage-privacy-controls#policy-setting-for-optional-connected-experiences)must be also enabled for URL previews to be allowed. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines whether a user is allowed to chat. Set this to TRUE to allow a user to chat across private chat, group chat and in meetings. Set this to FALSE to prohibit all chat. - - Boolean - - Boolean - - - None - - - AllowUserDeleteChat - - Turn this setting on to allow users to permanently delete their 1:1, 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 - - Determines whether a user is allowed to delete their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. If this value is set to FALSE, the team owner will not be able to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines whether a user is allowed to edit their own messages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowUserTranslation - - Determines whether a user is allowed to translate messages to their client languages. Set this to TRUE to allow. Set this to FALSE to prohibit. - - Boolean - - Boolean - - - None - - - AllowVideoMessages - - This setting determines if users can create and send video messages. Possible values: True, False - - Boolean - - Boolean - - - None - - - AudioMessageEnabledType - - Determines whether a user is allowed to send audio messages. Possible values are: ChatsAndChannels, ChatsOnly, Disabled. - - AudioMessageEnabledTypeEnum - - AudioMessageEnabledTypeEnum - - - None - - - ChannelsInChatListEnabledType - - On mobile devices, enable to display favorite channels above recent chats. - Possible values are: DisabledUserOverride, EnabledUserOverride. - - ChannelsInChatListEnabledTypeEnum - - ChannelsInChatListEnabledTypeEnum - - - None - - - ChatPermissionRole - - Determines the Supervised Chat role of the user. Set this to Full to allow the user to supervise chats. Supervisors have the ability to initiate chats with and invite any user within the environment. Set this to Limited to allow the user to initiate conversations with Full and Limited permissioned users, but not Restricted. Set this to Restricted to block chat creation with anyone other than Full permissioned users. - - String - - String - - - Restricted - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CreateCustomEmojis - - This setting enables the creation of custom emojis and reactions within an organization for the specified policy users. - - Boolean - - Boolean - - - None - - - DeleteCustomEmojis - - These settings enable and disable the editing and deletion of custom emojis and reactions for the users included in the messaging policy. - - Boolean - - Boolean - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - String - - String - - - None - - - DesignerForBackgroundsAndImages - - This setting determines whether a user is allowed to create custom AI-powered backgrounds and images with MS Designer. - Possible values are: Enabled, Disabled. - - DesignerForBackgroundsAndImagesTypeEnum - - DesignerForBackgroundsAndImagesTypeEnum - - - Enabled - - - 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 - - - GiphyRatingType - - Determines the Giphy content restrictions applicable to a user. Set this to STRICT, MODERATE or NORESTRICTION. - - String - - String - - - 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 - - This setting determines if chat regulation for internal communication in the tenant is allowed. - - String - - String - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - ReadReceiptsEnabledType - - Use this setting to specify whether read receipts are user controlled, enabled for everyone, or disabled. Set this to UserPreference, Everyone or None. - - String - - String - - - 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` - 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. - - Guid - - Guid - - - 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 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-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 be left as previously assigned. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsMessagingPolicy -Identity StudentMessagingPolicy | Set-CsTeamsMessagingPolicy -AllowGiphy $false -AllowMemes $false - - In this example two different property values are configured for all teams messaging policies in the organization: AllowGiphy is set to false and AllowMemes is set to False. All other policy properties will be left as previously assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmessagingpolicy - - - - - - Set-CsTeamsMultiTenantOrganizationConfiguration - Set - CsTeamsMultiTenantOrganizationConfiguration - - This cmdlet configures the Multi-tenant Organization settings for the tenant. - - - - The Set-CsTeamsMultiTenantOrganizationConfiguration cmdlet configures tenant settings for Multi-tenant Organizations. This includes the CopilotFromHomeTenant parameter, which determines if users in a Multi-Tenant Organization can use their Copilot license from their home tenant during cross-tenant meetings - - - - Set-CsTeamsMultiTenantOrganizationConfiguration - - CopilotFromHomeTenant - - Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams Multi-tenant Organization Setting. - - String - - String - - - None - - - - Set-CsTeamsMultiTenantOrganizationConfiguration - - CopilotFromHomeTenant - - Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams Multi-tenant Organization Setting. - - String - - String - - - None - - - - - - CopilotFromHomeTenant - - Setting value of the Teams Multi-tenant Organization Setting. CopilotFromHomeTenant controls user access to Copilot license in their home tenant during cross-tenant meetings. - - Boolean - - Boolean - - - Enabled - - - Identity - - Identity of the Teams Multi-tenant Organization Setting. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMultiTenantOrganizationConfiguration -Identity Global -CopilotFromHomeTenant Disabled - - Set Teams Multi-tenant Organization Setting "CopilotFromHomeTenant" value to "Disabled" for global as default. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsMultiTenantOrganizationConfiguration -Identity Global -CopilotFromHomeTenant Enabled - - Set Teams Multi-tenant Organization Setting "CopilotFromHomeTenant" value to "Enabled" for global as default. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmultitenantorganizationconfiguration - - - Get-CsTeamsMultiTenantOrganizationConfiguration - - - - - - - Set-CsTeamsNotificationAndFeedsPolicy - Set - CsTeamsNotificationAndFeedsPolicy - - Modifies an existing Teams Notifications 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. - - - - Set-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 - - - Description - - Free format text - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - SuggestedFeedsEnabledType - - The SuggestedFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about suggested activities and content within their Teams environment. When enabled, this parameter ensures that users are notified about recommended or relevant activities, helping them stay informed and engaged with important updates and interactions. - - String - - String - - - None - - - TrendingFeedsEnabledType - - The TrendingFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about trending activities within their Teams environment. When enabled, this parameter ensures that users are notified about popular or important activities, helping them stay informed about significant updates and interactions. - - 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 - - - Description - - Free format text - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - SuggestedFeedsEnabledType - - The SuggestedFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about suggested activities and content within their Teams environment. When enabled, this parameter ensures that users are notified about recommended or relevant activities, helping them stay informed and engaged with important updates and interactions. - - String - - String - - - None - - - TrendingFeedsEnabledType - - The TrendingFeedsEnabledType parameter in the Microsoft Teams notifications and feeds policy controls whether users receive notifications about trending activities within their Teams environment. When enabled, this parameter ensures that users are notified about popular or important activities, helping them stay informed about significant updates and interactions. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsNotificationAndFeedsPolicy Global -SuggestedFeedsEnabledType EnabledUserOverride - - Change settings on an existing Notifications and Feeds Policy. - - - - - - Online Version: - 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 - - - - - - - Set-CsTeamsRecordingRollOutPolicy - Set - 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 Set-CsTeamsRecordingRollOutPolicy cmdlet allows administrators to update existing CsTeamsRecordingRollOutPolicy that can be assigned to particular users to control Teams recording storage place. - This command is available from Teams powershell module 6.1.1-preview and above. - - - - Set-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 - - Specify the name of the policy being created. - - String - - String - - - None - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsRecordingRollOutPolicy -Identity OrganizerPolicy -MeetingRecordingOwnership RecordingInitiator - - The command shown in Example 1 uses the Set-CsTeamsMeetingPolicy cmdlet to update an existing CsTeamsRecordingRollOutPolicy with the Identity OrganizerPolicy. This policy will set MeetingRecordingOwnership to RecordingInitiator; in this example, recordings for this policy group's users as organizer would get saved to recording initiators' own OneDrive. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsrecordingrolloutpolicy - - - - - - Set-CsTeamsSharedCallingRoutingPolicy - Set - CsTeamsSharedCallingRoutingPolicy - - Use the Set-CsTeamsSharedCallingRoutingPolicy cmdlet to change a shared calling routing policy instance. - - - - 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 will be used as caller ID. If no free emergency numbers are available, the first number in the list will be reused. - The emergency call will contain the location of the shared calling user. The location will either be 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. - - - - Set-CsTeamsSharedCallingRoutingPolicy - - Identity - - Unique identifier of the Teams shared calling routing policy to be created. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - 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 will be used as 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 - - - False - - - 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 - - - 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 will be used as 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, kindly 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, you should 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 -------------------------- - Set-CsTeamsSharedCallingRoutingPolicy -Identity Seattle -EmergencyNumbers @{remove='+14255556677'} - - The command shown in Example 1 removes the emergency callback number +14255556677 from the policy called Seattle. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssharedcallingroutingpolicy - - - New-CsTeamsSharedCallingRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-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 - - - - - - Set-CsTeamsShiftsPolicy - Set - CsTeamsShiftsPolicy - - This cmdlet allows you to set or update properties of a TeamsShiftPolicy instance, including Teams off shift warning message-specific settings. - - - - This cmdlet allows you to set or update properties of a TeamsShiftPolicy instance. Use this to set the policy name and Teams off shift warning message-specific settings (ShiftNoticeMessageType, ShiftNoticeMessageCustom, ShiftNoticeFrequency, AccessGracePeriodMinutes). - - - - Set-CsTeamsShiftsPolicy - - Identity - - > Applicable: Microsoft Teams - Policy instance name. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - - 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 - - - False - - - ShiftNoticeFrequency - - > Applicable: Microsoft Teams - Frequency of warning dialog displayed when user opens Teams. Set one of Always, ShowOnceOnChange, Never. - - String - - String - - - Always - - - 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 - - - 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. Set one of Always, ShowOnceOnChange, Never. - - String - - String - - - Always - - - 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 - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsShiftsPolicy -Identity OffShiftAccess_WarningMessage1_AlwaysShowMessage -ShiftNoticeMessageType Message1 -ShiftNoticeFrequency always -AccessGracePeriodMinutes 5 - - In this example, the policy instance is called "OffShiftAccess_WarningMessage1_AlwaysShowMessage", a warning message (Message 1) will always be displayed to the user on opening Teams during off shift hours. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsshiftspolicy - - - Get-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftspolicy - - - New-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftspolicy - - - Remove-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftspolicy - - - Grant-CsTeamsShiftsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsshiftspolicy - - - - - - Set-CsTeamsSipDevicesConfiguration - Set - CsTeamsSipDevicesConfiguration - - This cmdlet is used to manage the organization-wide Teams SIP devices configuration. - - - - This cmdlet is used to manage the organization-wide Teams SIP devices configuration which contains settings that are applicable to SIP devices connected to Teams using Teams Sip Gateway. - To execute the cmdlet, you need to hold a role within your organization such as Teams Administrator or Teams Communication Administrator. - - - - Set-CsTeamsSipDevicesConfiguration - - BulkSignIn - - Indicates whether Bulk SingIn into Teams SIP devices is enabled or disabled for the common area phone (CAP) accounts across the organization. Possible values are Enabled and ' Disabled . - - 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 - - - - - - BulkSignIn - - Indicates whether Bulk SingIn into Teams SIP devices is enabled or disabled for the common area phone (CAP) accounts across the organization. Possible values are Enabled and ' Disabled . - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsSipDevicesConfiguration -BulkSignIn "Enabled" - - In this example, Bulk SignIn is set to Enabled across the organization. - - - - -------------------------- Example 2 -------------------------- - Set-CsTeamsSipDevicesConfiguration -BulkSignIn "Disabled" - - In this example, Bulk SignIn is set to Disabled across the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssipdevicesconfiguration - - - Get-CsTeamsSipDevicesConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssipdevicesconfiguration - - - - - - Set-CsTeamsTemplatePermissionPolicy - Set - CsTeamsTemplatePermissionPolicy - - This cmdlet updates an existing TeamsTemplatePermissionPolicy. - - - - Updates any of the properties of an existing instance of the TeamsTemplatePermissionPolicy. - - - - Set-CsTeamsTemplatePermissionPolicy - - Identity - - Name of the policy instance to be updated. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Adds a new description if that field needs to be updated. - - 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 - - - False - - - HiddenTemplates - - 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] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] - - - 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 - - - Description - - Adds a new description if that field needs to be updated. - - 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 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] - - System.Management.Automation.PSListModifier`1[Microsoft.Teams.Policy.Administration.Cmdlets.Core.HiddenTemplate] - - - None - - - Identity - - Name of the policy instance to be updated. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- 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 >Set-CsTeamsTemplatePermissionPolicy -Identity Global -HiddenTemplates $HiddenList - - Updates the hidden templates array. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstemplatepermissionpolicy - - - Get-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstemplatepermissionpolicy - - - New-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstemplatepermissionpolicy - - - Remove-CsTeamsTemplatePermissionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstemplatepermissionpolicy - - - - - - Set-CsTeamsUpdateManagementPolicy - Set - CsTeamsUpdateManagementPolicy - - Use this cmdlet to modify a Teams Update Management policy. - - - - The Teams Update Management Policy allows admins to specify if a given user is enabled to preview features in Teams. - - - - Set-CsTeamsUpdateManagementPolicy - - Identity - - The unique identifier of the policy. - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - String - - - None - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsUpdateManagementPolicy -Identity "Campaign Policy" -DisabledInProductMessages @("91382d07-8b89-444c-bbcb-cfe43133af33") - - In this example, the policy "Campaign Policy" is modified, disabling the in-product messages with the category "What's New". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupdatemanagementpolicy - - - - - - Set-CsTeamsUpgradeConfiguration - Set - CsTeamsUpgradeConfiguration - - Manage certain aspects of client behavior for users being upgraded from Skype for Business to Teams. - - - - TeamsUpgradeConfiguration is 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. - The DownloadTeams property allows admins to control whether the Skype for Business client should automatically download Teams in the background. This 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. - 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. - - - - Set-CsTeamsUpgradeConfiguration - - Identity - - > Applicable: Microsoft Teams - For internal use only. - - XdsIdentity - - XdsIdentity - - - 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 - - - False - - - 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 - - Boolean - - - True - - - Force - - > Applicable: Microsoft Teams - Suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - 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 - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - 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 - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - Boolean - - - True - - - Force - - > Applicable: Microsoft Teams - Suppresses the display of any non-fatal error message that might arise when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - > Applicable: Microsoft Teams - For internal use only. - - XdsIdentity - - XdsIdentity - - - 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 - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - These settings are only honored by newer versions of Skype for Business clients. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsUpgradeConfiguration -DownloadTeams $true -SfBMeetingJoinUx SkypeMeetingsApp - - The above cmdlet specifies that users subject to upgrade should download Teams in the background, and that they should use the Skype For Business Meetings app to join Skype for Business meetings. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration - - - Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration - - - Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy - - - Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy - - - 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 - - - - - - Set-CsTeamsVdiPolicy - Set - CsTeamsVdiPolicy - - 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. - - - - Set-CsTeamsVdiPolicy - - Identity - - Specify the name of the policy being created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DisableAudioVideoInCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. - - Boolean - - Boolean - - - None - - - DisableCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. - - Boolean - - Boolean - - - None - - - 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 - - - VDI2Optimization - - Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. - * Disabled - disallow a user to be VDI 2.0 optimized. - - 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 - - - DisableAudioVideoInCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can hold person-to-person audio and video calls. Set this to TRUE to disallow a non-optimized user to hold person-to-person audio and video calls. Set this to FALSE to allow a non-optimized user to hold person-to-person audio and video calls. A user can still join a meeting and share screen from chat and join a meeting and share a screen and move their audio to a phone. - - Boolean - - Boolean - - - None - - - DisableCallsAndMeetings - - Determines whether a user on a non-optimized Vdi environment can make all types of calls. Set this to TRUE to disallow a non-optimized user to make calls, join meetings, and screen share from chat. Set this to FALSE to allow a non-optimized user to make calls, join meetings, and screen share from chat. - - Boolean - - Boolean - - - None - - - 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 - - Specify the name of the policy being created. - - String - - String - - - None - - - VDI2Optimization - - Determines whether a user can be VDI 2.0 optimized. * Enabled - allow a user to be VDI 2.0 optimized. - * Disabled - disallow a user to be VDI 2.0 optimized. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsVdiPolicy -Identity RestrictedUserPolicy -VDI2Optimization "Disabled" - - The command shown in Example 1 uses the Set-CsTeamsVdiPolicy cmdlet to update an existing vdi policy with the Identity RestrictedUserPolicy. This policy will use all the existing values except one: VDI2Optimization; in this example, users with this policy can not be in VDI 2.0 optimized. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsVdiPolicy -Identity OnlyOptimizedPolicy -DisableAudioVideoInCallsAndMeetings $True -DisableCallsAndMeetings $True - - In Example 2, the Set-CsTeamsVdiPolicy cmdlet is used to update a Vdi policy with the Identity OnlyOptimizedPolicy. In this example two different property values are configured: DisableAudioVideoInCallsAndMeetings is set to True and DisableCallsAndMeetings is set to True. All other policy properties will use the existing values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cteamsvdipolicy - - - - - - Set-CsTeamsVirtualAppointmentsPolicy - Set - CsTeamsVirtualAppointmentsPolicy - - This cmdlet is used to update an instance of TeamsVirtualAppointmentsPolicy. - - - - Updates any of the properties of an existing instance of TeamsVirtualAppointmentsPolicy. - - - - Set-CsTeamsVirtualAppointmentsPolicy - - Identity - - Name of the new policy instance to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - Boolean - - - True - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - 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 - - - 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 - - Boolean - - - True - - - 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> Set-CsTeamsVirtualAppointmentsPolicy -Identity ExistingPolicyInstance -EnableSmsNotifications $false - - Updates the `EnableSmsNotifications` field of a given policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvirtualappointmentspolicy - - - Get-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvirtualappointmentspolicy - - - New-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvirtualappointmentspolicy - - - Remove-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvirtualappointmentspolicy - - - Grant-CsTeamsVirtualAppointmentsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvirtualappointmentspolicy - - - - - - Set-CsTeamsVoiceApplicationsPolicy - Set - CsTeamsVoiceApplicationsPolicy - - Modifies an existing Teams voice applications policy. - - - - `TeamsVoiceApplicationsPolicy` is used for Supervisor Delegated Administration which allows admins in the organization to permit certain users to make changes to auto attendant and call queue configurations. - - - - Set-CsTeamsVoiceApplicationsPolicy - - Identity - - 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. - - String - - String - - - None - - - AllowAutoAttendantAfterHoursGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantAfterHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantBusinessHoursChange - - 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 - - Boolean - - - False - - - 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 - - - AllowAutoAttendantBusinessHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayRoutingChange - - 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 - - Boolean - - - 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 - - - AllowAutoAttendantLanguageChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantTimeZoneChange - - 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 - - Boolean - - - False - - - AllowCallQueueAgentOptChange - - 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 - - Boolean - - - False - - - AllowCallQueueConferenceModeChange - - 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 - - Boolean - - - False - - - AllowCallQueueLanguageChange - - 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 - - Boolean - - - False - - - AllowCallQueueMembershipChange - - 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 - - Boolean - - - False - - - AllowCallQueueMusicOnHoldChange - - 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 - - Boolean - - - False - - - AllowCallQueueNoAgentSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueNoAgentsRoutingChange - - 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 - - Boolean - - - False - - - AllowCallQueueOptOutChange - - 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 - - Boolean - - - False - - - AllowCallQueueOverflowRoutingChange - - 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 - - Boolean - - - 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 - - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. - - Boolean - - Boolean - - - False - - - AllowCallQueueTimeoutSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueWelcomeGreetingChange - - 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 - - Boolean - - - False - - - CallQueueAgentMonitorMode - - > 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. - When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. - When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. - - Object - - Object - - - Disabled - - - CallQueueAgentMonitorNotificationMode - - > 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. - - Object - - Object - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - HistoricalAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. - - Object - - Object - - - None - - - RealTimeAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeAutoAttendantMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeCallQueueMetricsPermission - - > 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. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowAutoAttendantAfterHoursGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantAfterHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantBusinessHoursChange - - 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 - - Boolean - - - False - - - 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 - - - AllowAutoAttendantBusinessHoursRoutingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayGreetingChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantHolidayRoutingChange - - 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 - - Boolean - - - 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 - - - AllowAutoAttendantLanguageChange - - 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 - - Boolean - - - False - - - AllowAutoAttendantTimeZoneChange - - 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 - - Boolean - - - False - - - AllowCallQueueAgentOptChange - - 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 - - Boolean - - - False - - - AllowCallQueueConferenceModeChange - - 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 - - Boolean - - - False - - - AllowCallQueueLanguageChange - - 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 - - Boolean - - - False - - - AllowCallQueueMembershipChange - - 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 - - Boolean - - - False - - - AllowCallQueueMusicOnHoldChange - - 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 - - Boolean - - - False - - - AllowCallQueueNoAgentSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueNoAgentsRoutingChange - - 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 - - Boolean - - - False - - - AllowCallQueueOptOutChange - - 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 - - Boolean - - - False - - - AllowCallQueueOverflowRoutingChange - - 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 - - Boolean - - - 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 - - When set to `True`, users affected by the policy will be allowed to change the call queue's timeout handling properties. When set to `False` (the default value), users affected by the policy won't be allowed to change the call queue's timeout handling properties. - - Boolean - - Boolean - - - False - - - AllowCallQueueTimeoutSharedVoicemailGreetingChange - - 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 - - Boolean - - - False - - - AllowCallQueueWelcomeGreetingChange - - 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 - - Boolean - - - False - - - CallQueueAgentMonitorMode - - > 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. - When set to `Barge`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, or join the call session. - When set to `Takeover`, users affected by the policy will be allowed to monitor call sessions, whisper to an agent in the call, join the call session, or take over the call from an agent. - - Object - - Object - - - Disabled - - - CallQueueAgentMonitorNotificationMode - - > 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. - - Object - - Object - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - HistoricalAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all auto attendants in the organization. - - Object - - Object - - - None - - - 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. - When set to `All`, users affected by the policy will receive historical metrics for all call queues in the organization. - - Object - - Object - - - None - - - Identity - - 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. - - String - - String - - - None - - - RealTimeAgentMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeAutoAttendantMetricsPermission - - > 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. - - Object - - Object - - - None - - - RealTimeCallQueueMetricsPermission - - > 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. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Set-CsTeamsVoiceApplicationsPolicy -Identity "SDA-CQ-OverflowGreeting" -AllowCallQueueOverflowSharedVoicemailGreetingChange $true - - The command shown in Example 1 sets allowing CQ overflow shared voicemail greeting changes to per-user Teams voice applications policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy - - - Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy - - - Grant-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy - - - Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy - - - New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy - - - - - - Set-CsTeamsWorkLocationDetectionPolicy - Set - CsTeamsWorkLocationDetectionPolicy - - This cmdlet is used to update an instance of TeamsWorkLocationDetectionPolicy. - - - - Updates any of the properties of an existing instance of TeamsWorkLocationDetectionPolicy. - - - - Set-CsTeamsWorkLocationDetectionPolicy - - Identity - - Name of the new policy instance to be updated. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - EnableWorkLocationDetection - - This setting 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). - - Boolean - - Boolean - - - None - - - Force - - Suppresses the display of any non-fatal error message that might arise when running the command. - - - 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 - - - EnableWorkLocationDetection - - This setting 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). - - Boolean - - Boolean - - - None - - - 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 updated. - - 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> Set-CsTeamsWorkLocationDetectionPolicy -Identity ExistingPolicyInstance -EnableWorkLocationDetection $true - - Updates the `EnableWorkLocationDetection` field of a given policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworklocationdetectionpolicy - - - Get-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworklocationdetectionpolicy - - - New-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworklocationdetectionpolicy - - - Remove-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworklocationdetectionpolicy - - - Grant-CsTeamsWorkLocationDetectionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworklocationdetectionpolicy - - - - \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.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 deleted file mode 100644 index 8e88c0d023be8..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.Teams.PowerShell.TeamsCmdlets.dll-Help.xml +++ /dev/null @@ -1,7075 +0,0 @@ - - - - - Add-TeamChannelUser - Add - 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. - 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 - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - GroupId - - GroupId of the parent team - - String - - String - - - None - - - Role - - Owner - - String - - String - - - None - - - TenantId - - TenantId of the external user - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - GroupId - - GroupId of the parent team - - String - - String - - - None - - - Role - - Owner - - String - - String - - - None - - - TenantId - - TenantId of the external user - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - 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/microsoftteams/add-teamchanneluser - - - - - - Add-TeamUser - Add - TeamUser - - The `Add-TeamUser` adds an owner or member to the team, and to the unified group which backs the team. - - - - This cmdlet adds an owner or member to the team, and to the unified group which backs the team. - > [!Note] > The command will return immediately, but the Teams application will not reflect the update immediately. The change can take between 24 and 48 hours to appear within the Teams client. - - - - Add-TeamUser - - GroupId - - GroupId of the team. - - String - - String - - - None - - - Role - - 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 - - - Member - - - User - - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). - - String - - String - - - None - - - - - - GroupId - - GroupId of the team. - - String - - String - - - None - - - Role - - 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 - - - Member - - - User - - UPN of a user of the organization (user principal name - e.g. johndoe@example.com). - - String - - String - - - None - - - - - - GroupId - - - - - - - - User - - - - - - - - Role - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Add-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com - - This example adds the user "dmx@example.com" to a group with the id "31f1ff6c-d48c-4f8a-b2e1-abca7fd399df". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/add-teamuser - - - - - - Get-AllM365TeamsApps - Get - AllM365TeamsApps - - This cmdlet returns all Microsoft Teams apps in the app catalog, including Microsoft, custom, and non-Microsoft apps. - - - - Get-AllM365TeamsApps retrieves a complete list of all Teams apps in an organization, their statuses, and their availability information. - - - - Get-AllM365TeamsApps - - - - - - - None - - - - - - - - - - System.Object - - - Id Application ID of the Teams app. IsBlocked The state of the app in the tenant. Values: - - Blocked - - Unblocked AvailableTo Provides available to properties for the app. Properties: - - AssignmentType: App availability type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Time and date when the app AvailableTo value was last updated. - - AssignedBy: UserID of the last user who updated the app available to value. InstalledFor Provides installation status for the app. Properties: - - AppInstallType: App availability type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Time and date when the app AvailableTo value was last updated. - - InstalledBy: UserID of the last user who installed the app available to value. - - InstalledSource: Source of Installation - - Version: Version of the app installed - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-AllM365TeamsApps - - Returns a complete list of all Teams apps in an organization, their statuses, and their availability information. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-AllM365TeamsApps | Select-Object -Property Id, IsBlocked, AvailableTo -ExpandProperty AvailableTo - - Returns a complete list of all Teams apps in an organization, their statuses, and their availability information in expanded format. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-AllM365TeamsApps | Select-Object -Property Id, IsBlocked, AvailableTo, InstalledFor -ExpandProperty InstalledFor - - Returns a complete list of all Teams apps in an organization, their statuses, their availability and their installation information in expanded format. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Get-AllM365TeamsApps - - - Get-M365TeamsApp - https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp - - - Update-M365TeamsApp - https://learn.microsoft.com/powershell/module/microsoftteams/get-m365teamsapp - - - - - - Get-AssociatedTeam - Get - AssociatedTeam - - This cmdlet supports retrieving all teams associated with a user, including teams which host shared channels. - - - - This cmdlet supports retrieving all associated teams of a user, including teams which host shared channels. - - - - Get-AssociatedTeam - - User - - User's UPN (user principal name, for example johndoe@example.com) or user ID (for example 0e4249a7-6cfd-8c93-a510-91cda44c8c73). - - String - - String - - - None - - - - - - User - - User's UPN (user principal name, for example johndoe@example.com) or user ID (for example 0e4249a7-6cfd-8c93-a510-91cda44c8c73). - - String - - String - - - None - - - - - - User - - - - - - - - - - Team - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AssociatedTeam - - Returns associated teams of the current user. - - - - -------------------------- Example 2 -------------------------- - Get-AssociatedTeam -user example@example.com - - Returns associated teams of a given user email. - - - - -------------------------- Example 3 -------------------------- - Get-AssociatedTeam -user 0e4249a7-6cfd-8c93-a510-91cda44c8c73 - - Returns associated teams of a given user ID. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-associatedteam - - - Get-Team - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - Get-SharedWithTeam - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - - - - Get-M365TeamsApp - Get - M365TeamsApp - - This cmdlet returns app availability and state for the Microsoft Teams app. - - - - Get-M365TeamsApps retrieves information about the Teams app. This includes app state, app availability, user who updated app availability, and the associated timestamp. - - - - Get-M365TeamsApp - - Id - - Application ID of the Teams app. - - String - - String - - - None - - - - - - Id - - Application ID of the Teams app. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - ID Application ID of the Teams app. IsBlocked The state of the app in the tenant. Values: - - Blocked - - Unblocked AvailableTo Provides available to properties for the app. Properties: - - AssignmentType: App availability type. Values: - Everyone - UsersandGroups - Noone - Users: List of all the users for whom the app is enabled. Values: - Id: GUID of UserIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. - Groups: List of all the groups for whom the app is enabled. Values: - Id: GUID of GroupIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. InstalledFor Provides installed for properties for the app. Properties: - - AppInstallType: App install type. Values: - Everyone - UsersandGroups - Noone - LastUpdatedTimestamp: Last Updated date - - InstalledBy: The user performing the installation - - InstalledSource: Source of installation - - Version: Version of the app installed - - InstallForUsers: List of all the users for whom the app is enabled. - Values: - Id: GUID of UserIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. - InstallForGroups: List of all the groups for whom the app is enabled. Values: - Id: GUID of GroupIDs. - AssignedBy: UserID of last user who updated the app AvailableTo value. - LastUpdatedTimeStamp: Time and date when the app AvailableTo value was last updated. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-M365TeamsApp -Id b782e2e8-9682-4898-b211-a304714f4f6b - - Provides information about b782e2e8-9682-4898-b211-a304714f4f6b app, which includes app state, app availability, user who updated app availability, and the associated timestamp. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365TeamsApp - - - Get-AllM365TeamsApps - https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps - - - Update-M365TeamsApp - https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps - - - - - - Get-M365UnifiedCustomPendingApps - Get - M365UnifiedCustomPendingApps - - This cmdlet returns all custom Microsoft Teams apps that are pending review from an IT Admin. - - - - Get-M365UnifiedCustomPendingApps retrieves a complete list of all custom Microsoft Teams apps that are pending review, and their review statuses. - - - - Get-M365UnifiedCustomPendingApps - - - - - - - None - - - - - - - - - - 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 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 1 -------------------------- - PS C:\> Get-M365UnifiedCustomPendingApps - - Returns a complete list of all custom Microsoft Teams apps that are pending review, and their review statuses. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedCustomPendingApps - - - - - - Get-M365UnifiedTenantSettings - Get - M365UnifiedTenantSettings - - This cmdlet returns the current tenant settings for a particular tenant - - - - Get-M365UnifiedTenantSettings retrieves the current tenant settings for a particular tenant. - - - - Get-M365UnifiedTenantSettings - - SettingNames - - Setting names requested. Possible values - DefaultApp,GlobalApp,PrivateApp,EnableCopilotExtensibility - - String - - String - - - None - - - - - - SettingNames - - Setting names requested. Possible values - DefaultApp,GlobalApp,PrivateApp,EnableCopilotExtensibility - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - SettingName Setting Name returned. SettingValue The status of this setting in the tenant. Values: - - All - - None - - Some (only applicable for EnableCopilotExtensibility) Users The list of users this setting is applicable to (only applicable for EnableCopilotExtensibility). Groups The list of groups this setting is applicable to (only applicable for EnableCopilotExtensibility). - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-M365UnifiedTenantSettings - - Returns all the current tenant settings for this tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-M365UnifiedTenantSettings -SettingNames DefaultApp - - Returns the current tenant setting for DefaultApp for this tenant. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-M365UnifiedTenantSettings -SettingNames DefaultApp,EnableCopilotExtensibility - - Returns the current tenant setting for DefaultApp and EnableCopilotExtensibility for this tenant. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Get-M365UnifiedTenantSettings - - - - - - Get-SharedWithTeam - Get - SharedWithTeam - - This cmdlet supports retrieving teams with which a specified channel is shared. - - - - This cmdlet supports retrieving teams with which a specified channel is shared. - - - - Get-SharedWithTeam - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - HostTeamId - - - - - - - - ChannelId - - - - - - - - SharedWithTeamId - - - - - - - - - - Team - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 - - Returns teams with which a specified channel is shared. - - - - -------------------------- Example 2 -------------------------- - Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 --SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b - - Returns detail of a team with which a specified channel is shared. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteam - - - Get-Team - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - Get-AssociatedTeam - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - - - - Get-SharedWithTeamUser - Get - SharedWithTeamUser - - This cmdlet supports retrieving users of a shared with team. - - - - This cmdlet supports retrieving users of a shared with team. - - - - Get-SharedWithTeamUser - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - Role - - Filters the results to only users with the given role of "Owner" or "Member". - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - Role - - Filters the results to only users with the given role of "Owner" or "Member". - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - HostTeamId - - - - - - - - ChannelId - - - - - - - - SharedWithTeamId - - - - - - - - - - User - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-SharedWithTeamUser -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 --SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b - - Returns users of a team with which a specified channel is shared. - - - - -------------------------- Example 2 -------------------------- - Get-AssociatedTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 --SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b -Role owner - - Returns owners of a team with which a specified channel is shared. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-sharedwithteamuser - - - Get-TeamUser - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser - - - - - - Get-Team - Get - Team - - Get Team information based on particular properties. - - - - 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. - > [!NOTE] > Get-Team may return multiple results matching the input and not just the exact match for attributes like DisplayName/MailNickName. This is known behavior. - - - - Get-Team - - Archived - - 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 - - String - - - None - - - GroupId - - Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - Get-Team - - Archived - - 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 - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. - - String - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - Get-Team - - 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 - - - - - - Archived - - 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 - - String - - - None - - - GroupId - - Specify the specific GroupId (as a string) of the team to be returned. This is a unique identifier and returns exact match. - - String - - String - - - None - - - MailNickName - - Specify the mailnickname of the team that is being returned. This acts as a filter instead of being an exact match. - - String - - String - - - 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 - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - Visibility - - 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 - - String - - - None - - - - - - UPN - - - - - - - - UserID - - - - - - - - - - Team - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> Get-Team -User dmx1@example.com - - Returns all teams that a user (dmx1@example.com) belongs to - - - - -------------------------- Example 2 -------------------------- - PS> Get-Team -Archived $true -Visibility Private - - Returns all teams that are private and have been archived. - - - - -------------------------- Example 3 -------------------------- - PS> Get-Team -MailNickName "BusinessDevelopment" - - Returns the team with the specified MailNickName. (This acts as a filter rather than an exact match.) - - - - -------------------------- Example 4 -------------------------- - PS> Get-Team -DisplayName "Sales and Marketing" - - Returns the team that includes the specified text in its DisplayName. (This acts as a filter rather than an exact match). - - - - -------------------------- Example 5 -------------------------- - PS> $team=[uri]::EscapeDataString('AB&C') -PS> Get-Team -DisplayName $team - - Returns the team that includes the specified escaped representation of its DisplayName, useful when the DisplayName has special characters. (This acts as a filter rather than an exact match.) - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - New-Team - https://learn.microsoft.com/powershell/module/microsoftteams/new-team - - - Set-Team - https://learn.microsoft.com/powershell/module/microsoftteams/set-team - - - - - - Get-TeamAllChannel - Get - TeamAllChannel - - This cmdlet supports retrieving all channels of a team, including incoming channels and channels hosted by the team. - - - - This cmdlet supports retrieving all channels of a team, including incoming channels and channels hosted by the team. - - - - Get-TeamAllChannel - - GroupId - - Returns the Group ID of the team. - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display; Standard, Private, or Shared - - String - - String - - - None - - - - - - GroupId - - Returns the Group ID of the team. - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display; Standard, Private, or Shared - - String - - String - - - None - - - - - - GroupId - - - - - - - - MembershipType - - - - - - - - - - Channel - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamAllChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 - - Returns all channels of a team. - - - - -------------------------- Example 2 -------------------------- - Get-TeamAllChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -MembershipType Shared - - Returns all shared channels of a team. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamallchannel - - - Get-TeamChannel - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel - - - Get-TeamIncomingChannel - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel - - - - - - Get-TeamChannel - Get - TeamChannel - - This cmdlet supports retrieving channels hosted by a team. - - - - This cmdlet supports retrieving channels hosted by a team. - - - - Get-TeamChannel - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display, Standard or Private (available in private preview) - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Membership type of the channel to display, Standard or Private (available in private preview) - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 - - Get channels of the group. - - - - -------------------------- Example 2 -------------------------- - Get-TeamChannel -GroupId af55e84c-dc67-4e48-9005-86e0b07272f9 -MembershipType Private - - Get all private channels of the group. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel - - - - - - Get-TeamChannelUser - Get - TeamChannelUser - - Returns users of a 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). - - - - Get-TeamChannelUser - - DisplayName - - Display name of the channel - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - DisplayName - - Display name of the channel - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamChannelUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Engineering" -Role Owner - - Get owners of channel with display name as "Engineering" - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchanneluser - - - - - - Get-TeamIncomingChannel - Get - TeamIncomingChannel - - This cmdlet supports retrieving incoming channels of a team. - - - - This cmdlet supports retrieving incoming channels of a team. - - - - Get-TeamIncomingChannel - - GroupId - - Group ID of the team - - String - - String - - - None - - - - - - GroupId - - Group ID of the team - - String - - String - - - None - - - - - - GroupId - - - - - - - - - - Channel - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamIncomingChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 - - Returns incoming channels of a team. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamincomingchannel - - - Get-TeamChannel - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel - - - Get-TeamAllChannel - https://learn.microsoft.com/powershell/module/microsoftteams/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/microsoftteams/get-teamsapp - - - - - - Get-TeamTargetingHierarchyStatus - Get - TeamTargetingHierarchyStatus - - 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 - - ApiVersion - - 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 - - - 1 - - - RequestId - - 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 - - - None - - - - - - ApiVersion - - 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 - - - 1 - - - RequestId - - 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 - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamTargetingHierarchy -FilePath d:\hier.csv - -Key Value ---- ----- -requestId c67e86109d88479e9708c3b7e8ff7217 - -PS C:\> Get-TeamTargetingHierarchyStatus -RequestId c67e86109d88479e9708c3b7e8ff7217 - -# When an error occurs, you will see the details in the ErrorMessage field. - -Id : c67e86109d88479e9708c3b7e8ff7217 -Status : Failed -LastKnownStatus : Validating -ErrorMessage : 1 error(s) were found. - Error: InvalidTeamId - Descriptions: - TeamID in row 2 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - TeamID in row 3 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - TeamID in row 4 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - TeamID in row 5 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - TeamID in row 6 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - TeamID in row 7 doesn't match a valid Group ID. Please view our documentation to learn how to get the proper Group ID for each team. - -LastUpdatedAt : 2021-02-17T22:28:08.7832795+00:00 -LastModifiedBy : a145d7eb-b70d-4591-9455-6c87382a22b7 -FileName : hier1.csv - -# When the hierarchy uploads and parses successfully, you will see this status. - -Id : c67e86109d88479e9708c3b7e8ff7217 -Status : Successful -LastKnownStatus : -ErrorMessage : -LastUpdatedAt : 2021-02-17T22:48:41.6664097+00:00 -LastModifiedBy : a145d7eb-b70d-4591-9455-6c87382a22b7 -FileName : hier.csv - - Prompts for user credentials to connect and manage a Microsoft Teams environment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus - - - Set-TeamTargetingHierarchy - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy - - - - - - Get-TeamUser - Get - TeamUser - - Returns users of a team. - - - - Returns an array containing the UPN, UserId, Name and Role of users belonging to an specific GroupId. - - - - Get-TeamUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Filter the results to only users with the given role: Owner or Member. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-TeamUser -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -Role Owner - - This example returns the UPN, UserId, Name, and Role of the owners of the specified GroupId. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamuser - - - - - - New-Team - 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. - - - - 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 - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreatePrivateChannels - - Determines whether private channel creation is allowed for the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - 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 - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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/exchangepowershell/new-unifiedgroup#parameters), Parameter: -Alias. - - String - - String - - - None - - - Owner - - 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. - - String - - String - - - None - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - - SwitchParameter - - - 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 - - - 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 - - - - New-Team - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - True - - - GiphyContentRating - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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/exchangepowershell/get-unifiedgroup). - - String - - String - - - None - - - Owner - - 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. - - String - - String - - - None - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - - SwitchParameter - - - 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 - - - - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - True - - - AllowChannelMentions - - 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 - - Boolean - - - True - - - AllowCreatePrivateChannels - - Determines whether private channel creation is allowed for the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - True - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - True - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - True - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - True - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - True - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - False - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - False - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - True - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - True - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - True - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - True - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - 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 - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - Moderate - - - 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/exchangepowershell/get-unifiedgroup). - - 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. 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 - - - None - - - Owner - - 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. - - String - - String - - - None - - - RetainCreatedGroup - - Switch Parameter allowing toggle of group cleanup if team creation fails. The default value of this parameter is $false to retain with current functionality where the unified group is deleted if the step of adding a team to the group fails. Set it to $true to retain the unified group created even if team creation fails to allow self-retry of team creation or self-cleanup of group as appropriate. - - SwitchParameter - - SwitchParameter - - - 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 - - - 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 - - - - - - - GroupId - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-Team -DisplayName "Tech Reads" - - This example creates a team with all parameters with their default values. - - - - -------------------------- Example 2 -------------------------- - New-Team -DisplayName "Tech Reads" -Description "Team to post technical articles and blogs" -Visibility Public - - This example creates a team with a specific description and public visibility. - - - - -------------------------- Example 3 -------------------------- - $group = New-Team -MailNickname "TestTeam" -displayname "Test Teams" -Visibility "private" -Add-TeamUser -GroupId $group.GroupId -User "fred@example.com" -Add-TeamUser -GroupId $group.GroupId -User "john@example.com" -Add-TeamUser -GroupId $group.GroupId -User "wilma@example.com" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Q4 planning" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Exec status" -New-TeamChannel -GroupId $group.GroupId -DisplayName "Contracts" - - This example creates a team, adds three members to it, and creates three channels within it. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-team - - - Remove-Team - https://learn.microsoft.com/powershell/module/microsoftteams/remove-team - - - Get-Team - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - Set-Team - https://learn.microsoft.com/powershell/module/microsoftteams/set-team - - - - - - New-TeamChannel - New - TeamChannel - - Add a new channel to a team. - - - - Add a new channel to a team. - - - - New-TeamChannel - - Description - - Channel description. Channel description can be up to 1024 characters. - - String - - String - - - None - - - DisplayName - - Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Channel membership type, Standard, Shared, or Private. - - String - - String - - - None - - - Owner - - UPN of owner that can be specified while creating a private channel. - - String - - String - - - None - - - - - - Description - - Channel description. Channel description can be up to 1024 characters. - - String - - String - - - None - - - DisplayName - - Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - MembershipType - - Channel membership type, Standard, Shared, or Private. - - String - - String - - - None - - - Owner - - UPN of owner that can be specified while creating a private channel. - - String - - String - - - None - - - - - - GroupId - - - - - - - - DisplayName - - - - - - - - Description - - - - - - - - MembershipType - - - - - - - - Owner - - - - - - - - - - Id - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Architecture" - - Create a standard channel with display name as "Architecture" - - - - -------------------------- Example 2 -------------------------- - New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Engineering" -MembershipType Private - - Create a private channel with display name as "Engineering" - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-teamchannel - - - - - - New-TeamsApp - New - TeamsApp - - Creates a new app in the Teams tenant app store. - - - - Use a Teams app manifest zip file to upload an app to the tenant app store. DistributionMethod specifies that the app should be added to the organization. - - - - New-TeamsApp - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - DistributionMethod - - The type of app in Teams: global or organization. For LOB apps, use "organization" - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-TeamsApp -DistributionMethod organization -Path c:\Path\SampleApp.zip - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-teamsapp - - - - - - Remove-SharedWithTeam - Remove - SharedWithTeam - - This cmdlet supports unsharing a channel with a team. - - - - This cmdlet supports unsharing a channel with a team. - - - - Remove-SharedWithTeam - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - ChannelId - - Thread ID of the shared channel. - - String - - String - - - None - - - HostTeamId - - Team ID of the host team (Group ID). - - String - - String - - - None - - - SharedWithTeamId - - Team ID of the shared with team. - - String - - String - - - None - - - - - - HostTeamId - - - - - - - - ChannelId - - - - - - - - SharedWithTeamId - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-SharedWithTeam -HostTeamId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -ChannelId 19:cUfyYYw3h_t-1KG8-WkvVa7KLEsIx-JHmyeG43VJojg1@thread.tacv2 --SharedWithTeam d2aad370-c6ca-438b-b4d7-05f0aa911a7b - - Unshares a channel with a team. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-sharedwithteam - - - Remove-Team - https://learn.microsoft.com/powershell/module/microsoftteams/remove-team - - - - - - Remove-Team - Remove - Team - - This cmdlet deletes a specified Team from Microsoft Teams. - NOTE: The associated Office 365 Unified Group will also be removed. - - - - Removes a specified team via GroupID and all its associated components, like O365 Unified Group... - - - - Remove-Team - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-Team -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-team - - - New-Team - https://learn.microsoft.com/powershell/module/microsoftteams/new-team - - - - - - Remove-TeamChannel - 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. - > [!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 - - DisplayName - - Channel name to be deleted - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - DisplayName - - Channel name to be deleted - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Tech Reads" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamchannel - - - - - - Remove-TeamChannelUser - Remove - TeamChannelUser - - Removes a user from a channel 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 (/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-TeamChannelUser - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Use this to demote a user from owner to member of the team - - String - - String - - - None - - - User - - User's email address (e.g. johndoe@example.com) - - String - - String - - - None - - - - - - DisplayName - - Display name of the private channel - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - Use this to demote a user from owner to member of the team - - String - - String - - - None - - - 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 - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamsapp - - - - - - Remove-TeamTargetingHierarchy - Remove - TeamTargetingHierarchy - - Removes the tenant's hierarchy. - - - - Removes the tenant's hierarchy. - - - - Remove-TeamTargetingHierarchy - - ApiVersion - - 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 - - - 1 - - - - - - ApiVersion - - 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 - - - 1 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-TeamTargetingHierarchy - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams - - - Set-TeamTargetingHierarchy - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamtargetinghierarchy - - - - - - Remove-TeamUser - Remove - 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: The last owner cannot be removed from the team. - - - - Remove-TeamUser - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - 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 - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - Role - - 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 - - String - - - None - - - User - - User's UPN (user principal name - e.g. johndoe@example.com) - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com -Role Owner - - In this example, the user "dmx" is removed the role Owner but stays as a team member. - - - - -------------------------- Example 2 -------------------------- - Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User dmx@example.com - - In this example, the user "dmx" is removed from the team. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-teamuser - - - - - - Set-Team - Set - Team - - This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. - - - - This cmdlet allows you to update properties of a team, including its displayname, description, and team-specific settings. This cmdlet includes all settings that used to be set using the Set-TeamFunSettings, Set-TeamGuestSettings, etc. cmdlets - - - - Set-Team - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - None - - - AllowChannelMentions - - 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 - - Boolean - - - None - - - AllowCreatePrivateChannels - - Determines whether private channel creation is allowed for the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - None - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - None - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - None - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - None - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - None - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - None - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - None - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - None - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - 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 - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - 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 - - The parameter has been deprecated. - - Boolean - - Boolean - - - None - - - Visibility - - Team visibility. Valid values are "Private" and "Public" - - String - - String - - - None - - - - - - AllowAddRemoveApps - - Boolean value that determines whether or not members (not only owners) are allowed to add apps to the team. - - Boolean - - Boolean - - - None - - - AllowChannelMentions - - 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 - - Boolean - - - None - - - AllowCreatePrivateChannels - - Determines whether private channel creation is allowed for the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateChannels - - Setting that determines whether or not members (and not just owners) are allowed to create channels. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveConnectors - - Setting that determines whether or not members (and not only owners) can manage connectors in the team. - - Boolean - - Boolean - - - None - - - AllowCreateUpdateRemoveTabs - - Setting that determines whether or not members (and not only owners) can manage tabs in channels. - - Boolean - - Boolean - - - None - - - AllowCustomMemes - - Setting that determines whether or not members can use the custom memes functionality in teams. - - Boolean - - Boolean - - - None - - - AllowDeleteChannels - - Setting that determines whether or not members (and not only owners) can delete channels in the team. - - Boolean - - Boolean - - - None - - - AllowGiphy - - Setting that determines whether or not giphy can be used in the team. - - Boolean - - Boolean - - - None - - - AllowGuestCreateUpdateChannels - - Setting that determines whether or not guests can create channels in the team. - - Boolean - - Boolean - - - None - - - AllowGuestDeleteChannels - - Setting that determines whether or not guests can delete in the team. - - Boolean - - Boolean - - - None - - - AllowOwnerDeleteMessages - - Setting that determines whether or not owners can delete messages that they or other members of the team have posted. - - Boolean - - Boolean - - - None - - - AllowStickersAndMemes - - Setting that determines whether stickers and memes usage is allowed in the team. - - Boolean - - Boolean - - - None - - - AllowTeamMentions - - Setting that determines whether the entire team can be @ mentioned (which means that all users will be notified) - - Boolean - - Boolean - - - None - - - AllowUserDeleteMessages - - Setting that determines whether or not members can delete messages that they have posted. - - Boolean - - Boolean - - - None - - - AllowUserEditMessages - - Setting that determines whether or not users can edit messages that they have posted. - - Boolean - - Boolean - - - 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 - - Setting that determines the level of sensitivity of giphy usage that is allowed in the team. Accepted values are "Strict" or "Moderate" - - String - - String - - - 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 - - The parameter has been deprecated. - - Boolean - - Boolean - - - None - - - Visibility - - Team visibility. Valid values are "Private" and "Public" - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-Team -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Updated TeamName" -Visibility Public - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-team - - - Get-Team - https://learn.microsoft.com/powershell/module/microsoftteams/get-team - - - New-Team - https://learn.microsoft.com/powershell/module/microsoftteams/new-team - - - - - - Set-TeamArchivedState - Set - TeamArchivedState - - This cmdlet is used to freeze all of the team activity, but Teams Administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. - - - - This cmdlet is used to freeze all of the team activity and also specify whether SharePoint site should be marked as Read-Only. Teams administrators and team owners will still be able to add or remove members and update roles. You can unarchive the team anytime. - - - - Set-TeamArchivedState - - Archived - - Boolean value that determines whether or not the Team is archived. - - Boolean - - Boolean - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - SetSpoSiteReadOnlyForMembers - - Use this parameter switch to make the SharePoint site read-only for team members. - - Boolean - - Boolean - - - None - - - - - - Archived - - Boolean value that determines whether or not the Team is archived. - - Boolean - - Boolean - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - SetSpoSiteReadOnlyForMembers - - Use this parameter switch to make the SharePoint site read-only for team members. - - Boolean - - Boolean - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true - - This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$true -SetSpoSiteReadOnlyForMembers:$true - - This example sets the group with id 105b16e2-dc55-4f37-a922-97551e9e862d as archived and makes the SharePoint site read-only for team members. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-TeamArchivedState -GroupId 105b16e2-dc55-4f37-a922-97551e9e862d -Archived:$false - - This example unarchives the group with id 105b16e2-dc55-4f37-a922-97551e9e862d. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamarchivedstate - - - - - - Set-TeamChannel - Set - TeamChannel - - Update Team channels settings. - - - - > [!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`. - - - - Set-TeamChannel - - CurrentDisplayName - - Current channel name - - String - - String - - - None - - - Description - - Updated Channel description. Channel Description Characters Limit - 1024. - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - NewDisplayName - - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - - - - CurrentDisplayName - - Current channel name - - String - - String - - - None - - - Description - - Updated Channel description. Channel Description Characters Limit - 1024. - - String - - String - - - None - - - GroupId - - GroupId of the team - - String - - String - - - None - - - NewDisplayName - - New Channel display name. Names must be 50 characters or less, and can't contain the characters # % & * { } / \ : < > ? + | ' " - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamChannel -GroupId c58566a6-4bb4-4221-98d4-47677dbdbef6 -CurrentDisplayName TechReads -NewDisplayName "Technical Reads" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamchannel - - - - - - Set-TeamPicture - Set - 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. - - - - Set-TeamPicture - - GroupId - - GroupId of the team - - String - - String - - - None - - - ImagePath - - File path and image ( .png, .gif, .jpg, or .jpeg) - - String - - String - - - None - - - - - - GroupId - - GroupId of the team - - String - - String - - - None - - - ImagePath - - File path and image ( .png, .gif, .jpg, or .jpeg) - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-TeamPicture -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -ImagePath c:\Image\TeamPicture.png - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teampicture - - - - - - Set-TeamsApp - Set - TeamsApp - - Updates an app in the Teams tenant app store. - - - - Use a Teams app manifest zip file to upload an app to the tenant app store. - - - - Set-TeamsApp - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - Id - - The app's ID generated by Teams (different from the external ID) - - String - - String - - - None - - - Path - - The local path of the app manifest zip file, for use in New and Set - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamsApp -Id b9cc7986-dd56-4b57-ab7d-9c4e5288b775 -Path c:\Path\SampleApp.zip - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsapp - - - - - - Set-TeamTargetingHierarchy - Set - TeamTargetingHierarchy - - Upload a hierarchy to the tenant. A tenant may only have 1 active hierarchy. Each Set-TeamTargetingHierarchy cmdlet call will overwrite the previous one. - - - - A sample CSV file uses the following format: - `TargetName,ParentName,TeamId,Location:Clothing,Location:Jewelry,#Bucket1,#Bucket2`<br>`Apogee,,A8A6626F-87B3-4B8A-9469-47BCD1174673,0,0`<br>`New Jersey,Apogee,06763207-4F56-4DFE-96AE-4C7F9ADCFB43,0,0`<br>`Basking Ridge,NewJersey,5F44CC65-9521-4F7F-9099-64320153CA07,1,0`<br>`Mountain Lakes,NewJersey,58A21379-8E4D-4DA5-AA35-9CC188D8A998,0,1` - Based on the CSV file, the following hierarchy is created: - - Apogee - - &nbsp;&nbsp;&nbsp;New Jersey - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basking Ridge - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mountain Lakes - - - - Set-TeamTargetingHierarchy - - ApiVersion - - 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 - - - 1 - - - FilePath - - Specifies the path to a CSV file that defines the hierarchy. - - String - - String - - - None - - - - - - ApiVersion - - 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 - - - 1 - - - FilePath - - Specifies the path to a CSV file that defines the hierarchy. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamTargetingHierarchy -FilePath d:\hier.csv - -Key Value ---- ----- -requestId c67e86109d88479e9708c3b7e8ff7217 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams - - - Get-TeamTargetingHierarchyStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-teamtargetinghierarchystatus - - - - - - Update-M365TeamsApp - Update - M365TeamsApp - - This cmdlet updates app state and app available values for the Microsoft Teams app. - - - - This cmdlet allows administrators to modify app state, availability and installation status by adding or removing users and groups or changing assignment type or installation status. - - - - Update-M365TeamsApp - - AppAssignmentType - - App availability type. - - String - - String - - - None - - - AppInstallType - - App installation type. - - String - - String - - - None - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - AppAssignmentType - - App availability type. - - String - - String - - - None - - - AppInstallType - - App installation type. - - String - - String - - - None - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - AppAssignmentType - - App availability type. - - String - - String - - - None - - - AppInstallType - - App installation type. - - String - - String - - - None - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForOperationType - - Operation performed on the app installation. - - String - - String - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - OperationType - - Operation performed on the app assigment. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForOperationType - - Operation performed on the app installation. - - String - - String - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - OperationType - - Operation performed on the app assigment. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - IsBlocked - - The state of the app in the tenant. - - Boolean - - Boolean - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - Update-M365TeamsApp - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - IsBlocked - - The state of the app in the tenant. - - Boolean - - Boolean - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - - - AppAssignmentType - - App availability type. - - String - - String - - - None - - - AppInstallType - - App installation type. - - String - - String - - - None - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Id - - Application ID of Microsoft Teams app. - - String - - String - - - None - - - InstallForGroups - - List of all the groups for whom the app is installed. - - String[] - - String[] - - - None - - - InstallForOperationType - - Operation performed on the app installation. - - String - - String - - - None - - - InstallForUsers - - List of all the users for whom the app is installed. - - String[] - - String[] - - - None - - - InstallVersion - - App version to be installed. - - String - - String - - - None - - - IsBlocked - - The state of the app in the tenant. - - Boolean - - Boolean - - - None - - - OperationType - - Operation performed on the app assigment. - - String - - String - - - None - - - Users - - List of all the users for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -AppAssignmentType Everyone - - Updates the availability value for Bookings app (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b) to Everyone. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -IsBlocked $true -AppAssignmentType UsersAndGroups -OperationType Add -Users eec823bd-0979-4cf8-9924-85bb6ffcb57d, eec823bd-0979-4cf8-9924-85bb6ffcb57e -Groups 37da2d58-fc14-453e-9a14-5065ebd63a1d, 37da2d58-fc14-453e-9a14-5065ebd63a1e, 37da2d58-fc14-453e-9a14-5065ebd63a1b, 37da2d58-fc14-453e-9a14-5065ebd63a1f, 37da2d58-fc14-453e-9a14-5065ebd63a1a - - Unblocks CSP Customer App (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b) and updates availability setting for the app to include 2 users and 5 groups. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Update-M365TeamsApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -IsBlocked $true - - Unblocks Bookings app (App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b). - - - - -------------------------- Example 4 -------------------------- - PS C:\> Update-M365TeamsApp -Id 2b876f4d-2e6b-4ee7-9b09-8893808c1380 -IsBlocked $false -AppInstallType UsersAndGroups -InstallForOperationType Add -InstallForUsers 77f5d400-a12e-4168-8e63-ccd2243d33a8,f2f4d8bc-1fb3-4292-867e-6d19efb0eb7c,37b6fc6a-32a4-4767-ac2e-c2f2307bad5c -InstallForGroups 926d57ad-431c-4e6a-9e16-347eacc91aa4 -InstallVersion 4.1.2 - - Unblocks 1Page App (App ID 2b876f4d-2e6b-4ee7-9b09-8893808c1380) and updates installation setting for the app to include 3 users and 1 group. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365TeamsApp - - - Get-AllM365TeamsApps - https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps - - - Get-M365TeamsApp - https://learn.microsoft.com/powershell/module/microsoftteams/get-allm365teamsapps - - - - - - Update-M365UnifiedCustomPendingApp - Update - M365UnifiedCustomPendingApp - - This cmdlet updates the review status for a custom Microsoft Teams app that is pending review from an IT Admin. The requester to publish the custom app will not be notified when this cmdlet is completed. - - - - This cmdlet allows administrators to reject or publish custom Microsoft Teams apps that are pending review from an IT Admin. - - - - Update-M365UnifiedCustomPendingApp - - Id - - Application ID of the Teams app. - - String - - String - - - None - - - ReviewStatus - - The review status of the Teams app. - - String - - String - - - None - - - - Update-M365UnifiedCustomPendingApp - - Id - - Application ID of the Teams app. - - String - - String - - - None - - - ReviewStatus - - The review status of the Teams app. - - String - - String - - - None - - - - - - Id - - Application ID of the Teams app. - - String - - String - - - None - - - ReviewStatus - - The review status of the Teams app. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - ## RELATED LINKS - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Update-M365UnifiedCustomPendingApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -ReviewStatus Published - - Updates the review status for the custom pending app with App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b to Published. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Update-M365UnifiedCustomPendingApp -Id 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b -ReviewStatus Rejected - - Updates the review status for the custom pending app with App ID 4c4ec2e8-4a2c-4bce-8d8f-00fc664a4e5b to Rejected. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/Update-M365UnifiedCustomPendingApp - - - - - - Update-M365UnifiedTenantSettings - Update - M365UnifiedTenantSettings - - This cmdlet updates tenant settings. - - - - This cmdlet allows administrators to modify tenant settings. - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - - - Update-M365UnifiedTenantSettings - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - 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 - - - - - - Groups - - List of all the groups for whom the app is enabled or disabled. - - String[] - - String[] - - - None - - - Operation - - Operation performed (whether we are adding or removing users/groups). - - String - - String - - - None - - - SettingName - - Setting Name to be changed. - - String - - String - - - None - - - 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 - - - - - - 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/microsoftteams/Update-M365UnifiedTenantSettings - - - - \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.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 deleted file mode 100644 index 7ac73b0879267..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/en-US/Microsoft.TeamsCmdlets.PowerShell.Connect.dll-Help.xml +++ /dev/null @@ -1,1199 +0,0 @@ - - - - - Clear-TeamsEnvironmentConfig - Clear - TeamsEnvironmentConfig - - Clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. - - - - This cmdlet clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. This helps in clearing and rectifying any wrong information set in Set-TeamsEnvironmentConfig. - - - - Clear-TeamsEnvironmentConfig - - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - We do not recommend using Clear-TeamsEnvironmentConfig in Commercial, GCC, GCC High, or DoD environments. This cmdlet is available in Microsoft Teams PowerShell module from version 5.2.0-GA. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Clear-TeamsEnvironmentConfig - - Clears environment-specific configurations from the local machine set by running Set-TeamsEnvironmentConfig. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/clear-teamsenvironmentconfig - - - - - - Connect-MicrosoftTeams - Connect - MicrosoftTeams - - The Connect-MicrosoftTeams cmdlet connects an authenticated account for use with cmdlets from the MicrosoftTeams module. - - - - The Connect-MicrosoftTeams cmdlet connects to Microsoft Teams with an authenticated account for use with cmdlets from the MicrosoftTeams PowerShell module. After executing this cmdlet, you can disconnect from MicrosoftTeams account using Disconnect-MicrosoftTeams. Note : With versions 4.x.x or later, enablement of basic authentication is not needed anymore in commercial, GCC, GCC High, and DoD environments. - - - - Connect-MicrosoftTeams - - AccessTokens - - Specifies access tokens for "MS Graph" and "Skype and Teams Tenant Admin API" resources. Both the tokens used should be of the same type. - - Application-based authentication has been reintroduced with version 4.7.1-preview. For details and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - Delegated flow - The following steps must be performed by Tenant Admin in the Azure portal when using your own application. - Steps to configure the Microsoft Entra application. 1. Go to Azure portal and go to App Registrations. 2. Create or select the existing application. 3. Add the following permission to this Application. 4. Click API permissions. 5. Click Add a permission. 6. Click on the Microsoft Graph, and then select Delegated permissions. 7. Add the following permissions: "AppCatalog.ReadWrite.All", "Group.ReadWrite.All", "User.Read.All", "TeamSettings.ReadWrite.All", "Channel.Delete.All", "ChannelSettings.ReadWrite.All", "ChannelMember.ReadWrite.All". 8. Next, we need to add "Skype and Teams Tenant Admin API" resource permission. Click Add a permission. 9. Navigate to "APIs my organization uses" 10. Search for "Skype and Teams Tenant Admin API", and then select Delegated permissions. 11. Add all the listed permissions. 12. Grant admin consent to both Microsoft Graph and "Skype and Teams Tenant Admin API" name. - - String[] - - String[] - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - LogFilePath - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Connect-MicrosoftTeams - - AadAccessToken (Removed from version 2.3.2-preview) - - Specifies an Azure Active Directory Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - LogFilePath - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - MsAccessToken (Removed from version 2.3.2-preview) - - Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. - - String - - String - - - None - - - TenantId - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Connect-MicrosoftTeams - - AccountId - - Specifies the ID of an account. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type Get-Help Get-Credential. - The PSCredential object provides the user ID and password for organizational ID credentials. - - PSCredential - - PSCredential - - - None - - - LogFilePath - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - TeamsEnvironmentName - - 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 - - String - - - None - - - TenantId - - 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 - - String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Connect-MicrosoftTeams - - ApplicationId - - Specifies the application ID of the service principal that is used in application-based authentication. - This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - String - - String - - - None - - - Certificate - - Specifies the certificate that is used for application-based authentication. A valid value is the X509Certificate2 object value of the certificate. - This parameter has been introduced with version 4.9.2-preview. For more information about application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - X509Certificate2 - - X509Certificate2 - - - None - - - CertificateThumbprint - - Specifies the certificate thumbprint of a digital public key X.509 certificate of an application that has permission to perform this action. - This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - LogFilePath - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - TenantId - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Connect-MicrosoftTeams - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - - LogFilePath - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - ManagedServiceHostName - - Host name for managed service login. - - String - - String - - - None - - - ManagedServicePort - - Port number for managed service login. - - Int32 - - Int32 - - - None - - - ManagedServiceSecret - - Secret, used for some kinds of managed service login. - - SecureString - - SecureString - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AccessTokens - - Specifies access tokens for "MS Graph" and "Skype and Teams Tenant Admin API" resources. Both the tokens used should be of the same type. - - Application-based authentication has been reintroduced with version 4.7.1-preview. For details and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - Delegated flow - The following steps must be performed by Tenant Admin in the Azure portal when using your own application. - Steps to configure the Microsoft Entra application. 1. Go to Azure portal and go to App Registrations. 2. Create or select the existing application. 3. Add the following permission to this Application. 4. Click API permissions. 5. Click Add a permission. 6. Click on the Microsoft Graph, and then select Delegated permissions. 7. Add the following permissions: "AppCatalog.ReadWrite.All", "Group.ReadWrite.All", "User.Read.All", "TeamSettings.ReadWrite.All", "Channel.Delete.All", "ChannelSettings.ReadWrite.All", "ChannelMember.ReadWrite.All". 8. Next, we need to add "Skype and Teams Tenant Admin API" resource permission. Click Add a permission. 9. Navigate to "APIs my organization uses" 10. Search for "Skype and Teams Tenant Admin API", and then select Delegated permissions. 11. Add all the listed permissions. 12. Grant admin consent to both Microsoft Graph and "Skype and Teams Tenant Admin API" name. - - String[] - - String[] - - - None - - - AadAccessToken (Removed from version 2.3.2-preview) - - Specifies an Azure Active Directory Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. - - String - - String - - - None - - - AccountId - - Specifies the ID of an account. - - String - - String - - - None - - - ApplicationId - - Specifies the application ID of the service principal that is used in application-based authentication. - This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - String - - String - - - None - - - Certificate - - Specifies the certificate that is used for application-based authentication. A valid value is the X509Certificate2 object value of the certificate. - This parameter has been introduced with version 4.9.2-preview. For more information about application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - X509Certificate2 - - X509Certificate2 - - - None - - - CertificateThumbprint - - Specifies the certificate thumbprint of a digital public key X.509 certificate of an application that has permission to perform this action. - This parameter has been reintroduced with version 4.7.1-preview. For more information about Application-based authentication and supported cmdlets, see Application-based authentication in Teams PowerShell Module (https://learn.microsoft.com/microsoftteams/teams-powershell-application-authentication). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Credential - - Specifies a PSCredential object. For more information about the PSCredential object, type Get-Help Get-Credential. - The PSCredential object provides the user ID and password for organizational ID credentials. - - PSCredential - - PSCredential - - - 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 - - The path where the log file for this PowerShell session is written to. Provide a value here if you need to deviate from the default PowerShell log file location. - - String - - String - - - None - - - LogLevel - - Specifies the log level. The acceptable values for this parameter are: - - Info - - Error - - Warning - - None - - The default value is Info. - - LogLevel - - LogLevel - - - None - - - ManagedServiceHostName - - Host name for managed service login. - - String - - String - - - None - - - ManagedServicePort - - Port number for managed service login. - - Int32 - - Int32 - - - None - - - ManagedServiceSecret - - Secret, used for some kinds of managed service login. - - SecureString - - SecureString - - - None - - - MsAccessToken (Removed from version 2.3.2-preview) - - Specifies a Microsoft Graph access token. > [!WARNING] >This parameter has been removed from version 2.3.2-preview. - - String - - String - - - None - - - TeamsEnvironmentName - - 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 - - String - - - None - - - TenantId - - 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 - - String - - - None - - - UseDeviceAuthentication - - Use device code authentication instead of a browser control. - - SwitchParameter - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - ------------- Example 1: Connect to MicrosoftTeams ------------- - Connect-MicrosoftTeams -Account Environment Tenant TenantId -------- ----------- ------------------------------------ ------------------------------------ -user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - - - - - ------------- Example 2: Connect to MicrosoftTeams ------------- - $credential = Get-Credential -Connect-MicrosoftTeams -Credential $credential -Account Environment Tenant TenantId -------- ----------- ------------------------------------ ------------------------------------ -user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - - - - - Example 3: Connect to MicrosoftTeams in a specific environment - Connect-MicrosoftTeams -TeamsEnvironmentName TeamsGCCH -Account Environment Tenant TenantId -------- ----------- ------------------------------------ ------------------------------------ -user@contoso.com TeamsGCCH xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - - - - - Example 4: Connect to MicrosoftTeams using a certificate thumbprint - Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" - - - - - - Example 5: Connect to MicrosoftTeams using a certificate object - $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\exampleCert.pfx",$password) -Connect-MicrosoftTeams -Certificate $cert -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" - - - - - - Example 6: Connect to MicrosoftTeams using Application-based Access Tokens - $ClientSecret = "..." -$ApplicationID = "00000000-0000-0000-0000-000000000000" -$TenantID = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" - -$graphtokenBody = @{ - Grant_Type = "client_credentials" - Scope = "https://graph.microsoft.com/.default" - Client_Id = $ApplicationID - Client_Secret = $ClientSecret -} - -$graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token - -$teamstokenBody = @{ - Grant_Type = "client_credentials" - Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default" - Client_Id = $ApplicationID - Client_Secret = $ClientSecret -} - -$teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token - -Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken") - - - - - - Example 7: Connect to MicrosoftTeams using Access Tokens in the delegated flow - $ClientID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -$ClientSecret = "..." -$ClientSecret = [Net.WebUtility]::URLEncode($ClientSecret) -$TenantID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -$Username = "user@contoso.onmicrosoft.com" -$Password = "..." -$Password = [Net.WebUtility]::URLEncode($Password) - -$URI = "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -$Body = "client_id=$ClientID&client_secret=$ClientSecret&grant_type=password&username=$Username&password=$Password" -$RequestParameters = @{ - URI = $URI - Method = "POST" - ContentType = "application/x-www-form-urlencoded" -} -$GraphToken = (Invoke-RestMethod @RequestParameters -Body "$Body&scope=https://graph.microsoft.com/.default").access_token -$TeamsToken = (Invoke-RestMethod @RequestParameters -Body "$Body&scope=48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default").access_token -Connect-MicrosoftTeams -AccessTokens @($GraphToken, $TeamsToken) - -Account Environment Tenant TenantId -------- ----------- ------------------------------------ ------------------------------------ -user@contoso.com AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/connect-microsoftteams - - - - - - Disconnect-MicrosoftTeams - Disconnect - MicrosoftTeams - - - - - - - - - - Disconnect-MicrosoftTeams - - Confirm - - Proactively accepts any confirmation prompts. - - - SwitchParameter - - - False - - - WhatIf - - Simulates what would happen if the cmdlet is run. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Proactively accepts any confirmation prompts. - - SwitchParameter - - SwitchParameter - - - False - - - WhatIf - - Simulates what would happen if the cmdlet is run. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Disconnect-MicrosoftTeams - - Disconnects from the Microsoft Teams environment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/disconnect-microsoftteams - - - - - - Set-TeamsEnvironmentConfig - Set - TeamsEnvironmentConfig - - Sets environment-specific configurations on the local machine and is used to connect to the right environment when running Connect-MicrosoftTeams. - - - - This cmdlet sets environment-specific configurations like endpoint URIs(such as Microsoft Entra ID and Microsoft Graph) and Teams environment (such as GCCH and DOD) on the local machine. - When running Connect-MicrosoftTeams, environment-specific information set in this cmdlet will be considered unless overridden by Connect-MicrosoftTeams parameters. - Parameters passed to Connect-MicrosoftTeams will take precedence over the information set by this cmdlet. - Clear-TeamsEnvironmentConfig should not be used in Commercial, GCC, GCC High, or DoD environments. - - - - Set-TeamsEnvironmentConfig - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - EndpointUris - - Provides custom endpoints. - - Hashtable - - Hashtable - - - None - - - TeamsEnvironmentName - - Provides a Teams environment to connect to, for example, Teams GCCH or Teams DoD. - - 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 - - - EndpointUris - - Provides custom endpoints. - - Hashtable - - Hashtable - - - None - - - TeamsEnvironmentName - - Provides a Teams environment to connect to, for example, Teams GCCH or Teams DoD. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - Set-TeamsEnvironmentConfig should not be used in Commercial, GCC, GCC High, or DoD environments. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-TeamsEnvironmentConfig -TeamsEnvironmentName TeamsChina - - Sets the environment as Gallatin China on a local machine and when Connect-MicrosoftTeams is run, authentication will happen in the Gallatin China cloud and Microsoft Teams module will connect to the Gallatin environment. - - - - -------------------------- Example 2 -------------------------- - $endPointUriDict = @{ActiveDirectory = 'https://login.microsoftonline.us/';MsGraphEndpointResourceId = 'https://graph.microsoft.us'} -Set-TeamsEnvironmentConfig -TeamsEnvironmentName $endPointUriDict - - Sets endpoint URIs required for special clouds. - - - - -------------------------- Example 3 -------------------------- - Set-TeamsEnvironmentConfig -TeamsEnvironmentName TeamsChina - -$cred=get-credential -Move-CsUser -Identity "PilarA@contoso.com" -Target "sipfed.online.lync.com" -Credential $cred - - This cmdlet is mainly introduced to support Skype for Business to Microsoft Teams user migration using Move-CsUser. - This example shows how tenant admins can run Move-CsUser in Gallatin and other special clouds after setting the environment configuration using Set-TeamsEnvironmentConfig. - Note that Set-TeamsEnvironmentConfig needs to be run only once for each machine. There is no need to run it each time before running Move-CsUser. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-teamsenvironmentconfig - - - - \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml b/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml deleted file mode 100644 index 93998357f5db7..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/en-US/MicrosoftTeams-help.xml +++ /dev/null @@ -1,108606 +0,0 @@ - - - - - Clear-CsOnlineTelephoneNumberOrder - Clear - CsOnlineTelephoneNumberOrder - - Use the `Clear-CsOnlineTelephoneNumberOrder` cmdlet to cancel a specific telephone number search order and release the telephone numbers. The telephone numbers can then be available for search and acquire. - - - - Use the `Clear-CsOnlineTelephoneNumberOrder` cmdlet to cancel a specific telephone number search order and release the telephone numbers. The telephone numbers can then be available for search and acquire. - - - - Clear-CsOnlineTelephoneNumberOrder - - OrderId - - Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. - - String - - String - - - None - - - - - - OrderId - - Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Clear-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 - -AreaCode : -CivicAddressId : -CountryCode : US -CreatedAt : 8/23/2021 5:43:44 PM -Description : test -ErrorCode : NoError -Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -InventoryType : Subscriber -IsManual : False -Name : test -NumberPrefix : 1718 -NumberType : UserSubscriber -Quantity : 1 -ReservationExpiryDate : 8/23/2021 5:59:45 PM -SearchType : Prefix -SendToServiceDesk : False -Status : Cancelled -TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} - -PS C:\> $order.TelephoneNumber - -Location TelephoneNumber --------- --------------- -New York City +17182000004 - - This example cancels the purchase of the telephone number order containing the phone number +17182000004. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - - - - Complete-CsOnlineTelephoneNumberOrder - Complete - CsOnlineTelephoneNumberOrder - - Use the `Complete-CsOnlineTelephoneNumberOrder` cmdlet to complete a specific telephone number search order and confirm the purchase of the new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. - - - - Use the `Complete-CsOnlineTelephoneNumberOrder` cmdlet to complete a specific telephone number search order and confirm the purchase of the new telephone numbers. The telephone numbers can then be used to set up calling features for users and services in your organization. - - - - Complete-CsOnlineTelephoneNumberOrder - - OrderId - - Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. - - String - - String - - - None - - - - - - OrderId - - Specifies the telephone number search order to look up. Use `New-CsOnlineTelephoneNumberOrder` to create a search order to obtain a search order Id. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Complete-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 | fl - -AreaCode : -CivicAddressId : -CountryCode : US -CreatedAt : 8/23/2021 5:43:44 PM -Description : test -ErrorCode : NoError -Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -InventoryType : Subscriber -IsManual : False -Name : test -NumberPrefix : 1718 -NumberType : UserSubscriber -Quantity : 1 -ReservationExpiryDate : 8/23/2021 5:59:45 PM -SearchType : Prefix -SendToServiceDesk : False -Status : Completed -TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} - -PS C:\> (Get-CsOnlineTelephoneNumberOrder -OrderId 1efd85ca-dd46-41b3-80a0-2e4c5f87c912).TelephoneNumber - -Location TelephoneNumber --------- --------------- -New York City +17182000004 - - This example completes the purchase of the telephone number order containing the phone number +17182000004. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - - - - Disable-CsOnlineSipDomain - 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. - 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 : - - There must be at most 1 O365 tenant involved. Consolidation in 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.) - - If 1 deployment is in hybrid mode, all sip domains from any other SfB forests must be disabled using this cmdlet before they can be synchronized into the tenant with Microsoft Entra Connect. Users in all SfB forests other than the hybrid forest must remain on-premises. - - Organizations must fully migrate each SfB forest individually into the O365 tenant using hybrid mode (Shared Sip Address Space), and then detach the "hybrid" deployment, before moving on to migrate the next on-premises SfB deployment. - This cmdlet may also be useful for organizations with on-premises deployments of Skype for Business Server that have not properly configured Microsoft Entra Connect. If the organization does not sync msRTCSIP-DeploymentLocator for its users, then Skype for Business Online will attempt to provision online any users with an assigned Skype for Business license, despite there being users on-premises. While the correct fix is to update the configuration for Microsoft Entra Connect to sync those attributes, using Disable-CsOnlineSipDomain can also mitigate the problem until that configuration change can be made. If this cmdlet is run, any users that were previously provisioned online in that domain will be de-provisioned in Skype for Business Online. - Important: This cmdlet should not be run for domains that contain users hosted in Skype for Business Online. Any users in a sip domain that are already provisioned online will cease to function if you disable the online sip domain: - Their SIP addresses will be removed. - - All contacts and meetings for these users hosted in Skype for Business Online will be deleted. - - These users will no longer be able to login to the Skype for Business Online environment. - - If these users use Teams, they will no longer be able to inter-operate with Skype for Business users, nor will they be able to federate with any users in other organizations. - - Note: If the Tenant is enabled for Regionally Hosted Meetings in Skype for Business Online, Online SIP Domains must be disabled in all regions. You must execute this cmdlet in each region that is added in Allowed Data Location. - - - - Disable-CsOnlineSipDomain - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - None - - - - - - - - - This cmdlet is for advanced scenarios only. Organizations that are pure online or have only 1 on-premises deployment need not run this cmdlet. - - - - - -------------------------- Example 1 -------------------------- - Disable-CsOnlineSipDomain -Domain Fabrikam.com - - The cmdlet above disables the online sip domain Fabrikam.com. This would be useful in the case where a company, Contoso.com, that has Skype for Business acquires Fabrikam, which also has an on-premises deployment of Skype for Business Server. If Contoso is in hybrid mode with Skype for Business Online or if the intent is to configure it for hybrid, then if the organization wants to synchronize identities from Fabrikam.com into the same O365 tenant, the organization must first run this cmdlet. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain - - - Enable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain - - - Get-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain - - - Cloud consolidation for Teams and Skype for Business - https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation - - - - - - Disable-CsTeamsShiftsConnectionErrorReport - Disable - CsTeamsShiftsConnectionErrorReport - - This cmdlet disables an error report. - - - - 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). - - - - Disable-CsTeamsShiftsConnectionErrorReport - - ErrorReportId - - > Applicable: Microsoft Teams - The ID of the error report that you want to disable. - - String - - String - - - None - - - - - - ErrorReportId - - > Applicable: Microsoft Teams - The ID of the error report that you want to disable. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Disable-CsTeamsShiftsConnectionErrorReport -ErrorReportId 18b3e490-e6ed-4c2e-9925-47e36609dff3 - - Disables the error report with ID `18b3e490-e6ed-4c2e-9925-47e36609dff3`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport - - - Get-CsTeamsShiftsConnectionErrorReport - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport - - - - - - Enable-CsOnlineSipDomain - 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 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.) - - If 1 deployment is in hybrid mode, all online SIP domains from any other SfB forests must be disabled before they can be synchronized into the tenant with Microsoft Entra Connect. Users in all SfB forests other than the hybrid forest must remain on-premises. - - Organizations must fully migrate (e.g move all users to the cloud) each SfB forest individually into the O365 tenant using hybrid mode (Shared Sip Address Space), and then detach the "hybrid" deployment, before moving on to migrate the next on-premises SfB deployment. - Before running this cmdlet for any SIP domain in a Skype for Business Server deployment, you must complete migration of any other existing hybrid SfB deployment that is in progress. All users in an existing hybrid deployment must be moved to the cloud, and that existing hybrid deployment must be detached from Office 365, as described in this article: Disable hybrid to complete migration to the cloud (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation-disabling-hybrid). - Important: If you have more than one on-premises deployment of Skype for Business Server, you must ensure SharedSipAddressSpace is disabled in all other Skype for Business Server deployments except the deployment containing the SIP domain that is being enabled. - Note: If the Tenant is enabled for Regionally Hosted Meetings in Skype for Business Online, Online SIP Domains must be Enabled in all regions. You must execute this cmdlet in each region that is added in Allowed Data Location for Skype for Business. - - - - Enable-CsOnlineSipDomain - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Enable-CsOnlineSipDomain -Domain contoso.com - - Enables the domain contoso.com for online provisioning in Skype for Business Online. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain - - - Disable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain - - - Get-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain - - - - - - Export-CsAcquiredPhoneNumber - Export - CsAcquiredPhoneNumber - - This cmdlet exports the list of phone numbers acquired by Teams Phone tenant. - - - - 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 - - NumberType - - LocationId - - CivicAddressId - - NetworkSiteId - - AvailableCapabilities - - AcquiredCapabilities - - AssignmentStatus - - PlaceName - - ActivationState - - PartnerName - - IsoCountryCode - - PortInOrderStatus - - CapabilityUpdateSupported - - AcquisitionDate - - TargetId - - TargetType - - AssignmentCategory - - CallingProfileId - - IsoSubdivisionCode - - NumberSource - - SupportedCustomerActions - - ReverseNumberLookup - - RoutingOptions - - - - Export-CsAcquiredPhoneNumber - - Property - - {{ Fill Property Description }} - - String - - String - - - None - - - - - - Property - - {{ Fill Property Description }} - - String - - String - - - None - - - - - - None - - - - - - - - - - System.String - - - - - - - - - The cmdlet is available in Teams PowerShell module 6.1.0 or later. - The cmdlet is only available in commercial and GCC cloud instances. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Export-CsAcquiredPhoneNumber - -0e923e2c-ab0e-4b7a-be5a-906be8c - - This example displays the output of the export acquired phone numbers operation. The OrderId shown as the output string and can be used to get the download link for the file. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Export-CsAcquiredPhoneNumber -Property "TelephoneNumber, NumberType, AssignmentStatus" - -0e923e2c-ab0e-6h8c-be5a-906be8c - - This example displays the output of the export acquired phone numbers operation with filtered properties. This file will only contain the properties indicated. - - - - -------------------------- Example 3 -------------------------- - PS C:\> $orderId = Export-CsAcquiredPhoneNumber - - This example displays the use of variable "orderId" for the export acquired phone numbers operation. The OrderId string will be stored in the variable named "orderId" and no output will be shown for the cmdlet. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Export-CsAcquiredPhoneNumber -Property "TelephoneNumber, NumberType, AssignmentStatus" - -OrderId : 0e923e2c-ab0e-6h8c-be5a-906be8c - - This example displays the use of variable "orderId" for the export acquired phone numbers operation with filtered properties. The OrderId string will be stored in the variable named "orderId" and no output will be shown for the cmdlet. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/export-csacquiredphonenumber - - - Get-CsExportAcquiredPhoneNumberStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csexportacquiredphonenumberstatus - - - - - - Export-CsAutoAttendantHolidays - Export - CsAutoAttendantHolidays - - Use Export-CsAutoAttendantHolidays cmdlet to export holiday schedules of an existing Auto Attendant (AA). - - - - The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and then later import that information. This can be extremely useful in a situation where you need to configure same holiday sets in multiple tenants. - The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored. NOTE : Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays cmdlet should be of the following format: - `HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,...,StartDateTime10,EndDateTime10` - where - - HolidayName is the name of the holiday to be imported. - - StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as New-CsOnlineDateTimeRange cmdlet. - - EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day after the start date. - - - The first line of the CSV file is considered a header record and is always ignored by Import-CsAutoAttendantHolidays cmdlet. - - If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of the holidays being imported, the corresponding CSV record is skipped. - - For holidays that are successfully imported, a default call flow is created which is configured without any greeting and simply disconnects the call on being executed. - - - - Export-CsAutoAttendantHolidays - - Identity - - > Applicable: Microsoft Teams - The identity for the AA whose holiday schedules are to be exported. - - 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 AA whose holiday schedules are to be exported. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Export-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. - - - - - - - System.Byte[] - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $bytes = Export-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -[System.IO.File]::WriteAllBytes("C:\Exports\Holidays.csv", $bytes) - - In this example, the Export-CsAutoAttendantHolidays cmdlet is used to export holiday schedules of an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. The exported bytes are then written to a file with the path "C:\Exports\Holidays.csv". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays - - - Import-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays - - - Get-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays - - - - - - Export-CsOnlineAudioFile - Export - CsOnlineAudioFile - - Use the Export-CsOnlineAudioFile cmdlet to download an existing audio file. - - - - The Export-CsOnlineAudioFile cmdlet downloads an existing Auto Attendant (AA), Call Queue (CQ) service or Music on Hold audio file. - - - - Export-CsOnlineAudioFile - - 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 - - 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 - - The Id of the specific audio file that you would like to export. - - System.String - - System.String - - - 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 - - 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 - - The Id of the specific audio file that you would like to export. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Byte[] - - - - - - - - - The audio content generated by Export-CsOnlineAudioFile is always in WAV format (PCM 16 bit and mono) irrespective on which format the audio was imported as. Therefore, ensure that the file extension used to store the content is WAV. - You are responsible for independently clearing and securing all necessary rights and permissions to use any music or audio file with your Microsoft Teams service, which may include intellectual property and other rights in any music, sound effects, audio, brands, names, and other content in the audio file from all relevant rights holders, which may include artists, actors, performers, musicians, songwriters, composers, record labels, music publishers, unions, guilds, rights societies, collective management organizations and any other parties who own, control or license the music copyrights, sound effects, audio and other intellectual property rights. - - - - - -------------------------- Example 1 -------------------------- - $content=Export-CsOnlineAudioFile -ApplicationId "HuntGroup" -Identity 57f800408f8848548dd1fbc18073fe46 -[System.IO.File]::WriteAllBytes('C:\MyWaveFile.wav', $content) - - This example exports a Call Queue audio file and saves it as MyWaveFile.wav. - - - - - - Online Version: - 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-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile - - - - - - Find-CsGroup - Find - CsGroup - - Use the Find-CsGroup cmdlet to search groups. - - - - The Find-CsGroup cmdlet lets you search groups in the Azure Address Book Service (AABS). - - - - Find-CsGroup - - ExactMatchOnly - - > Applicable: Microsoft Teams - The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - 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 - - UInt32 - - - None - - - SearchQuery - - > 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. - - String - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - ExactMatchOnly - - > Applicable: Microsoft Teams - The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. - - Boolean - - Boolean - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - 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 - - UInt32 - - - None - - - SearchQuery - - > 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. - - String - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel - - - The Find-CsGroup cmdlet returns a list of Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel. Microsoft.Rtc.Management.Hosted.Group.Models.GroupModel contains Id and DisplayName. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Find-CsGroup -SearchQuery "Contoso Group" -MaxResults 5 - - This example finds and displays up to five groups that match the "Contoso Group" search query. - - - - -------------------------- Example 2 -------------------------- - Find-CsGroup -SearchQuery "ed0d1180-169e-47c7-b718-bf9e60543914" -ExactMatchOnly $true - - This example finds and displays only those groups that are an exact match to the search query. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup - - - - - - Find-CsOnlineApplicationInstance - Find - CsOnlineApplicationInstance - - Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria. - - - - Use the Find-CsOnlineApplicationInstance cmdlet to find application instances that match your search criteria. - If MaxResults is not specified, the number of returned applications instances is limited to 10 application instances. - - - - Find-CsOnlineApplicationInstance - - AssociatedOnly - - > Applicable: Microsoft Teams - The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. - - - SwitchParameter - - - False - - - ExactMatchOnly - - > Applicable: Microsoft Teams - The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. - - - 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 - - - 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 - - UInt32 - - - 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 - - - UnAssociatedOnly - - > Applicable: Microsoft Teams - The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. - - - SwitchParameter - - - False - - - - - - AssociatedOnly - - > Applicable: Microsoft Teams - The AssociatedOnly parameter instructs the cmdlet to return only application instances that are associated to a configuration. - - SwitchParameter - - SwitchParameter - - - False - - - ExactMatchOnly - - > Applicable: Microsoft Teams - The ExactMatchOnly parameter instructs the cmdlet to return exact matches only. The default value is false. - - 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 - - - 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 - - UInt32 - - - 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 - - - UnAssociatedOnly - - > Applicable: Microsoft Teams - The UnAssociatedOnly parameter instructs the cmdlet to return only application instances that are not associated to any configuration. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.FindApplicationInstanceResult - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Find-CsOnlineApplicationInstance -SearchQuery "Test" - - This example returns up to 10 application instances whose name starts with "Test". - - - - -------------------------- Example 2 -------------------------- - Find-CsOnlineApplicationInstance -SearchQuery "Test" -MaxResults 5 - - This example returns up to 5 application instances whose name starts with "Test". - - - - -------------------------- Example 3 -------------------------- - Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -ExactMatchOnly - - This example returns up to 10 application instances whose name is "Test Auto Attendant". - - - - -------------------------- Example 4 -------------------------- - Find-CsOnlineApplicationInstance -SearchQuery "Test Auto Attendant" -AssociatedOnly - - This example returns up to 10 application instances whose name is "Test Auto Attendant", and who are associated with an application configuration, like auto attendant or call queue. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance - - - Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance - - - New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance - - - Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance - - - Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance - - - - - - Get-CsApplicationAccessPolicy - Get - CsApplicationAccessPolicy - - Retrieves information about the application access policy configured for use in the tenant. - - - - This cmdlet retrieves information about the application access policy configured for use in the tenant. - - - - Get-CsApplicationAccessPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - A filter that is not expressed in the standard wildcard language. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - Filter - - A filter that is not expressed in the standard wildcard language. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - - - - - - - ----------- Retrieve all application access policies ----------- - PS C:\> Get-CsApplicationAccessPolicy - - The command shown above returns information of all application access policies that have been configured for use in the tenant. - - - - --------- Retrieve specific application access policy --------- - PS C:\> Get-CsApplicationAccessPolicy -Identity "ASimplePolicy" - - In the command shown above, information is returned for a single application access policy: the policy with the Identity ASimplePolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationaccesspolicy - - - New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy - - - Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy - - - - - - Get-CsApplicationMeetingConfiguration - Get - CsApplicationMeetingConfiguration - - Retrieves information about the application meeting configuration settings configured for the tenant. - - - - This cmdlet retrieves information about the application meeting configuration settings configured for the tenant. - - - - Get-CsApplicationMeetingConfiguration - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - String - - - None - - - 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 - - - False - - - - - - 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 - - String - - - None - - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.PlatformApplications.ApplicationMeetingConfiguration - - - - - - - - - - - - - - Retrieve application meeting configuration settings for the tenant. - PS C:\> Get-CsApplicationMeetingConfiguration - - The command shown above returns application meeting configuration settings that have been configured for the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-CsApplicationMeetingConfiguration - - - Set-CsApplicationMeetingConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationmeetingconfiguration - - - - - - Get-CsAutoAttendant - Get - CsAutoAttendant - - Use the Get-CsAutoAttendant cmdlet to get information about your Auto Attendants (AA). - - - - The Get-CsAutoAttendant cmdlet returns information about the AAs in your organization. - - - - Get-CsAutoAttendant - - 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 - - System.String - - - None - - - Descending - - > Applicable: Microsoft Teams - If specified, the retrieved auto attendants would be sorted in descending order. - - - SwitchParameter - - - False - - - ExcludeContent - - > Applicable: Microsoft Teams - If specified, only auto attendants' names, identities and associated application instances will be retrieved. - - - SwitchParameter - - - False - - - First - - > 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 - - System.UInt32 - - - None - - - IncludeStatus - - > Applicable: Microsoft Teams - If specified, the status records for each auto attendant in the result set are also retrieved. - - - SwitchParameter - - - False - - - NameFilter - - > Applicable: Microsoft Teams - If specified, only auto attendants whose names match that value would be returned. - - System.String - - System.String - - - None - - - Skip - - > 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 - - System.UInt32 - - - None - - - SortBy - - > Applicable: Microsoft Teams - If specified, the retrieved auto attendants would be sorted by the specified property. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Descending - - > Applicable: Microsoft Teams - If specified, the retrieved auto attendants would be sorted in descending order. - - SwitchParameter - - SwitchParameter - - - False - - - ExcludeContent - - > Applicable: Microsoft Teams - If specified, only auto attendants' names, identities and associated application instances will be retrieved. - - SwitchParameter - - SwitchParameter - - - False - - - First - - > 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 - - System.UInt32 - - - None - - - 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 - - System.String - - - None - - - IncludeStatus - - > Applicable: Microsoft Teams - If specified, the status records for each auto attendant in the result set are also retrieved. - - SwitchParameter - - SwitchParameter - - - False - - - NameFilter - - > Applicable: Microsoft Teams - If specified, only auto attendants whose names match that value would be returned. - - System.String - - System.String - - - None - - - Skip - - > 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 - - System.UInt32 - - - None - - - SortBy - - > Applicable: Microsoft Teams - If specified, the retrieved auto attendants would be sorted by the specified property. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Get-CsAutoAttendant cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendant - - This example gets the first 100 auto attendants in the organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsAutoAttendant -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - -# Id : f7a821dc-2d69-5ae8-8525-bcb4a4556093 -# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 -# Name : Main Auto Attendant -# LanguageId : en-US -# VoiceId : Female -# DefaultCallFlow : Default Call Flow -# Operator : -# TimeZoneId : Pacific Standard Time -# VoiceResponseEnabled : False -# CallFlows : -# Schedules : -# CallHandlingAssociations : -# Status : -# DialByNameResourceId : -# DirectoryLookupScope : -# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18, c7af9c3c-ae40-455d-a37c-aeec771e623d} - - This example gets the AA that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - -------------------------- Example 3 -------------------------- - Get-CsAutoAttendant -First 10 - - This example gets the first ten auto attendants configured for use in the organization. - - - - -------------------------- Example 4 -------------------------- - Get-CsAutoAttendant -Skip 5 -First 10 - - This example skips initial 5 auto attendants and gets the next 10 AAs configured in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus - - - New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant - - - Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant - - - Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant - - - Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant - - - - - - Get-CsAutoAttendantHolidays - Get - CsAutoAttendantHolidays - - Use Get-CsAutoAttendantHolidays cmdlet to get the holiday information for an existing Auto Attendant (AA). - - - - The Get-CsAutoAttendantHolidays provides a convenient way to visualize the information of all the holidays contained within an auto attendant. - - - - Get-CsAutoAttendantHolidays - - Identity - - > Applicable: Microsoft Teams - 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 - - - False - - - 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] - - System.Collections.Generic.List[System.Int32] - - - 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 - - - - - - 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 - Represents the identifier for the auto attendant whose holidays are to be retrieved. - - System.String - - System.String - - - None - - - 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] - - System.Collections.Generic.List[System.Int32] - - - 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 - - - - - - System.String - - - The Get-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.OAA.Models.HolidayVisRecord - - - - - - - - - The DateTimeRanges parameter in the output needs to be explicitly referenced to show the value. See Example 4 for one way of doing it. - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - - In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - -------------------------- Example 2 -------------------------- - Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) - - In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get all holidays in year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - -------------------------- Example 3 -------------------------- - Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) -Names @("Christmas") - - In this example, the Get-CsAutoAttendantHolidays cmdlet is used to get holiday named Christmas in the year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - -------------------------- Example 4 -------------------------- - (Get-CsAutoAttendantHolidays -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -Years @(2017) -Names @("Christmas")).DateTimeRanges - - In this example, the Get-CsAutoAttendantHolidays cmdlet is used to retrieve the DateTimeRanges for the holiday named Christmas in the year 2017 in an auto attendant with Identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays - - - Import-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays - - - Export-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays - - - - - - Get-CsAutoAttendantStatus - Get - CsAutoAttendantStatus - - Use Get-CsAutoAttendantStatus cmdlet to get the status of an Auto Attendant (AA) provisioning. - - - - This cmdlet provides a way to return the provisioning status of an auto attendant configured for use in your organization. - - - - Get-CsAutoAttendantStatus - - Identity - - > Applicable: Microsoft Teams - Represents the identifier for the auto attendant whose provisioning status is to be retrieved. - - System.String - - System.String - - - None - - - 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. - - - AudioFile - DialByNameVoiceResponses - SipProvisioning - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - Represents the identifier for the auto attendant whose provisioning status is to be retrieved. - - System.String - - System.String - - - None - - - 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. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Get-CsAutoAttendantStatus cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.OAA.Models.StatusRecord - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - - In Example 1, the Get-CsAutoAttendantStatus cmdlet is used to get status records for all resources of an auto attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - -------------------------- Example 2 -------------------------- - Get-CsAutoAttendantStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" -IncludeResources @("AudioFile") - - In Example 2, the Get-CsAutoAttendantStatus cmdlet is used to get status records pertaining to audio files only of an auto attendant with identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus - - - Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - - - - Get-CsAutoAttendantSupportedLanguage - Get - CsAutoAttendantSupportedLanguage - - The Get-CsAutoAttendantSupportedLanguage cmdlet gets languages that are supported by the Auto Attendant (AA) service. - - - - The Get-CsAutoAttendantSupportedLanguage cmdlet gets all languages (and their corresponding voices/speakers) that are supported by the AA service, or a specific language if its Identity is provided. - - - - Get-CsAutoAttendantSupportedLanguage - - 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Get-CsAutoAttendantSupportedLanguage cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.Language - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendantSupportedLanguage - - This example gets all supported languages. - - - - -------------------------- Example 2 -------------------------- - Get-CsAutoAttendantSupportedLanguage -Identity "en-US" - - This example gets the language that the Identity parameter specifies (en-US). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage - - - - - - Get-CsAutoAttendantSupportedTimeZone - Get - CsAutoAttendantSupportedTimeZone - - The Get-CsAutoAttendantSupportedTimeZone cmdlet gets supported time zones for the Auto Attendant (AA) service. - - - - The Get-CsAutoAttendantSupportedTimeZone cmdlet gets all the time zones that the AA service supports, or a specific time zone if its Identity is provided. - - - - Get-CsAutoAttendantSupportedTimeZone - - 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - System.String - - - The Get-CsAutoAttendantSupportedTimeZone cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.TimeZone - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendantSupportedTimeZone - - This example gets all supported time zones. - - - - -------------------------- Example 2 -------------------------- - Get-CsAutoAttendantSupportedTimeZone -Identity "Pacific Standard Time" - - This example gets the timezone that the Identity parameter specifies (Pacific Standard Time). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone - - - - - - Get-CsAutoAttendantTenantInformation - Get - CsAutoAttendantTenantInformation - - Gets the default tenant information for Auto Attendant (AA) feature. - - - - The Get-CsAutoAttendantTenantInformation cmdlet gets the default tenant information for Auto Attendant (AA) feature. - - - - Get-CsAutoAttendantTenantInformation - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.TenantInformation - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsAutoAttendantTenantInformation - - Gets the default auto attendant information for the logged in tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendanttenantinformation - - - - - - Get-CsBatchPolicyAssignmentOperation - Get - CsBatchPolicyAssignmentOperation - - This cmdlet is used to retrieve the status of batch policy assignment operations. - - - - This cmdlets returns the status of all batch policy assignment operations for the last 30 days. If an operation ID is specified, the detailed status for that operation is returned including the status for each user in the batch. - - - - Get-CsBatchPolicyAssignmentOperation - - 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 - - - Identity - - The ID of a batch policy assignment operation. - - 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 - - - - Get-CsBatchPolicyAssignmentOperation - - 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 - - - Status - - Option filter - - String - - String - - - 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 - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - Identity - - The ID of a batch policy assignment operation. - - 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 - - SwitchParameter - - - False - - - Status - - Option filter - - String - - String - - - None - - - - - - - OperationId - - - The ID of the operation that can be used with the Get-CsBatchPolicyAssignmentOperation cmdlet to get the status of the operation. - - - - - CompletedCount - - - The number of users in the batch for which the assignment has been completed (possibly with an error). - - - - - CompletedTime - - - The date and time when the operation was completed. - - - - - CreatedTime - - - The date and time when the operation was created. - - - - - ErrorCount - - - The number of users in the batch for which the assignment failed. - - - - - InProgressCount - - - The number of users in the batch for which the assignment is in progress. - - - - - NotStartedCount - - - The number of users in the batch for which the assignment has not yet been performed. - - - - - OperationId - - - The ID of the operation. - - - - - OperationName - - - The name of the operation, if one was specific when the operation was created. - - - - - OverallStatus - - - The overall status of the operations: NotStarted, InProgress, Complete - - - - - UserState - - - Contains the status for each user in the batch. Id: The ID of the user as specified when the batch was submitted. Either the user object ID (guid) or UPN/SIP/email. result: The result of the assignment operation for the user: Success or an error. Some common errors include: - User not found. Check the ID or SIP address of the user to confirm it is correct. If the UPN or email address was used, but it does not match the SIP address, then the user will not be found. - - Multiple users found with a given SIP address. This is typically a result of on-prem to cloud sync. Check your directory and update the affected users. - - User invalid. If you are syncing users from on-prem to the cloud, some users might not have been synced properly and are in an invalid state. Check the sync status for the user. - - User ineligible for the policy or missing a necessary license. Check the documentation for the specific policy type being assigned to understand the requirements and update the user accordingly. - - The policy settings are incorrect. Check the documentation for the specific policy type being assigned to understand the requirements and update the policy accordingly. - - Unknown errors. In rare cases, there can be transient system errors that failed on all initial retry attempts during batch process. Resubmit these users in a separate batch. state: The status for the user: NotStarted, InProgress, Completed - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Get-CsBatchPolicyAssignmentOperation - -OperationId OperationName OverallStatus CreatedTime CreatedBy ------------ ------------- ------------- ----------- --------- -e640a5c9-c74f-4df7-b62e-4b01ae878bdc Assigning Kiosk mtg Completed 1/30/2020 3:21:07 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -01b9b2b7-5dbb-487c-b4ea-887c7c66559c Assigning allow calling Completed 1/30/2020 3:55:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -47bbc636-365d-4441-af34-9e0eceb05ef1 Completed 1/30/2020 4:14:22 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - - In this example, the status of all batch assignment operations is returned. - - - - -------------------------- EXAMPLE 2 -------------------------- - Get-CsBatchPolicyAssignmentOperation -OperationId 01b9b2b7-5dbb-487c-b4ea-887c7c66559c | fl - -OperationId : 01b9b2b7-5dbb-487c-b4ea-887c7c66559c -OperationName : Assigning allow calling -OverallStatus : Completed -CreatedBy : aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -CreatedTime : 1/30/2020 3:55:16 PM -CompletedTime : 1/30/2020 3:59:06 PM -CompletedCount : 3 -ErrorCount : 1 -InProgressCount : 0 -NotStartedCount : 0 -UserState : {f0d9c148-27c1-46f5-9685-544d20170ea1, cc05e18d-5fc0-4096-8461-ded64d7356e0, - bcff5b7e-8d3c-4721-b34a-63552a6a53f9} - - In this example, the details of a specific operation are returned. - - - - -------------------------- EXAMPLE 3 -------------------------- - Get-CsBatchPolicyAssignmentOperation -OperationId 001141c3-1daa-4da1-88e9-66cc01c511e1 | Select -ExpandProperty UserState - -Id Result State --- ------ ----- -f0d9c148-27c1-46f5-9685-544d20170ea1 Success Completed -cc05e18d-5fc0-4096-8461-ded64d7356e0 Success Completed -bcff5b7e-8d3c-4721-b34a-63552a6a53f9 User not found Completed - - In this example, the UserState property is expanded to see the status of each user in the batch. In this example, one of the users was not found. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation - - - New-CsBatchPolicyAssignmentOperation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation - - - - - - Get-CsBatchTeamsDeploymentStatus - Get - CsBatchTeamsDeploymentStatus - - This cmdlet is used to get the status of the batch deployment orchestration. - - - - After deploying teams using New-CsBatchTeamsDeployment, an admin can check the status of the job/orchestration using Get-CsBatchTeamsDeploymentStatus. - To learn more, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). - - - - Get-CsBatchTeamsDeploymentStatus - - OrchestrationId - - This ID is generated when a batch deployment is submitted with the New-CsBatchTeamsDeployment cmdlet. - - String - - String - - - None - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - OrchestrationId - - This ID is generated when a batch deployment is submitted with the New-CsBatchTeamsDeployment cmdlet. - - String - - String - - - None - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - - Status of the orchestrationId - - - Running: The orchestration is running. Completed: The orchestration is completed, either succeeded, partially succeeded, or failed. - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Get-CsBatchTeamsDeploymentStatus -OrchestrationId "My-Orchestration-Id" - - This command provides the status of the specified batch deployment orchestrationId. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/Get-CsBatchTeamsDeploymentStatus - - - New-CsBatchTeamsDeployment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment - - - - - - Get-CsCallingLineIdentity - Get - CsCallingLineIdentity - - Use the `Get-CsCallingLineIdentity` cmdlet to display the Caller ID policies for your organization. - - - - Use the `Get-CsCallingLineIdentity` cmdlet to display the Caller ID policies for your organization. - - - - Get-CsCallingLineIdentity - - Filter - - > Applicable: Microsoft Teams - The Filter parameter lets you insert a string through which your search results are filtered. - - String - - String - - - None - - - - Get-CsCallingLineIdentity - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - The Filter parameter lets you insert a string through which your search results are filtered. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsCallingLineIdentity - - The example gets and displays the Caller ID policies for your organization. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsCallingLineIdentity -Filter "tag:Sales*" - - The example gets and displays the Caller ID policies with Identity starting with Sales. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity - - - Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity - - - Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity - - - New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity - - - Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity - - - - - - Get-CsCallQueue - Get - CsCallQueue - - The Get-CsCallQueue cmdlet returns the identified Call Queues. - - - - The Get-CsCallQueue cmdlet lets you retrieve information about the Call Queues in your organization. Call Queue output contains statistical data on the number of active calls that are in the queue. - - - - Get-CsCallQueue - - Descending - - > Applicable: Microsoft Teams - The Descending parameter sorts Call Queues in descending order - - - SwitchParameter - - - False - - - ExcludeContent - - > Applicable: Microsoft Teams - The ExcludeContent parameter only displays the Name and Id of the Call Queues - - - SwitchParameter - - - False - - - First - - > 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 - - Int32 - - - 100 - - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - NameFilter - - > Applicable: Microsoft Teams - The NameFilter parameter returns Call Queues where name contains specified string - - String - - String - - - None - - - Skip - - > 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 - - Int32 - - - None - - - Sort - - > Applicable: Microsoft Teams - The Sort parameter specifies the property used to sort. - - String - - String - - - Name - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Descending - - > Applicable: Microsoft Teams - The Descending parameter sorts Call Queues in descending order - - SwitchParameter - - SwitchParameter - - - False - - - ExcludeContent - - > Applicable: Microsoft Teams - The ExcludeContent parameter only displays the Name and Id of the Call Queues - - SwitchParameter - - SwitchParameter - - - False - - - First - - > 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 - - Int32 - - - 100 - - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - NameFilter - - > Applicable: Microsoft Teams - The NameFilter parameter returns Call Queues where name contains specified string - - String - - String - - - None - - - Skip - - > 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 - - Int32 - - - None - - - Sort - - > Applicable: Microsoft Teams - The Sort parameter specifies the property used to sort. - - String - - String - - - Name - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - - Represents the unique identifier of a Call Queue. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsCallQueue - - This example gets the first 100 call queues in the organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsCallQueue -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - This example gets the Call Queue with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Call Queue 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-cscallqueue - - - - - - Get-CsCloudCallDataConnection - Get - CsCloudCallDataConnection - - This cmdlet retrieves an already existing online call data connection. - - - - This cmdlet retrieves an already existing online call data connection. Output of this cmdlet contains a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. - - - - Get-CsCloudCallDataConnection - - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The Get-CsCloudCallDataConnection cmdlet is only supported in commercial environments from Teams PowerShell Module versions 4.6.0 or later. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsCloudCallDataConnection - -Token ------ -00000000-0000-0000-0000-000000000000 - - Returns a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscloudcalldataconnection - - - Configure Call Data Connector - https://learn.microsoft.com/skypeforbusiness/hybrid/configure-call-data-connector - - - 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 - - - - - - - Get-CsDialPlan - Get - CsDialPlan - - Returns information about the dial plans used in your organization. This cmdlet was introduced in Lync Server 2010. - - - - This cmdlet returns information about one or more dial plans (also known as a location profiles) in an organization. Dial plans provide information required to enable Enterprise Voice users to make telephone calls. Dial plans are also used by the Conferencing Attendant application for dial-in conferencing. A dial plan determines such things as which normalization rules are applied and whether a prefix must be dialed for external calls. - Note: You can use the Get-CsDialPlan cmdlet to retrieve specific information about the normalization rules of a dial plan, but if that's the only dial plan information you need, you can also use the Get-CsVoiceNormalizationRule cmdlet. - - - - Get-CsDialPlan - - 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 - - XdsIdentity - - - None - - - 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 - - String - - - None - - - 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 - - - False - - - Tenant - - > Applicable: Skype for Business Online - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - 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 - - String - - - None - - - 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 - - XdsIdentity - - - None - - - 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 - - SwitchParameter - - - False - - - Tenant - - > Applicable: Skype for Business Online - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Policy.Voice.LocationProfile - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsDialPlan - - Example 1 returns a collection of all the dial plans configured for use in your organization; this is done by calling the Get-CsDialPlan cmdlet without any additional parameters. - - - - -------------------------- Example 2 -------------------------- - Get-CsDialPlan -Identity RedmondDialPlan - - In Example 2, the Identity parameter is used to limit the retrieved data to dial plans that have a per-user dial plan with the Identity RedmondDialPlan. Because identities must be unique, this command will return only the specified dial plan. - - - - -------------------------- Example 3 -------------------------- - Get-CsDialPlan -Identity site:Redmond - - Example 3 is identical to Example 2 except that instead of retrieving a per-user dial plan, we're retrieving a dial plan assigned to a site. We do that by specifying the value site: followed by the site name (in this case Redmond) of the site we want to retrieve. - - - - -------------------------- Example 4 -------------------------- - Get-CsDialPlan -Filter tag:* - - This example uses the Filter parameter to return a collection of all the dial plans that have been configured at the per-user scope. (Settings configured at the per-user, or tag, scope can be directly assigned to users and groups.) The wildcard string tag:* instructs the cmdlet to return only those dial plans that have an identity beginning with the string value tag:, which identifies a dial plan as a per-user dial plan. - - - - -------------------------- Example 5 -------------------------- - Get-CsDialPlan | Select-Object -ExpandProperty NormalizationRules - - This example displays the normalization rules used by the dial plans configured for use in your organization. Because the NormalizationRules property consists of an array of objects, the complete set of normalization rules is typically not displayed on screen. To see all of these rules, this sample command first uses the Get-CsDialPlan cmdlet to retrieve a collection of all the dial plans. That collection is then piped to the Select-Object cmdlet; in turn, the ExpandProperty parameter of the Select-Object cmdlet is used to "expand" the values found in the NormalizationRules property. Expanding the values simply means that all the normalization rules will be listed out individually on the screen, the same output that would be seen if the Get-CsVoiceNormalizationRule cmdlet had been called. - - - - -------------------------- Example 6 -------------------------- - Get-CsDialPlan | Where-Object {$_.Description -match "Redmond"} - - In Example 6, the Get-CsDialPlan cmdlet and the Where-Object cmdlet are used to retrieve a collection of all the dial plans that include the word Redmond in their description. To do this, the command first uses the Get-CsDialPlan cmdlet to retrieve all the dial plans. That collection is then piped to the Where-Object cmdlet, which applies a filter that limits the returned data to profiles that have the word Redmond somewhere in their Description. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan - - - New-CsDialPlan - - - - Remove-CsDialPlan - - - - Set-CsDialPlan - - - - Grant-CsDialPlan - - - - Test-CsDialPlan - - - - Get-CsVoiceNormalizationRule - - - - - - - Get-CsEffectiveTenantDialPlan - Get - CsEffectiveTenantDialPlan - - Use the Get-CsEffectiveTenantDialPlan cmdlet to retrieve an effective tenant dial plan. - - - - The Get-CsEffectiveTenantDialPlan cmdlet returns information about the effective tenant dial plan in an organization. The returned effective Tenant Dial Plan contains the EffectiveTenantDialPlanName and the Normalization rules that are effective for the user while using the EnterpriseVoice features. The EffectiveTenantDialPlanName is in the form TenantGUID_GlobalVoiceDialPlan_TenantDialPlan. - - - - Get-CsEffectiveTenantDialPlan - - 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 - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - - - OU - - > 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 - - OUIdParameter - - - None - - - ResultSize - - > 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 - - Int32 - - - 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 - - - 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 - - > 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 - - OUIdParameter - - - None - - - ResultSize - - > 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 - - Int32 - - - 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 -------------------------- - Get-CsEffectiveTenantDialPlan -Identity Vt1_User1 - - This example gets the effective tenant dial plan for the Vt1_User1. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cseffectivetenantdialplan - - - - - - Get-CsExportAcquiredPhoneNumberStatus - Get - CsExportAcquiredPhoneNumberStatus - - 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/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. - - - - Get-CsExportAcquiredPhoneNumberStatus - - OrderId - - The orderId of the ExportAcquiredNumberStatus cmdlet. - - String - - String - - - None - - - - - - OrderId - - The orderId of the ExportAcquiredNumberStatus cmdlet. - - String - - String - - - None - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse - - - - - - - - - The cmdlet is available in Teams PowerShell module 6.1.0 or later. - The cmdlet is only available in commercial and GCC cloud instances. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsExportAcquiredPhoneNumberStatus -OrderId 0e923e2c-ab0e-4b7a-be5a-906be8c - -Id : 0e923e2c-ab0e-4b7a-be5a-906be8c -CreatedAt : 2024-08-29 21:50:54Z -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/microsoftteams/export-csacquiredphonenumber)cmdlet. The status contains the download link for the file along with expiry date. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsExportAcquiredPhoneNumberStatus -OrderId $orderId - -Id : 0e923e2c-ab0e-4b7a-be5a-906be8c -CreatedAt : 2024-08-29 21:50:54Z -status : Success -DownloadLinkExpiry : 2024-08-29 22:51:17Z -DownloadLink : <link> - - This example displays the status of the export acquired phone numbers operation with the use of a variable named "orderId". - - - - -------------------------- Example 3 -------------------------- - PS C:\> $order = Get-CsExportAcquiredPhoneNumberStatus -OrderId $orderId -PS C:\> $order - -Id : 0e923e2c-ab0e-4b7a-be5a-906be8c -CreatedAt : 2024-08-29 21:50:54Z -status : Success -DownloadLinkExpiry : 2024-08-29 22:51:17Z -DownloadLink : <link> - - 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/microsoftteams/get-csexportacquiredphonenumberstatus - - - - - - Get-CsGroupPolicyAssignment - Get - CsGroupPolicyAssignment - - This cmdlet is used to return group policy assignments. - - - - This cmdlets returns group policy assignments. Optional parameters allow the results to be restricted to policies assigned to a specific group or policies of a specific type. - - - - Get-CsGroupPolicyAssignment - - GroupId - - The ID of a group whose policy assignments will be returned. - - String - - String - - - None - - - PolicyType - - The policy type for which group policy assignments will be returned. Possible values: - ApplicationAccessPolicy CallingLineIdentity ExternalAccessPolicy OnlineAudioConferencingRoutingPolicy OnlineVoicemailPolicy OnlineVoiceRoutingPolicy TeamsAppSetupPolicy TeamsAudioConferencingPolicy TeamsCallHoldPolicy TeamsCallingPolicy TeamsCallParkPolicy TeamsChannelsPolicy TeamsComplianceRecordingPolicy TeamsCortanaPolicy TeamsEmergencyCallingPolicy TeamsEmergencyCallRoutingPolicy TeamsEnhancedEncryptionPolicy TeamsEventsPolicy TeamsFeedbackPolicy TeamsFilesPolicy TeamsIPPhonePolicy TeamsMediaLoggingPolicy TeamsMeetingBrandingPolicy TeamsMeetingBroadcastPolicy TeamsMeetingPolicy TeamsMeetingTemplatePermissionPolicy TeamsMessagingPolicy TeamsMobilityPolicy TeamsRoomVideoTeleConferencingPolicy TeamsSharedCallingRoutingPolicy TeamsShiftsPolicy TeamsUpdateManagementPolicy TeamsVdiPolicy TeamsVideoInteropServicePolicy TeamsVirtualAppointmentsPolicy TenantDialPlan - - String - - String - - - None - - - - - - GroupId - - The ID of a group whose policy assignments will be returned. - - String - - String - - - None - - - PolicyType - - The policy type for which group policy assignments will be returned. Possible values: - ApplicationAccessPolicy CallingLineIdentity ExternalAccessPolicy OnlineAudioConferencingRoutingPolicy OnlineVoicemailPolicy OnlineVoiceRoutingPolicy TeamsAppSetupPolicy TeamsAudioConferencingPolicy TeamsCallHoldPolicy TeamsCallingPolicy TeamsCallParkPolicy TeamsChannelsPolicy TeamsComplianceRecordingPolicy TeamsCortanaPolicy TeamsEmergencyCallingPolicy TeamsEmergencyCallRoutingPolicy TeamsEnhancedEncryptionPolicy TeamsEventsPolicy TeamsFeedbackPolicy TeamsFilesPolicy TeamsIPPhonePolicy TeamsMediaLoggingPolicy TeamsMeetingBrandingPolicy TeamsMeetingBroadcastPolicy TeamsMeetingPolicy TeamsMeetingTemplatePermissionPolicy TeamsMessagingPolicy TeamsMobilityPolicy TeamsRoomVideoTeleConferencingPolicy TeamsSharedCallingRoutingPolicy TeamsShiftsPolicy TeamsUpdateManagementPolicy TeamsVdiPolicy TeamsVideoInteropServicePolicy TeamsVirtualAppointmentsPolicy TenantDialPlan - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsGroupPolicyAssignment - -GroupId PolicyType PolicyName Rank CreatedTime CreatedBy -------- ---------- ---------- ---- ----------- --------- -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingBroadcastPolicy Vendor Live Events 1 10/25/2019 12:40:09 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 TeamsMeetingPolicy AllOn 1 10/29/2019 3:57:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2019 12:54:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -19b881b4-c54c-4075-b1e8-a6ce55b12818 TeamsMeetingPolicy Kiosk 2 11/1/2019 8:22:06 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -0c0c1b45-bfc9-4718-b8ae-291439ac6fa4 TeamsCallingPolicy AllowCalling 2 11/1/2019 10:51:43 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -19c4909c-7d34-4e1f-b736-47caa2205768 TeamsMeetingBroadcastPolicy Employees Events 2 11/4/2019 12:56:57 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy DisallowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - - - - - - -------------------------- Example 2 -------------------------- - Get-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 - -GroupId PolicyType PolicyName Rank CreatedTime CreatedBy -------- ---------- ---------- ---- ----------- --------- -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingBroadcastPolicy Vendor Live Events 1 10/25/2019 12:40:09 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy AllowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsMeetingPolicy kiosk 7 11/2/2019 12:14:41 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - - - - - - -------------------------- Example 3 -------------------------- - GroupId PolicyType PolicyName Rank CreatedTime CreatedBy -------- ---------- ---------- ---- ----------- --------- -e2a3ed24-97be-494d-8d3c-dbc04cbb878a TeamsCallingPolicy AllowCalling 1 11/4/2019 12:54:27 AM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -0c0c1b45-bfc9-4718-b8ae-291439ac6fa4 TeamsCallingPolicy AllowCalling 2 11/1/2019 10:51:43 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 -566b8d39-5c5c-4aaa-bc07-4f36278a1b38 TeamsCallingPolicy AllowCalling 3 11/1/2019 10:53:16 PM aeb7c0e7-2f6d-43ef-bf33-bfbcb93fdc64 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment - - - New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - - - Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment - - - - - - Get-CsHybridTelephoneNumber - Get - 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 (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 - - 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 - - The identity parameter. - - 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 - - - - 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 - - - - - - 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 - - - InputObject - - The identity parameter. - - 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 - - - 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 - - - - - - None - - - - - - - - - - None - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.5.0 or later. - The cmdlet is only available in GCC High and DoD cloud instances. - - - - - -------------------------- Example 1 -------------------------- - Get-CsHybridTelephoneNumber -TelephoneNumber 14025551234 - -Id O365Region SourceType TargetType TelephoneNumber UserId --- ---------- ---------- ---------- --------------- ------ -14025551234 NOAM Hybrid 14025551234 00000000-0000-0000-0000-000000000000 - - This example displays information about the phone number +1 (402) 555-1234. - - - - -------------------------- Example 2 -------------------------- - Get-CsHybridTelephoneNumber - -Id O365Region SourceType TargetType TelephoneNumber UserId --- ---------- ---------- ---------- --------------- ------ -14025551234 Hybrid 14025551234 -14025551235 Hybrid 14025551235 - - This example displays information about all hybrid telephone numbers in the tenant. Note that O365Region, TargetType, and UserId will not be populated. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber - - - New-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber - - - Remove-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber - - - - - - Get-CsInboundBlockedNumberPattern - Get - CsInboundBlockedNumberPattern - - Returns a list of all blocked number patterns added to the tenant list. - - - - This cmdlet returns a list of all blocked number patterns added to the tenant list including Name, Description, Enabled (True/False), and Pattern for each. - - - - Get-CsInboundBlockedNumberPattern - - Filter - - Enables you to limit the returned data by filtering on the Identity. - - String - - String - - - None - - - - Get-CsInboundBlockedNumberPattern - - Identity - - Indicates the Identity of the blocked number patterns to return. - - String - - String - - - None - - - - - - Filter - - Enables you to limit the returned data by filtering on the Identity. - - String - - String - - - None - - - Identity - - Indicates the Identity of the blocked number patterns to return. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> Get-CsInboundBlockedNumberPattern - - In this example, the Get-CsInboundBlockedNumberPattern cmdlet is called without any parameters in order to return all the blocked number patterns. - - - - -------------------------- Example 2 -------------------------- - PS> Get-CsInboundBlockedNumberPattern -Filter Block* - - In this example, the Get-CsInboundBlockedNumberPattern cmdlet will return all the blocked number patterns which identity starts with Block. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern - - - New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern - - - Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern - - - Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern - - - - - - Get-CsInboundExemptNumberPattern - Get - CsInboundExemptNumberPattern - - Returns a specific or the full list of all number patterns exempt from call blocking. - - - - This cmdlet returns a specific or all exempt number patterns added to the tenant list for call blocking including Name, Description, Enabled (True/False), and Pattern for each. - - - - Get-CsInboundExemptNumberPattern - - Filter - - Enables you to limit the returned data by filtering on Identity. - - String - - String - - - None - - - - Get-CsInboundExemptNumberPattern - - Identity - - Unique identifier for the exempt number pattern to be listed. - - String - - String - - - None - - - - - - Filter - - Enables you to limit the returned data by filtering on Identity. - - String - - String - - - None - - - Identity - - Unique identifier for the exempt number pattern to be listed. - - String - - String - - - None - - - - - - - You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. - - - - - -------------------------- Example 1 -------------------------- - PS>Get-CsInboundExemptNumberPattern - - This returns all exempt number patterns. - - - - -------------------------- Example 2 -------------------------- - PS>Get-CsInboundExemptNumberPattern -Identity "Exempt1" - - This returns the exempt number patterns with Identity Exempt1. - - - - -------------------------- Example 3 -------------------------- - PS>Get-CsInboundExemptNumberPattern -Filter "Exempt*" - - This example returns the exempt number patterns with Identity starting with Exempt. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern - - - New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern - - - Set-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern - - - Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - - - - - - Get-CsMainlineAttendantAppointmentBookingFlow - Get - CsMainlineAttendantAppointmentBookingFlow - - The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet returns the identified Mainline attendant appointment booking flow. - - - - The Get-CsMainlineAttendantAppointmentBookingFlow cmdlet lets you retrieve information about the Mainline attendant appointment booking flows n your organization. - - - - Get-CsMainlineAttendantAppointmentBookingFlow - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - 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 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. - - 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 appointment booking flows where the name contains specified string - - String - - String - - - None - - - - - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - 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 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. - - 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 appointment booking flows where the name contains specified string - - String - - String - - - None - - - - - - Identity - - - Represents the unique identifier of an appointment booking flow. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsMainlineAttendantAppointmentBookingFlow - - This example gets the first 100 Mainline attendant appointment booking flows in the organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - 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/microsoftteams/get-csmainlineattendantappointmentbookingflow - - - - - - Get-CsMainlineAttendantFlow - Get - CsMainlineAttendantFlow - - The Get-CsMainlineAttendantFlow cmdlet returns information about the Mainline Attendant flows configured in your organization - - - - 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-CsMainlineAttendantFlow - - ConfigurationId - - The Mainline Attendant configuration Id - - String - - String - - - None - - - Type - - The Mainline Attendant flow type - PARAMVALUE: AppointmentBooking | QuestionAnswer - - String - - String - - - None - - - Identity - - The Mainline Attendant identity - - String - - 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 - - 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. - - Int32 - - Int32 - - - None - - - SortBy - - The SortBy parameter specifies the property used to sort. - - String - - String - - - Name - - - Descending - - The Descending parameter sorts Mainline Attendant flows in descending order - - - SwitchParameter - - - False - - - NameFilter - - The NameFilter parameter returns appointment booking flows where the name contains specified string - - String - - String - - - None - - - - - - ConfigurationId - - The Mainline Attendant configuration Id - - String - - String - - - None - - - Type - - The Mainline Attendant flow type - PARAMVALUE: AppointmentBooking | QuestionAnswer - - String - - String - - - None - - - Identity - - The Mainline Attendant identity - - String - - 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 - - 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. - - Int32 - - Int32 - - - None - - - SortBy - - The SortBy parameter specifies the property used to sort. - - String - - String - - - Name - - - Descending - - The Descending parameter sorts Mainline Attendant flows in descending order - - SwitchParameter - - SwitchParameter - - - False - - - NameFilter - - The NameFilter parameter returns appointment booking flows where the name contains specified string - - String - - String - - - None - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsMainlineAttendantFlow - - This example will list all the Mainline Attendant flows in the tenant. - - - - -------------------------- Example 2 -------------------------- - Get-CsMainlineAttendantFlow -ConfigurationId 0b31bbe5-e2a0-4117-9b6f-956bca6023f8 - - This example will list all the Mainline Attendant flows associated with the specific configuration id. - - - - -------------------------- Example 3 -------------------------- - Get-CsMainlineAttendantFlow -Type AppointmentBooking - - This example will list all the Mainline Attendant Appointment flows. - - - - -------------------------- Example 4 -------------------------- - Get-CsMainlineAttendantFlow -Type QuestionAnswer - - 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/microsoftteams/get-csmainlineattendantflow - - - - - - Get-CsMainlineAttendantQuestionAnswerFlow - Get - CsMainlineAttendantQuestionAnswerFlow - - The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet returns the identified Mainline attendant question and answer flow. - - - - The Get-CsMainlineAttendantQuestionAnswerFlow cmdlet lets you retrieve information about the Mainline attendant question and answer flows n your organization. - - - - Get-CsMainlineAttendantQuestionAnswerFlow - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - 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 - - - - - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - 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 - - - - - - Identity - - - Represents the unique identifier of a question and answer booking flow. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsMainlineAttendantQuestionAnswerFlow - - 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/microsoftteams/get-csmainlineattendantquestionanswerflow - - - - - - Get-CsMeetingMigrationStatus - Get - CsMeetingMigrationStatus - - You use the `Get-CsMeetingMigrationStatus` cmdlet to check the status of meeting migrations. - - - - 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-CsMeetingMigrationStatus - - 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 - - - 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 - - - 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 is to be retrieved. - - System.String - - System.String - - - None - - - 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 - - - None - - - - - - System.String - - - The Get-CsOnlineApplicationInstanceAssociationStatus cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.StatusRecord - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineApplicationInstanceAssociationStatus -Identity "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - - This example gets the provisioning status for the association object of the application instance that has the identity of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus - - - Get-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation - - - New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation - - - Remove-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation - - - - - - Get-CsOnlineAudioConferencingRoutingPolicy - Get - CsOnlineAudioConferencingRoutingPolicy - - This cmdlet retrieves all online audio conferencing routing policies for the tenant. - - - - Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. - To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." - The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. - Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - 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 - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - Identity - - The identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - 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 - - The identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineAudioConferencingRoutingPolicy - - Retrieves all Online Audio Conferencing Routing Policy instances - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudioconferencingroutingpolicy - - - New-CsOnlineAudioConferencingRoutingPolicy - - - - Remove-CsOnlineAudioConferencingRoutingPolicy - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - - - Set-CsOnlineAudioConferencingRoutingPolicy - - - - - - - Get-CsOnlineAudioFile - Get - CsOnlineAudioFile - - Returns information about a specific or all uploaded audio files of a given application type. - - - - This cmdlet returns information on a specific or all uploaded audio files of a given application type. If you are not specifying any parameters you will get information of all uploaded audio files with ApplicationId = TenantGlobal. - - - - Get-CsOnlineAudioFile - - ApplicationId - - 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 - - - Identity - - 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 - - - None - - - - - - ApplicationId - - 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 - - - Identity - - 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 - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 2.4.0-preview or later. - If you call the cmdlet without having uploaded any audio files, with a non-existing Identity or with an illegal ApplicationId, you will receive a generic error message. In addition, the ApplicationId is case sensitive. - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineAudioFile - -Id : 85364afb59a143fc9466979e0f34f749 -FileName : CustomMoH.mp3 -ApplicationId : TenantGlobal -MarkedForDeletion : False - - This returns information about all uploaded audio files with ApplicationId = TenantGlobal. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineAudioFile -ApplicationId HuntGroup -Identity dcfcc31daa9246f29d94d0a715ef877e - -Id : dcfcc31daa9246f29d94d0a715ef877e -FileName : SupportCQ.mp3 -ApplicationId : HuntGroup -MarkedForDeletion : False - - This cmdlet returns information about the audio file with Id dcfcc31daa9246f29d94d0a715ef877e and with ApplicationId = HuntGroup. - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineAudioFile -ApplicationId OrgAutoAttendant - -Id : 58083ae8bc9e4a66a6b2810b2e1f4e4e -FileName : MainAAAnnouncement.mp3 -ApplicationId : OrgAutoAttendant -MarkedForDeletion : False - - This cmdlet returns information about all uploaded audio files with ApplicationId = OrgAutoAttendant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile - - - Export-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - Remove-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile - - - - - - Get-CsOnlineDialInConferencingBridge - Get - CsOnlineDialInConferencingBridge - - Use the Get-CsOnlineDialInConferencingBridge cmdlet to view the settings on an audio conferencing bridge that is used when Microsoft is the audio conferencing provider. - - - - The Get-CsOnlineDialInConferencingBridge cmdlet is used to view all of the settings for all dial-in conferencing bridges or for a specific dial-in conferencing bridge. However, if the PSTN conferencing service status of the tenant is Disabled, no results will be displayed. - - - - Get-CsOnlineDialInConferencingBridge - - Identity - - > Applicable: Skype for Business Online - Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. - - Guid - - Guid - - - 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` - Computer name: - `-DomainController atl-cs-001` - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - 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 - - - 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 - - Guid - - - None - - - TenantDomain - - > Applicable: Skype for Business Online - This parameter is reserved for internal Microsoft use. - - 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` - Computer name: - `-DomainController atl-cs-001` - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - 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 - - SwitchParameter - - - 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 - - Guid - - - None - - - TenantDomain - - > Applicable: Skype for Business Online - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - - - - None - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialInConferencingBridge | fl - - This example shows how to return all of the audio conferencing bridges that are being used and returns the results in a formatted list. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineDialInConferencingBridge -Tenant 26efe125-c070-46f9-8ed0-fc02165a167c - - This example shows how to return all of the audio conferencing bridges for the given tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/get-csonlinedialinconferencingbridge - - - - - - Get-CsOnlineDialInConferencingLanguagesSupported - Get - CsOnlineDialInConferencingLanguagesSupported - - Use the Get-CsOnlineDialInConferencingLanguagesSupported cmdlet to view the list of languages that are supported when an organization uses Microsoft as the dial-in audio conferencing provider. - - - - The Get-CsOnlineDialInConferencingLanguagesSupported cmdlet is used to view the primary and secondary languages that are set for a dial-in conferencing service number. There is a primary language that is set along with secondary languages (up to 4) that can also be set. - Primary and secondary languages are those languages that are used to play prompts when a caller calls into a dial-in service number. When no languages are specified for a dial-in service number it will get the set of default languages. - - - - Get-CsOnlineDialInConferencingLanguagesSupported - - 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` - - Fqdn - - Fqdn - - - None - - - 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 - - - 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` - - Fqdn - - Fqdn - - - None - - - 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 - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialInConferencingLanguagesSupported | fl - - This example allows returns the list of supported languages when you are using Microsoft as your dial-in audio conferencing provider and displays them in a formatted list. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/get-csonlinedialinconferencinglanguagessupported - - - - - - Get-CsOnlineDialinConferencingPolicy - Get - CsOnlineDialinConferencingPolicy - - Retrieves the available Dial-in Conferencing policies in the tenant. - - - - Retrieves the available Dial-in Conferencing policies in the tenant. - - - - Get-CsOnlineDialinConferencingPolicy - - 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 - - XdsIdentity - - - None - - - 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 - - String - - - None - - - LocalStore - - > Applicable: Microsoft Teams - Reserved for Microsoft Internal use. - - - SwitchParameter - - - 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 - - String - - - None - - - 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 - - XdsIdentity - - - None - - - LocalStore - - > Applicable: Microsoft Teams - Reserved for Microsoft Internal use. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialinConferencingPolicy - - This example retrieves all the available Dial in Conferencing policies in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingpolicy - - - - - - Get-CsOnlineDialInConferencingServiceNumber - Get - CsOnlineDialInConferencingServiceNumber - - Use the Get-CsOnlineDialInConferencingServiceNumber cmdlet to return all of the default dial-in service numbers that are assigned to an Office 365 audio conferencing bridge. - - - - The Get-CsOnlineDialInConferencingServiceNumber cmdlet returns all of the dial-in service numbers for a given tenant or Office 365 organization that are assigned to an audio conferencing bridge. If the cmdlet is run by a tenant administrator for an organization, it will run within the tenant's scope. A tenant administrator can only retrieve and view information that is associated with their organization. - - - - Get-CsOnlineDialInConferencingServiceNumber - - Identity - - > Applicable: Microsoft Teams - Specifies the default dial-in service number string. - - 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 - - Guid - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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` - - Fqdn - - Fqdn - - - 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 - - - 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. - - Int32 - - Int32 - - - 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 - - Guid - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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` - - Fqdn - - Fqdn - - - 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 - - - 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. - - Int32 - - Int32 - - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialInConferencingServiceNumber | fl - - This example returns all of the default service numbers for an organization in a formatted list. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineDialInConferencingServiceNumber -BridgeId 72dfe128-d079-46f8-8tr0-gb12369p167c | fl - - This example returns all of the default service numbers for a specified audio conferencing bridge in a formatted list. - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineDialInConferencingBridge -Name "Conference Bridge" - - This example returns all of the default service numbers for the audio conferencing bridge named "Conference Bridge". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingservicenumber - - - - - - Get-CsOnlineDialinConferencingTenantConfiguration - Get - CsOnlineDialinConferencingTenantConfiguration - - Use the Get-CsOnlineDialinConferencingTenantConfiguration cmdlet to retrieve the tenant level configuration for dial-in conferencing. - - - - The dial-in conferencing configuration specifies only if dial-in conferencing is enabled for the tenant. By contrast, the dial-in conferencing tenant settings specify what functions are available during a conference call. For example, whether or not entries and exits from the call are announced. The settings also manage some of the administrative functions, such as when users get notification of administrative actions, like a PIN change. For more information on settings and their customization, see Set-CsOnlineDialInConferencingTenantSettings. - This cmdlet currently displays only the enabled or disabled status of your tenant configuration. There is one configuration per tenant. - - - - Get-CsOnlineDialinConferencingTenantConfiguration - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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 - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTenantConfiguration - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialinConferencingTenantConfiguration - - This example returns the configuration for the tenant administrator's organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantconfiguration - - - - - - Get-CsOnlineDialInConferencingTenantSettings - Get - CsOnlineDialInConferencingTenantSettings - - Use the Get-CsOnlineDialInConferencingTenantSettings cmdlet to retrieve tenant level settings for dial-in conferencing. - - - - - - - - Get-CsOnlineDialInConferencingTenantSettings - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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 - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - 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 - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.OnLineDialInConferencing.OnLineDialInConferencingTenantSettings - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialInConferencingTenantSettings - - This example returns the global setting for the tenant administrator's organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings - - - - - - Get-CsOnlineDialInConferencingUser - Get - CsOnlineDialInConferencingUser - - Use the `Get-CsOnlineDialInConferencingUser` cmdlet to view the properties and settings of users that are enabled for dial-in conferencing and are using Microsoft as their PSTN conferencing provider. - - - - This cmdlet will only return users that have been enabled for audio conferencing using Microsoft as the audio conferencing provider. Users that are enabled for audio conferencing using a third-party audio conferencing provider won't be returned. If there are no users in the organization that have been enabled for audio conferencing, then the cmdlet will return no results. - The see a list of users with conferencing providers other than Microsoft use the Get-CsUserAcp cmdlet. NOTE : In the Teams PowerShell Module version 3.0 or later, the following input parameters have been deprecated for TeamsOnly customers (removed or very low usage): - - BridgeId - - BridgeName - - DomainController - - Force - - LdapFilter - - ServiceNumber - - TenantDomain - - Common Parameters - - - - Get-CsOnlineDialInConferencingUser - - 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 - - - BridgeId - - > 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 - - Guid - - - None - - - BridgeName - - > 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 - - String - - - None - - - DomainController - - > 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 - - Fqdn - - - None - - - Force - - > 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 - - - False - - - LdapFilter - - > 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 - - String - - - None - - - 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 - - Int32 - - - 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 - - > 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` - - Guid - - Guid - - - None - - - TenantDomain - - > 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 - - Object - - - None - - - - - - BridgeId - - > 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 - - Guid - - - None - - - BridgeName - - > 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 - - String - - - None - - - DomainController - - > 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 - - Fqdn - - - None - - - Force - - > 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 - - SwitchParameter - - - 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 - - > 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 - - String - - - None - - - 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 - - Int32 - - - 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 - - > 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` - - Guid - - Guid - - - None - - - TenantDomain - - > 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 - - Object - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineDialInConferencingUser -Identity Ken.Myer@contoso.com - - This example uses the User Principal Name (UPN) to retrieve the BridgeID and ServiceNumber information. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencinguser - - - Set-CsOnlineDialInConferencingUser - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser - - - - - - Get-CsOnlineDialOutPolicy - Get - CsOnlineDialOutPolicy - - Use the `Get-CsOnlineDialOutPolicy` cmdlet to get all the available outbound calling restriction policies in your organization. - - - - In Microsoft Teams, outbound calling restriction policies are used to restrict the type of audio conferencing and end user PSTN calls that can be made by users in your organization. The policies apply to all the different PSTN connectivity options for Microsoft Teams; Calling Plan, Direct Routing, and Operator Connect. - To get all the available policies in your organization run `Get-CsOnlineDialOutPolicy`. To assign one of these policies to a user run `Grant-CsDialoutPolicy`. - - - - Get-CsOnlineDialOutPolicy - - 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 - - - - Get-CsOnlineDialOutPolicy - - Identity - - Unique identifier of the outbound calling restriction policy to be returned. To refer to the global policy, use this syntax: "-Identity Global". To refer to a per-user policy, use syntax similar to this: -Identity DialoutCPCandPSTNDisabled. - If this parameter is omitted, then all the outbound calling restriction policies configured for use in your tenant will be returned. - - 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 - - Unique identifier of the outbound calling restriction policy to be returned. To refer to the global policy, use this syntax: "-Identity Global". To refer to a per-user policy, use syntax similar to this: -Identity DialoutCPCandPSTNDisabled. - If this parameter is omitted, then all the outbound calling restriction policies configured for use in your tenant will be returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDialOutPolicy - - In Example 1, `Get-CsOnlineDialOutPolicy` is called without any additional parameters; this returns a collection of all the outbound calling restriction policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineDialOutPolicy -Identity DialoutCPCandPSTNDisabled - - In Example 2, `Get-CsOnlineDialOutPolicy` is used to return the per-user outbound calling restriction policy that has an Identity DialoutCPCandPSTNDisabled. Because identities are unique, this command will never return more than one item. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy - - - Grant-CsDialoutPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy - - - - - - Get-CsOnlineDirectoryTenant - Get - CsOnlineDirectoryTenant - - Use the Get-CsOnlineDirectoryTenant cmdlet to retrieve a tenant and associated parameters from the Business Voice Directory. - - - - Note : Starting with Teams PowerShell Module 4.0, this cmdlet will be deprecated. Use the Get-CsTenant or Get-CsOnlineDialInConferencingBridge cmdlet to view information previously present in Get-CsOnlineDirectoryTenant. - Use the Get-CsOnlineDirectoryTenant cmdlet to retrieve tenant parameters like AnnouncementsDisabled, NameRecordingDisabled and Bridges from the Business Voice Directory. - - - - Get-CsOnlineDirectoryTenant - - 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` - - Guid - - Guid - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - 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 - - Fqdn - - - 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 - - - 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 - - - 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 - - Fqdn - - - 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 - - - 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` - - 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 - - - - - - None - - - - - - - - - - Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacTenant - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineDirectoryTenant -Tenant 7a205197-8e59-487d-b9fa-3fc1b108f1e5 - - This example returns the tenant specified by GUID. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedirectorytenant - - - Get-CsOnlineTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber - - - - - - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - Get - CsOnlineEnhancedEmergencyServiceDisclaimer - - Use the Get-CsOnlineEnhancedEmergencyServiceDisclaimer cmdlet to determine whether your organization has accepted the terms and conditions of enhanced emergency service. - - - - You can use this cmdlet to determine whether your organization has accepted the terms and conditions of enhanced emergency service. The United States is currently the only country supported. - - - - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - - 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 - - CountryInfo - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Version - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - - - - 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 - - CountryInfo - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Version - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - - - - None - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineEnhancedEmergencyServiceDisclaimer -CountryOrRegion "US" - - This example returns your organization's enhanced emergency service terms and conditions acceptance status. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer - - - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer - - - - - - Get-CsOnlineLisCivicAddress - Get - CsOnlineLisCivicAddress - - Use the Get-CsOnlineLisCivicAddress cmdlet to retrieve information about existing emergency civic addresses defined in the Location Information Service (LIS). - - - - Returns one or more emergency civic addresses. - - - - Get-CsOnlineLisCivicAddress - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target civic address. - - String - - String - - - None - - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the identity of the civic address to return. - - Guid - - Guid - - - None - - - CountryOrRegion - - > Applicable: Microsoft Teams - Specifies the country or region of the target civic address. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the target civic address. - - 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 - - - False - - - LocationId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. - - - SwitchParameter - - - 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 - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. - - String - - String - - - None - - - - - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target civic address. - - String - - String - - - None - - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the identity of the civic address to return. - - Guid - - Guid - - - None - - - CountryOrRegion - - > Applicable: Microsoft Teams - Specifies the country or region of the target civic address. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the target civic address. - - 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 - - SwitchParameter - - - False - - - LocationId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of phone numbers at the returned addresses. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Valid, Invalid, and Notvalidated. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisCivicAddress -CivicAddressId 235678321ee38d9a5-33dc-4a32-9fb8-f234cedb91ac - - This example returns the civic address with the specified identification. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisCivicAddress -City Seattle - - This example returns all the civic addresses in the city of Seattle. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress - - - Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress - - - New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress - - - Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress - - - - - - Get-CsOnlineLisLocation - Get - CsOnlineLisLocation - - Use the Get-CsOnlineLisLocation cmdlet to retrieve information on previously defined locations in the Location Information Service (LIS.) - - - - - - - - Get-CsOnlineLisLocation - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target location. - - String - - String - - - 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the civic address that is associated with the target locations. - - 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 - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. - - - SwitchParameter - - - 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 - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. - - String - - String - - - None - - - - Get-CsOnlineLisLocation - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target location. - - String - - String - - - None - - - CountryOrRegion - - > Applicable: Microsoft Teams - Specifies the country or region of the target location. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the civic address that is associated with the target locations. - - 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 - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. - - - SwitchParameter - - - 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 - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. - - String - - String - - - None - - - - Get-CsOnlineLisLocation - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target location. - - String - - String - - - None - - - CountryOrRegion - - > Applicable: Microsoft Teams - Specifies the country or region of the target location. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the civic address that is associated with the target locations. - - 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 - - - False - - - LocationId - - > Applicable: Microsoft Teams - Specifies the unique identifier of the target location. - - Guid - - Guid - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. - - - SwitchParameter - - - 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 - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. - - String - - String - - - None - - - - - - AssignmentStatus - - > 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 - - String - - - None - - - City - - > Applicable: Microsoft Teams - Specifies the city of the target location. - - String - - String - - - 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the civic address that is associated with the target locations. - - 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 - - SwitchParameter - - - 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 - - Guid - - - 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` - - Int32 - - Int32 - - - None - - - PopulateNumberOfTelephoneNumbers - - > Applicable: Microsoft Teams - If present, the PopulateNumberOfTelephoneNumbers switch causes the cmdlet to provide the number of telephone numbers at the returned locations. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - ResultSize - - > Applicable: Microsoft Teams - Specifies the maximum number of results to return. - - Int32 - - Int32 - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Specifies the validation status of the addresses to be returned. Valid inputs are: Validated, Invalid, and Notvalidated. - - String - - String - - - None - - - - - - None - - - - - - - - - - PSObject - - - Returns an instance, or instances of emergency location objects. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisLocation -City Seattle -ResultSize 25 -ValidationStatus Validated - - This example returns a maximum of 25 validated locations in Seattle. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisLocation -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 - - This example returns the locations associated with a civic address specified by its unique identifier. - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineLisLocation -Location "3rd Floor Cafe" - - This example returns the location described as the "3rd Floor Cafe". - - - - -------------------------- Example 4 -------------------------- - Get-CsOnlineLisLocation -LocationId 5aa884e8-d548-4b8e-a289-52bfd5265a6e - - This example returns the information on one location specified by its unique identifier. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation - - - Set-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation - - - New-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation - - - Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation - - - - - - Get-CsOnlineLisPort - 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. - 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. - - - - Get-CsOnlineLisPort - - 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 - - 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 - - - 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 - - - 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 - - - - - - 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 - - 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 - - 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 - - - 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 - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisPort - -PortID ChassisID LocationId Description ------- --------- ---------- ----------- -G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a -S2/0/25 F6-26-79-B5-3D-49 d7714269-ee52-4635-97b0-d7c228801d24 - - Example 1 retrieves all Location Information Server (LIS) ports and any associated locations. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisPort -ChassisID 'B8-BE-BF-4A-A3-00' -PortID 'G1/0/30' - -PortID ChassisID LocationId Description ------- --------- ---------- ----------- -G1/0/30 B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a - - Example 2 retrieves the location information for port G1/0/30 with ChassisID B8-BE-BF-4A-A3-00. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport - - - Set-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport - - - Remove-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport - - - - - - Get-CsOnlineLisSubnet - 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. - 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. - - - - Get-CsOnlineLisSubnet - - TenantId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Subnet - - > Applicable: Microsoft Teams - The IP address of the subnet. This value can be either IPv4 or IPv6 format. - - 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 - - - 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 - - - - - - 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 - - > Applicable: Microsoft Teams - 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 - - String - - - None - - - TenantId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisSubnet - - Example 1 retrieves all Location Information Server (LIS) subnets. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisSubnet -Subnet 10.106.89.12 - - Example 2 retrieves the Location Information Server (LIS) subnet for Subnet ID "10.106.89.12". - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e - - Example 2 retrieves the Location Information Server (LIS) subnet for Subnet ID "2001:4898:e8:6c:90d2:28d4:76a4:ec5e". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelissubnet - - - - - - Get-CsOnlineLisSwitch - 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. - 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. - - - - Get-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 - - 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 - - - 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 - - - - - - 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 - - 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 - - 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 - - - TargetStore - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - - - - System.String - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisSwitch - -ChassisID LocationId Description ---------- ---------- ----------- -B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 -F6-26-79-B5-3D-49 d7714269-ee52-4635-97b0-d7c228801d24 USSwitch1 - - Example 1 retrieves all Location Information Server (LIS) switches and any associated locations. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisSwitch -ChassisID B8-BE-BF-4A-A3-00 - -ChassisID LocationId Description ---------- ---------- ----------- -B8-BE-BF-4A-A3-00 9905bca0-6fb0-11ec-84a4-25019013784a DKSwitch1 - - Example 2 retrieves Location Information Server (LIS) switch "B8-BE-BF-4A-A3-00" and associated location. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch - - - Set-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch - - - Remove-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch - - - - - - Get-CsOnlineLisWirelessAccessPoint - 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. - 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. - - - - Get-CsOnlineLisWirelessAccessPoint - - 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 - - - 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 - - - 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 - - - - - - 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 - - - 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 - - - TargetStore - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineLisWirelessAccessPoint - -BSSID LocationId Description ------ ---------- ----------- -F0-6E-0B-C2-03-23 d7714269-ee52-4635-97b0-d7c228801d24 USWAP1 -34-E3-80-D5-AB-60 9905bca0-6fb0-11ec-84a4-25019013784a DKWAP1 -F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs - - Example 1 retrieves all Location Information Server (LIS) wireless access points and any associated locations. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 - -BSSID LocationId Description ------ ---------- ----------- -F0-6E-0B-C2-03-23 d7714269-ee52-4635-97b0-d7c228801d24 USWAP1 - - Example 2 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-23" and associated location. - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-* - -BSSID LocationId Description ------ ---------- ----------- -F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs - - Example 3 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-*" and associated location. - - - - -------------------------- Example 4 -------------------------- - Get-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-12 - -BSSID LocationId Description ------ ---------- ----------- -F0-6E-0B-C2-03-* b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a SEWAPs - - Example 4 retrieves Location Information Server (LIS) wireless access point "F0-6E-0B-C2-03-12" and associated location. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint - - - Set-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint - - - Remove-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint - - - - - - Get-CsOnlinePSTNGateway - Get - CsOnlinePSTNGateway - - Shows 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 show the configuration of the previously created Session Border Controller(s) (SBC(s)) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP options, specify the limit of maximum concurrent sessions, The cmdlet also let drain the SBC by setting parameter -Enabled to true or false state. When the Enabled parameter set to $false, the SBC will continue existing calls, bit all new calls routed to another SBC in a route (if exists). - - - - Get-CsOnlinePSTNGateway - - Filter - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - String - - String - - - None - - - - Get-CsOnlinePSTNGateway - - Identity - - > Applicable: Microsoft Teams - The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. - - String - - String - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The parameter is optional for the cmdlet. If not set all SBCs paired to the tenant are listed. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlinePSTNGateway - - This example shows all SBCs paired with the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlinePSTNGateway -Filter "*.contoso.com" - - This example selects all SBCs with identities matching the pattern *.contoso.com, such as sbc1.contoso.com and sbc2.contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway - - - Set-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway - - - New-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway - - - Remove-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway - - - - - - Get-CsOnlinePstnUsage - Get - CsOnlinePstnUsage - - Returns information about online public switched telephone network (PSTN) usage records used in your tenant. - - - - Online PSTN usages are string values that are used for call authorization. An online PSTN usage links an online voice policy to a route. The `Get-CsOnlinePstnUsage` cmdlet retrieves the list of all online PSTN usages available within a tenant. - This cmdlet is used when configuring Microsoft Phone System Direct Routing. - - - - Get-CsOnlinePstnUsage - - Filter - - The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet. - - String - - String - - - None - - - - Get-CsOnlinePstnUsage - - Identity - - The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global. - - String - - String - - - None - - - - - - Filter - - The Filter parameter allows you to retrieve only those PSTN usages with an Identity matching a particular wildcard string. However, the only Identity available to PSTN usages is Global, so this parameter is not useful for this cmdlet. - - String - - String - - - None - - - Identity - - The level at which these settings are applied. The only identity that can be applied to PSTN usages is Global. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CSOnlinePSTNUsage - - This command returns the list of global PSTN usages available within the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage - - - Set-CsOnlinePstnUsage - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage - - - - - - Get-CsOnlineSchedule - Get - CsOnlineSchedule - - Use the Get-CsOnlineSchedule cmdlet to get information about schedules that belong to your organization. - - - - The Get-CsOnlineSchedule cmdlet returns information about the schedules in your organization. - - - - Get-CsOnlineSchedule - - 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 - - System.String - - - None - - - - - - 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 - - System.String - - - None - - - - - - System.String - - - The Get-CsOnlineSchedule cmdlet accepts a string as the Id parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.Schedule - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineSchedule - - This example retrieves all schedules that belong to your organization. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineSchedule -Id "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - - This example gets the schedules that has the Id of f7a821dc-2d69-5ae8-8525-bcb4a4556093. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule - - - New-CsOnlineTimeRange - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange - - - New-CsOnlineDateTimeRange - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange - - - New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow - - - - - - Get-CsOnlineSipDomain - Get - CsOnlineSipDomain - - This cmdlet lists online sip domains and their enabled/disabled status. In a disabled domain, provisioning of users is blocked. Once a domain is re-enabled, provisioning of users in that domain will happen. - - - - This cmdlet is useful for organizations consolidating multiple on-premises deployments of Skype for Business Server into a single Office 365 tenant. During consolidation, sip domains for all forests hosting Skype for Business Server - other than the forest currently in hybrid mode - must be disabled. Once a hybrid deployment is fully migrated to the cloud and detached from Office 365, the next forest can start migration to the cloud. This cmdlet allows administrators to view the status of sip domains in their Office 365 tenant. For full details on cloud consolidation scenarios, see Cloud consolidation for Teams and Skype for Business (https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation). - - - - Get-CsOnlineSipDomain - - Domain - - > Applicable: Microsoft Teams - A specific domain to get the status of. - - String - - String - - - None - - - DomainStatus - - > Applicable: Microsoft Teams - This indicates the status of an online sip domain, which can be either enabled or disabled. - - - All - Enabled - Disabled - - DomainStatus - - DomainStatus - - - None - - - - - - Domain - - > Applicable: Microsoft Teams - A specific domain to get the status of. - - String - - String - - - None - - - DomainStatus - - > Applicable: Microsoft Teams - This indicates the status of an online sip domain, which can be either enabled or disabled. - - DomainStatus - - DomainStatus - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Provision.OSD.OnlineSipDomainBase+DomainState - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineSipDomain - - List all online SIP domains in the tenant and show their enabled/disabled status. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineSipDomain -DomainStatus Disabled - - List all disabled online SIP domains in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinesipdomain - - - Disable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/disable-csonlinesipdomain - - - Enable-CsOnlineSipDomain - https://learn.microsoft.com/powershell/module/microsoftteams/enable-csonlinesipdomain - - - Cloud consolidation for Teams and Skype for Business - https://learn.microsoft.com/skypeforbusiness/hybrid/cloud-consolidation - - - - - - Get-CsOnlineTelephoneNumber - 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/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. - - - - Get-CsOnlineTelephoneNumber - - ActivationState - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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. - The values for the Assigned parameter are case-sensitive. - - MultiValuedProperty - - MultiValuedProperty - - - None - - - 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. - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - ExpandLocation - - > Applicable: Microsoft Teams - Displays the location parameter with its value. - - - 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 - - - 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. - The values for the InventoryType parameter are case-sensitive. - - MultiValuedProperty - - MultiValuedProperty - - - None - - - IsNotAssigned - - > Applicable: Microsoft Teams - Specifying this switch parameter will return only telephone numbers which are not assigned. - - - SwitchParameter - - - False - - - 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 - - UInt32 - - - None - - - TelephoneNumber - - > Applicable: Microsoft Teams - Specifies the target telephone number. For example: - `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - ActivationState - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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. - The values for the Assigned parameter are case-sensitive. - - MultiValuedProperty - - MultiValuedProperty - - - None - - - 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. - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - ExpandLocation - - > Applicable: Microsoft Teams - Displays the location parameter with its value. - - 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 - - - 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. - The values for the InventoryType parameter are case-sensitive. - - MultiValuedProperty - - MultiValuedProperty - - - None - - - IsNotAssigned - - > Applicable: Microsoft Teams - Specifying this switch parameter will return only telephone numbers which are not assigned. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - UInt32 - - - None - - - TelephoneNumber - - > Applicable: Microsoft Teams - Specifies the target telephone number. For example: - `-TelephoneNumber tel:+18005551234, or -TelephoneNumber +14251234567` - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Deserialized.Microsoft.Skype.EnterpriseVoice.BVDClient.Number - - - An instance or array of the objects. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumber -TelephoneNumber 19294450177 - - This example gets the attributes of a specific phone number. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumber -CapitalOrMajorCity NOAM-US-NY-NY - -RunspaceId : f90303a9-c6a8-483c-b3b3-a5b8cdbab19c - -ActivationState : Activated - -BridgeNumber : - -CallingProfile : BandwidthUS - -InventoryType : Service - -CityCode : NOAM-US-NY-NY - -Id : 19294450177 - -InventoryType : Service - -Location : - -O365Region : NOAM - -SourceType : Tnm - -TargetType : caa - -Tenant : - -TenantId : - -UserId : - -IsManagedByServiceDesk : True - -PortInOrderStatus : - - This example gets the phone numbers with the city code designating New York, New York. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumber - - - Remove-CsOnlineTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinetelephonenumber - - - - - - Get-CsOnlineTelephoneNumberCountry - Get - CsOnlineTelephoneNumberCountry - - Use the `Get-CsOnlineTelephoneNumberCountry` cmdlet to get the list of supported countries or regions to search and acquire new telephone numbers. - - - - 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. - - - - Get-CsOnlineTelephoneNumberCountry - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineTelephoneNumberCountry - -Name Value ----- ----- -Antigua and Barbuda AG -Argentina AR -Australia AU -Austria AT -... -United Kingdom GB -United States US -Uruguay UY -Venezuela VE -Vietnam VN - - This example returns the list of supported countries or regions for the cmdlet search and acquire of new telephone numbers. - - - - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - - - - Get-CsOnlineTelephoneNumberOrder - Get - CsOnlineTelephoneNumberOrder - - Use the `Get-CsOnlineTelephoneNumberOrder` cmdlet to get the order report of a specific telephone number 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. - - - - Get-CsOnlineTelephoneNumberOrder - - OrderId - - Use the OrderId received as output of your order creation cmdlets. - - String - - String - - - None - - - OrderType - - Specifies the type of telephone number order to look up. Currently supported values are Search , Release , and DirectRoutingNumberCreation . If this value is unspecified, then it will default to a Search order. - - String - - String - - - None - - - - - - OrderId - - Use the OrderId received as output of your order creation cmdlets. - - String - - String - - - None - - - OrderType - - Specifies the type of telephone number order to look up. Currently supported values are Search , Release , and DirectRoutingNumberCreation . If this value is unspecified, then it will default to a Search order. - - String - - String - - - None - - - - - - - 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`. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderType Search -OrderId 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be - -Key Value ---- ----- -Id 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be -Name Postal Code Search Test -CreatedAt 2024-11-30T00:34:00.0825627+00:00 -CreatedBy ContosoAdmin -Description Postal Code Search Test -NumberType UserSubscriber -SearchType PostalCode -AreaCode 778 -PostalOrZipCode V7Y 1G5 -Quantity 2 -Status Reserved -IsManual False -TelephoneNumbers {System.Collections.Generic.Dictionary`2[System.String,System.Object], System.Collections.Generic.Dictionary`2[System.String,System.Object]} -ReservationExpiryDate 2024-11-30T00:50:01.1794152+00:00 -ErrorCode NoError -InventoryType Subscriber -SendToServiceDesk False -CountryCode CA - -PS C:\> $order.TelephoneNumbers - -Key Value ---- ----- -Location Vancouver -TelephoneNumber +16046606034 -Location Vancouver -TelephoneNumber +16046606030 - - This example returns a successful telephone number search and the telephone numbers are reserved for purchase. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderType Search -OrderId 8d23e073-bc98-4f73-8e05-7517655d7042 - -Key Value ---- ----- -Id 8d23e073-bc98-4f73-8e05-7517655d7042 -Name Postal Code Search Test -CreatedAt 2024-11-30T00:34:00.0825627+00:00 -CreatedBy ContosoAdmin -Description Prefix Search Test -NumberType UserSubscriber -SearchType Prefix -AreaCode -PostalOrZipCode -Quantity 1 -Status Error -IsManual False -TelephoneNumbers {} -ReservationExpiryDate -ErrorCode OutOfStock -InventoryType Subscriber -SendToServiceDesk False -CountryCode - - This example returns a failed telephone number search and the `ErrorCode` is showing that telephone numbers with `NumberPrefix: 1425` is `OutOfStock`. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderId 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be - -Key Value ---- ----- -Id 1fd52b3b-b804-4ac4-a84d-4d70b51dd4be -Name Postal Code Search Test -CreatedAt 2024-11-30T00:34:00.0825627+00:00 -CreatedBy TNM -Description Postal Code Search Test from Postman -NumberType UserSubscriber -SearchType PostalCode -AreaCode 778 -PostalOrZipCode V7Y 1G5 -Quantity 2 -Status Expired -IsManual False -TelephoneNumbers {System.Collections.Generic.Dictionary`2[System.String,System.Object], System.Collections.Generic.Dictionary`2[System.String,System.Object]} -ReservationExpiryDate 2024-11-30T00:50:01.1794152+00:00 -ErrorCode NoError -InventoryType Subscriber -SendToServiceDesk False -CountryCode CA - - When the OrderType is not indicated, the cmdlet will default to a Search order. This example returns a successful telephone number search and the telephone numbers are reserved for purchase. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderType Release -OrderId 6aa4f786-8628-4923-9df1-896f3d84016c - -Key Value ---- ----- -OrderId 6aa4f786-8628-4923-9df1-896f3d84016c -CreatedAt 2024-11-27T06:44:26.1975766+00:00 -Status Complete -TotalCount 3 -SuccessCount 3 -FailureCount 0 -SuccessPhoneNumbers {+12063866355, +12063868075, +12063861642} -FailedPhoneNumbers {} - - This example returns the status of a successful release order for Direct Routing telephone numbers. - - - - -------------------------- Example 5 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId faef09f7-5bd5-4740-9e76-9a5762380f34 - -Key Value ---- ----- -OrderId faef09f7-5bd5-4740-9e76-9a5762380f34 -CreatedAt 2024-11-30T00:22:59.4989508+00:00 -Status Success -TotalCount 1 -SuccessCount 1 -FailureCount 0 -WarningCount 0 -FailedPhoneNumbers {} -WarningPhoneNumbers {} -SuccessPhoneNumbers {+99999980} - - This example returns the status of a successful upload order for a Direct Routing phone number. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder - - - New-CsOnlineTelephoneNumberReleaseOrder - https://learn.microsoft.com/powershell/module/microsoftteams/New-csonlinetelephonenumberreleaseorder - - - - - - Get-CsOnlineTelephoneNumberType - Get - CsOnlineTelephoneNumberType - - Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. - - - - Use the `Get-CsOnlineTelephoneNumberType` cmdlet to get the list of supported telephone number offerings in a given country or region. The `NumberType` field in the response is used to indicate the capabilities of a given offering. The telephone numbers can then be used to set up calling features for users and services in your organization. - - - - Get-CsOnlineTelephoneNumberType - - Country - - Specifies the country or region that the number offerings belong. The country code uses ISO 3166 standard and the list of supported countries or regions can be found by calling `Get-CsOnlineTelephoneNumberCountry`. - - String - - String - - - None - - - - - - Country - - Specifies the country or region that the number offerings belong. The country code uses ISO 3166 standard and the list of supported countries or regions can be found by calling `Get-CsOnlineTelephoneNumberCountry`. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumberType -Country US - -AllowedSearchType : {CivicAddress, Prefix} -AreaCode : -AvailabilityInfo : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AvailabilityInfo -Id : 470316bd-815e-459d-80e7-d7332f00fcb9 -NumberType : UserSubscriber -OfferModel : DirectStock -PrefixSearchOption : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrefixSearchOptions -RequiresCivicAddress : True - -AllowedSearchType : {CivicAddress, Prefix} -AreaCode : -AvailabilityInfo : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.AvailabilityInfo -Id : 25444938-a335-4a85-b64d-d445b45f04e3 -NumberType : UserSubscriberVoiceAndSms -OfferModel : DirectStock -PrefixSearchOption : Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.PrefixSearchOptions -RequiresCivicAddress : True - - This example returns the list of supported number offerings in United States. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineTelephoneNumberType -Country CA | ft NumberType - -NumberType ----------- -UserSubscriber -UserSubscriberVoiceAndSms -ConferenceToll -ConferenceTollFree -CallQueueToll -CallQueueTollFree -AutoAttendantToll -AutoAttendantTollFree - - This example returns the list of supported NumberTypes in Canada. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - - - - Get-CsOnlineUser - Get - CsOnlineUser - - Returns information about users who have accounts homed on Microsoft Teams or Skype for Business Online. - - - - The Get-CsOnlineUser cmdlet returns information about users who have accounts homed on Microsoft Teams The returned information includes standard Active Directory account information (such as the department the user works in, his or her address and phone number, etc.): the Get-CsOnlineUser cmdlet returns information about such things as whether or not the user has been enabled for Enterprise Voice and which per-user policies (if any) have been assigned to the user. - Note that the Get-CsOnlineUser cmdlet does not have a TenantId parameter; that means you cannot use a command similar to this in order to limit the returned data to users who have accounts with a specific Microsoft Teams or Skype for Business Online tenant: - `Get-CsOnlineUser -TenantId "bf19b7db-6960-41e5-a139-2aa373474354"` - However, if you have multiple tenants you can return users from a specified tenant by using the Filter parameter and a command similar to this: - `Get-CsOnlineUser -Filter "TenantId -eq 'bf19b7db-6960-41e5-a139-2aa373474354'"` - That command will limit the returned data to user accounts belong to the tenant with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354". If you do not know your tenant IDs you can return that information by using this command: - `Get-CsTenant` - If you have a hybrid or "split domain" deployment (that is, a deployment in which some users have accounts homed on Skype for Business Online while other users have accounts homed on an on-premises version of Skype for Business Server 2015) keep in mind that the Get-CsOnlineUser cmdlet only returns information for Skype for Business Online users. However, the cmdlet will return information for both online users and on-premises users. If you want to exclude Skype for Business Online users from the data returned by the Get-CsUser cmdlet, use the following command: - `Get-CsUser -Filter "TenantId -eq '00000000-0000-0000-0000-000000000000'"` - By definition, users homed on the on-premises version will always have a TenantId equal to 00000000-0000-0000-0000-000000000000. Users homed on Skype for Business Online will a TenantId that is equal to some value other than 00000000-0000-0000-0000-000000000000. - - - - Get-CsOnlineUser - - 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. - - `Guest` - to query for guest accounts. - - `SfBOnPremUser` - to query for users that are hosted on-premises - - `IneligibleUser` - to query for a user that does not have valid Teams license (except Guest, ResourceAccount and SfbOnPremUser). - - UserIdParameter - - UserIdParameter - - - 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 - - SIP address - - UPN - - Alias - - Using the Teams PowerShell Module version 2.6 or earlier only, you can use the following values to identify the account: - - GUID - - SIP address - - UPN - - Alias - - Display name. Supports the asterisk ( \ ) wildcard character. For example, `-Identity " Smith"` returns all the users whose display names end with Smith. - - UserIdParameter - - UserIdParameter - - - 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 - - - Properties - - > 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 - - String - - - None - - - ResultSize - - > 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. - - Unlimited - - Unlimited - - - None - - - SkipUserPolicies - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - 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 - - - False - - - 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. - - String - - String - - - None - - - - - - 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. - - `Guest` - to query for guest accounts. - - `SfBOnPremUser` - to query for users that are hosted on-premises - - `IneligibleUser` - to query for a user that does not have valid Teams license (except Guest, ResourceAccount and SfbOnPremUser). - - UserIdParameter - - UserIdParameter - - - 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 - - SIP address - - UPN - - Alias - - Using the Teams PowerShell Module version 2.6 or earlier only, you can use the following values to identify the account: - - GUID - - SIP address - - UPN - - Alias - - Display name. Supports the asterisk ( \ ) wildcard character. For example, `-Identity " Smith"` returns all the users whose display names end with Smith. - - UserIdParameter - - UserIdParameter - - - None - - - Properties - - > 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 - - String - - - None - - - ResultSize - - > 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. - - Unlimited - - Unlimited - - - None - - - SkipUserPolicies - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - SwitchParameter - - - False - - - 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. - - String - - String - - - None - - - - - - - A recent fix has addressed an issue where some Guest users were being omitted from the output of the Get-CsOnlineUser cmdlet, resulting in an increase in the reported user count. Commonly used FeatureTypes and their descriptions: - Teams: Enables Users to access Teams - - AudioConferencing': Enables users to call-in to Teams meetings from their phones - - PhoneSystem: Enables users to place, receive, transfer, mute, unmute calls in Teams with mobile device, PC, or IP Phones - - CallingPlan: Enables an All-in-the-cloud voice solution for Teams users that connects Teams Phone System to the PSTN to enable external calling. With this option, Microsoft acts as the PSTN carrier. - - TeamsMultiGeo: Enables Teams chat data to be stored at rest in a specified geo location - - VoiceApp: Enables to set up resource accounts to support voice applications like Auto Attendants and Call Queues - - M365CopilotTeams: Enables Copilot in Teams - - TeamsProMgmt: Enables enhanced meeting recap features like AI generated notes and tasks from meetings, view when a screen was shared etc - - TeamsProProtection: Enables additional ways to safeguard and monitor users' Teams experiences with features like Sensitivity labels, Watermarking, end-to-end encryption etc. - - TeamsProWebinar: Enables advances webinar features like engagement reports, RTMP-In, Webinar Wait List, in Teams. - - TeamsProCust: Enables meeting customization features like branded meetings, together mode, in Teams. - - TeamsProVirtualAppt: Enables advances virtual appointment features like SMS notifications, custom waiting room, in Teams. - - TeamsRoomPro: Enables premium in-room meeting experience like intelligent audio, large galleries in Teams. - - TeamsRoomBasic: Enables core meeting experience with Teams Rooms Systems. - - 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 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. - The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 6.8.0 or later for Microsoft Teams operated by 21Vianet. These updates will be rolled out gradually to older Microsoft Teams PowerShell versions. - The following attributes are populated with correct values in the output of Get-CsOnlineUser when not using the "-identity" parameter: - - CountryAbbreviation - - UserValidationErrors - - WhenCreated - - The following updates are applicable to the output in scenarios where "-identity" parameter is not used: - - Only valid OnPrem users would be available in the output: These are users that are DirSyncEnabled and have a valid OnPremSipAddress or SIP address in ShadowProxyAddresses. - - Guest are available in the output - - Unlicensed Users: Unlicensed users would show up in the output of Get-CsOnlineUser (note Unlicensed users in commercial clouds would show up in the output for only 30 days post-license removal.) - - Soft deleted users: These users will be displayed in the output of Get-CsOnlineUser and the TAC Manage Users page by default with SoftDeletionTimestamp set to a value. - - AccountType as Unknown will be renamed to AccountType as IneligibleUser in GCC High and DoD environments. IneligibleUser will include users who do not have any valid Teams licenses (except Guest, SfbOnPremUser, ResourceAccount). - - If any information is required for a user that is not available in the output (when not using "-identity" parameter) then it can be obtained using the "-identity" parameter. Information for all users would be available using the "-identity" parameter until they are hard deleted. - If Guest, Soft Deleted Users, IneligibleUser are not required in the output then they can be filtered out by using filter on AccountType and SoftDeletionTimestamp. For example: - - Get-CsOnlineUser -Filter {AccountType -ne 'Guest'} - - Get-CsOnlineUser -Filter {SoftDeletionTimestamp -eq $null} - - Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} Updates in Teams PowerShell Module version 6.1.1 Preview and later : - The following updates are applicable for organizations that use Microsoft Teams PowerShell version 6.1.1 (Targeted Release: April 15th, 2024) or later. These changes will be gradually rolled out for all tenants starting from April 26th, 2024. - When using the Get-CsOnlineUser cmdlet in Teams PowerShell Module without the -identity parameter, we are introducing these updates: - - Before the rollout, unlicensed users who did not have a valid Teams license were displayed in the output of the Get-CsOnlineUser cmdlet for 30 days after license removal. After the rollout, Get-CsOnlineUser will show unlicensed users after the initial 30 days and also include unlicensed users who never had a valid Teams license. - - The AccountType value Unknown is being renamed to IneligibleUser, and will include users who do not have a valid Teams license (exceptions: Guest, SfbOnPremUser, and ResourceAccount). - - You can exclude users with the AccountType as IneligibleUser from the output with the AccountType filter. For example, Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} - - 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.) 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 : - The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 5.9.0 or later in GCC High and DoD environments (note that these changes are already rolled out in commercial environments). These updates will be applicable to older Teams PowerShell versions from 15th March 2024 in GCC High and DoD environments: - The following attributes are populated with correct values in the output of Get-CsOnlineUser when not using the "-identity" parameter: - - CountryAbbreviation - - UserValidationErrors - - WhenCreated - - The following updates are applicable to the output in scenarios where "-identity" parameter is not used: - - Only valid OnPrem users would be available in the output: These are users that are DirSyncEnabled and have a valid OnPremSipAddress or SIP address in ShadowProxyAddresses. - - Guest are available in the output - - Unlicensed Users: Unlicensed users would show up in the output of Get-CsOnlineUser (note Unlicensed users in commercial clouds would show up in the output for only 30 days post-license removal.) - - Soft deleted users: These users will be displayed in the output of Get-CsOnlineUser and the TAC Manage Users page by default with SoftDeletionTimestamp set to a value. - - AccountType as Unknown will be renamed to AccountType as IneligibleUser in GCC High and DoD environments. IneligibleUser will include users who do not have any valid Teams licenses (except Guest, SfbOnPremUser, ResourceAccount). - - If any information is required for a user that is not available in the output (when not using "-identity" parameter) then it can be obtained using the "-identity" parameter. Information for all users would be available using the "-identity" parameter until they are hard deleted. - If Guest, Soft Deleted Users, IneligibleUser are not required in the output then they can be filtered out by using filter on AccountType and SoftDeletionTimestamp. For example: - - Get-CsOnlineUser -Filter {AccountType -ne 'Guest'} - - Get-CsOnlineUser -Filter {SoftDeletionTimestamp -eq $null} - - Get-CsOnlineUser -Filter {AccountType -ne 'IneligibleUser'} Updates in Teams PowerShell Module version 3.0.0 and above : - The following updates are applicable for organizations having TeamsOnly users that use Microsoft Teams PowerShell version 3.0.0 and later, excluding updates mentioned previously for Teams PowerShell Module version 5.0.0: New user attributes : - FeatureTypes: Array of unique strings specifying what features are enabled for a user. This attribute is an alternative to several attributes that have been dropped as outlined in the next section. - Some of the commonly used FeatureTypes include: - - Teams - - AudioConferencing - - PhoneSystem - - CallingPlan Note : This attribute is now filterable in Teams PowerShell Module versions 4.0.0 and later using the "-Contains" operator as shown in Example 7. - AccountEnabled: Indicates whether a user is enabled for login in Microsoft Entra ID. Dropped attributes : - The following attributes are no longer relevant to Teams and have been dropped from the output: - - AcpInfo - - AdminDescription - - ArchivingPolicy - - AudioVideoDisabled - - BaseSimpleUrl - - BroadcastMeetingPolicy - - CallViaWorkPolicy - - ClientPolicy - - ClientUpdateOverridePolicy - - ClientVersionPolicy - - CloudMeetingOpsPolicy - - CloudMeetingPolicy - - CloudVideoInteropPolicy - - ContactOptionFlags - - CountryOrRegionDisplayName - - Description - - DistinguishedName - - EnabledForRichPresence - - ExchangeArchivingPolicy - - ExchUserHoldPolicies - - ExperiencePolicy - - ExternalUserCommunicationPolicy - - ExUmEnabled - - Guid - - HomeServer - - HostedVoicemailPolicy - - IPPBXSoftPhoneRoutingEnabled - - IPPhone - - IPPhonePolicy - - IsByPassValidation - - IsValid - - LegalInterceptPolicy - - LicenseRemovalTimestamp - - LineServerURI - - Manager - - MNCReady - - Name - - NonPrimaryResource - - ObjectCategory - - ObjectClass - - ObjectState - - OnPremHideFromAddressLists - - OriginalPreferredDataLocation - - OriginatingServer - - OriginatorSid - - OverridePreferredDataLocation - - PendingDeletion - - PrivateLine - - ProvisioningCounter - - ProvisioningStamp - - PublishingCounter - - PublishingStamp - - Puid - - RemoteCallControlTelephonyEnabled - - RemoteMachine - - SamAccountName - - ServiceInfo - - StsRefreshTokensValidFrom - - SubProvisioningCounter - - SubProvisioningStamp - - SubProvisionLineType - - SyncingCounter - - TargetRegistrarPool - - TargetServerIfMoving - - TeamsInteropPolicy - - ThumbnailPhoto - - UpgradeRetryCounter - - UserAccountControl - - UserProvisionType - - UserRoutingGroupId - - VoicePolicy - Alternative is the CallingPlan and PhoneSystem string in FeatureTypes - - XForestMovePolicy - - AddressBookPolicy - - GraphPolicy - - PinPolicy - - PreferredDataLocationOverwritePolicy - - PresencePolicy - - SmsServicePolicy - - TeamsVoiceRoute - - ThirdPartyVideoSystemPolicy - - UserServicesPolicy - - ConferencingPolicy - - Id - - MobilityPolicy - - OnlineDialinConferencingPolicy - Alternative is the AudioConferencing string in FeatureTypes - - Sid - - TeamsWorkLoadPolicy - - VoiceRoutingPolicy - - ClientUpdatePolicy - - HomePhone - - HostedVoiceMail - - MobilePhone - - OtherTelephone - - StreetAddress - - WebPage - - AssignedLicenses - - OnPremisesUserPrincipalName - - HostedVoiceMail - - LicenseAssignmentStates - - OnPremDomainName - - OnPremSecurityIdentifier - - OnPremSamAccountName - - CallerIdPolicy - - Fax - - LastName (available in Teams PowerShell Module 4.2.1 and later) - - Office - - Phone - - WindowsEmailAddress - - SoftDeletedUsers (available in Teams PowerShell Module 4.4.3 and later) - - The following attributes are temporarily unavailable in the output when using the "-Filter" or when used without the "-Identity" parameter: - - WhenChanged - - CountryAbbreviation Note : These attributes will be available in the near future. Attributes renamed : - - ObjectId renamed to Identity - - FirstName renamed to GivenName - - DirSyncEnabled renamed to UserDirSyncEnabled - - MCOValidationErrors renamed to UserValidationErrors - - Enabled renamed to IsSipEnabled - - TeamsBranchSurvivabilityPolicy renamed to TeamsSurvivableBranchAppliancePolicy - - CountryOrRegionDisplayName introduced as Country (in versions 4.2.0 and later) - - InterpretedUserType: "AADConnectEnabledOnline" prefix for the InterpretedUserType output value has now been renamed DirSyncEnabledOnline, for example, AADConnectEnabledOnlineTeamsOnlyUser is now DirSyncEnabledOnlineTeamsOnlyUser. Attributes that have changed in meaning/format : OnPremLineURI : This attribute previously used to refer to both: - 1. LineURI set via OnPrem AD. 2. Direct Routing numbers assigned to users via Set-CsUser. - In Teams PowerShell Modules 3.0.0 and above OnPremLineURI will only refer to the LineURI set via OnPrem AD. Direct Routing numbers will be available from the LineURI field. Direct Routing Numbers can be distinguished from Calling Plan Numbers by looking at the FeatureTypes attribute. - - The output format of AssignedPlan and ProvisionedPlan have now changed from XML to JSON array. - The output format of Policies has now changed from String to JSON type UserPolicyDefinition. - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineUser - - The command shown in Example 1 returns information for all the users configured as online users. - - - - -------------------------- Example 2 -------------------------- - Get-CsOnlineUser -Identity "sip:kenmyer@litwareinc.com" - - In Example 2 information is returned for a single online user: the user with the SIP address "sip:kenmyer@litwareinc.com". - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineUser -Filter "ArchivingPolicy -eq 'RedmondArchiving'" - - Example 3 uses the Filter parameter to limit the returned data to online users who have been assigned the per-user archiving policy RedmondArchiving. - To do this, the filter value {ArchivingPolicy -eq "RedmondArchiving"} is employed; that syntax limits returned data to users where the ArchivingPolicy property is equal to (-eq) "RedmondArchiving". - - - - -------------------------- Example 4 -------------------------- - Get-CsOnlineUser -Filter {HideFromAddressLists -eq $True} - - Example 4 returns information only for user accounts that have been configured so that the account does not appear in Microsoft Exchange address lists. - (That is, the Active Directory attribute msExchHideFromAddressLists is True.) To carry out this task, the Filter parameter is included along with the filter value {HideFromAddressLists -eq $True}. - - - - -------------------------- Example 5 -------------------------- - Get-CsOnlineUser -Filter {LineURI -eq "tel:+1234"} -Get-CsOnlineUser -Filter {LineURI -eq "tel:+1234,ext:"} -Get-CsOnlineUser -Filter {LineURI -eq "1234"} - - Example 5 returns information for user accounts that have been assigned a designated phone number. - - - - -------------------------- Example 6 -------------------------- - Get-CsOnlineUser -AccountType ResourceAccount - - Example 6 returns information for user accounts that are categorized as resource accounts. - - - - -------------------------- Example 7 -------------------------- - Get-CsOnlineUser -Filter "FeatureTypes -Contains 'PhoneSystem'" - - Example 7 returns information for user's assigned plans. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser - - - Set-CsUser - https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser - - - - - - Get-CsOnlineVoicemailUserSettings - Get - CsOnlineVoicemailUserSettings - - Use the Get-CsOnlineVoicemailUserSettings cmdlet to get information about online voicemail user settings of a specific user. - - - - The Get-CsOnlineVoicemailUserSettings cmdlet returns information about online voicemail user settings of a specific user in your organization. - - - - Get-CsOnlineVoicemailUserSettings - - Force - - 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 - - - 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 - - - - - - Force - - 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 - 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 - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsOnlineVoicemailUserSettings -Identity sip:user@contoso.com - - This example gets the online voicemail user settings of user with SIP URI sip:user@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings - - - Set-CsOnlineVoicemailUserSettings - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings - - - - - - Get-CsOnlineVoiceRoute - Get - CsOnlineVoiceRoute - - Returns information about the online voice routes configured for use in your tenant. - - - - Use this cmdlet to retrieve one or more existing online voice routes 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). - This cmdlet can be used to retrieve voice route information such as which online PSTN gateways the route is associated with (if any), which online PSTN usages are associated with the route, the pattern (in the form of a regular expression) that identifies the phone numbers to which the route applies, and caller ID settings. The PSTN usage associates the voice route to an online voice policy. - This cmdlet is used when configuring Microsoft Phone System Direct Routing. - - - - Get-CsOnlineVoiceRoute - - Filter - - This parameter filters the results of the Get operation based on the wildcard value passed to this parameter. - - String - - String - - - None - - - - Get-CsOnlineVoiceRoute - - Identity - - A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are returned. - - String - - String - - - None - - - - - - Filter - - This parameter filters the results of the Get operation based on the wildcard value passed to this parameter. - - String - - String - - - None - - - Identity - - A string that uniquely identifies the voice route. If no identity is provided, all voice routes for the organization are returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineVoiceRoute - - Retrieves the properties for all voice routes defined within the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineVoiceRoute -Identity Route1 - - Retrieves the properties for the Route1 voice route. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsOnlineVoiceRoute -Filter *test* - - This command displays voice route settings where the Identity contains the string "test" anywhere within the value. To find the string test only at the end of the Identity, use the value \ test. Similarly, to find the string test only if it occurs at the beginning of the Identity, specify the value test\ . - - - - -------------------------- Example 4 -------------------------- - PS C:\> Get-CsOnlineVoiceRoute | Where-Object {$_.OnlinePstnGatewayList.Count -eq 0} - - This command retrieves all voice routes that have not had any PSTN gateways assigned. First all voice routes are retrieved using the Get-CsOnlineVoiceRoute cmdlet. These voice routes are then piped to the Where-Object cmdlet. The Where-Object cmdlet narrows down the results of the Get operation. In this case we look at each voice route (that's what the $_ represents) and check the Count property of the PstnGatewayList property. If the count of PSTN gateways is 0, the list is empty and no gateways have been defined for the route. - - - - - - Online Version: - 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-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute - - - - - - Get-CsOnlineVoiceRoutingPolicy - Get - CsOnlineVoiceRoutingPolicy - - Returns information about the online voice routing policies configured for use in your 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. - - - - Get-CsOnlineVoiceRoutingPolicy - - Filter - - Enables you to use wildcards when retrieving one or more online voice routing policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "tag:*" - - String - - String - - - None - - - - Get-CsOnlineVoiceRoutingPolicy - - Identity - - Unique identifier of the online voice routing 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 "RedmondOnlineVoiceRoutingPolicy" - You cannot use wildcard characters when specifying the Identity. - If neither the Identity nor the Filter parameters are specified, then `Get-CsOnlineVoiceRoutingPolicy` returns all the voice routing policies configured for use in the tenant. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcards when retrieving one or more online voice routing policies. For example, to return all the policies configured at the per-user scope, use this syntax: - -Filter "tag:*" - - String - - String - - - None - - - Identity - - Unique identifier of the online voice routing 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 "RedmondOnlineVoiceRoutingPolicy" - You cannot use wildcard characters when specifying the Identity. - If neither the Identity nor the Filter parameters are specified, then `Get-CsOnlineVoiceRoutingPolicy` returns all the voice routing policies configured for use in the tenant. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy - - The command shown in Example 1 returns information for all the online voice routing policies configured for use in the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" - - In Example 2, information is returned for a single online voice routing policy: the policy with the Identity RedmondOnlineVoiceRoutingPolicy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy -Filter "tag:*" - - The command shown in Example 3 returns information about all the online voice routing policies configured at the per-user scope. To do this, the command uses the Filter parameter and the filter value "tag:*"; that filter value limits the returned data to policies that have an Identity that begins with the string value "tag:". - - - - -------------------------- Example 4 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Long Distance"} - - In Example 4, information is returned only for those online voice routing policies that include the PSTN usage "Long Distance". To carry out this task, the command first calls `Get-CsVoiceRoutingPolicy` without any parameters; that returns a collection of all the voice routing 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 OnlinePstnUsages property includes (-contains) the usage "Long Distance". - - - - -------------------------- Example 5 -------------------------- - PS C:\> Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -notcontains "Long Distance"} - - Example 5 is a variation on the command shown in Example 4; in this case, however, information is returned only for those online voice routing policies that do not include the PSTN usage "Long Distance". In order to do that, the Where-Object cmdlet uses the -notcontains operator, which limits returned data to policies that do not include the usage "Long Distance". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy - - - New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - - - Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy - - - Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy - - - Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy - - - - - - Get-CsOnlineVoiceUser - Get - CsOnlineVoiceUser - - Use the `Get-CsOnlineVoiceUser` cmdlet to retrieve a voice user's telephone number and location. - - - - Note : This cmdlet is no longer supported on the public and GCC cloud instances. You should use the replacement cmdlets described here. - The following table lists the parameters to `Get-CsOnlineVoiceUser` and the alternative method of getting the same data using a combination of `Get-CsOnlineUser`, `Get-CsPhoneNumberAssignment`, `Get-CsOnlineLisLocation`, and `Get-CsOnlineLisCivicAddress`. - | Parameter | Description | Alternative | | :------------| :------- | :------- | | No parameters | Get information for all users | `Get-CsOnlineUser -Filter {(FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | CivicAddressId | Find phone number information where the assigned phone number is associated with the CivicAddressId | `Get-CsPhoneNumberAssignment -CivicAddressId <CivicAddressId>` | | EnterpriseVoiceStatus | Find enabled users based on EnterpriseVoiceEnabled | `Get-CsOnlineUser -Filter {(EnterpriseVoiceEnabled -eq $True) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` or `Get-CsOnlineUser -Filter {(EnterpriseVoiceEnabled -eq $False) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | ExpandLocation | Show information about the LocationId | `Get-CsOnlineLisLocation -LocationId <LocationId>` | | Identity | Get information for a user | `Get-CsOnlineUser -Identity <Identity>` | | LocationId | Find phone number information where the assigned phone number is associated with the LocationId | `Get-CsPhoneNumberAssignment -LocationId <LocationId>` | | NumberAssigned | Find enabled users with a phone number assigned | `Get-CsOnlineUser -Filter {(LineUri -ne $Null) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | NumberNotAssigned | Find users without a phone number assigned | `Get-CsOnlineUser -Filter {(LineUri -eq $Null) -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | | PSTNConnectivity | Find enabled users with PhoneSystem (OnPremises) or CallingPlan (Online) | Online: `Get-CsOnlineUser -Filter {(FeatureTypes -contains 'CallingPlan') -and (AccountEnabled -eq $True)} -AccountType User` OnPremises: `Get-CsOnlineUser -Filter {-not (FeatureTypes -contains 'CallingPlan') -and (FeatureTypes -contains 'PhoneSystem') -and (AccountEnabled -eq $True)} -AccountType User` | - The following table lists the output fields from `Get-CsOnlineVoiceUser` and the alternative method of getting the same information using a combination of `Get-CsOnlineUser`, `Get-CsPhoneNumberAssignment`, and `Get-CsOnlineLisLocation`. - | Output field | Alternative | | :---------------------------------| :--------------------------------- | | Name | DisplayName in the output from `Get-CsOnlineUser` | | Id | Identity in the output from `Get-CsOnlineUser`| | SipDomain | Extract SipDomain from the SipAddress in the output from `Get-CsOnlineUser` | | DataCenter | Extract DataCenter from RegistrarPool in the output from `Get-CsOnlineUser`| | TenantId | TenantId in the output from `Get-CsOnlineUser`| | PstnConnectivity | FeatureTypes in the output from `Get-CsOnlineUser`. If FeatureTypes contains `CallingPlan`, PstnConnectivity is `Online`. If FeatureTypes contains `PhoneSystem` and does not contain `CallingPlan`, PstnConnectivity is `OnPremises` | | UsageLocation | UsageLocation in the output from `Get-CsOnlineUser` | | EnterpriseVoiceEnabled | EnterpriseVoiceEnabled in the output from `Get-CsOnlineUser` | | Number | LineUri in the output from `Get-CsOnlineUser`. You can get same phone number format by doing LineUri.Replace('tel:+','') | | Location | Use LocationId in the output from `Get-CsPhoneNumberAssignment -AssignedPstnTargetId <Identity>` as the input to `Get-CsOnlineLisLocation -LocationId` | - In Teams PowerShell Module version 3.0 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following improvements have been introduced for organizations using Teams: - This cmdlet now accurately returns users who are voice-enabled (the older cmdlet in version 2.6.0 and earlier returned users without MCOEV* plans assigned). - - The result size is not limited to 100 users anymore (the older cmdlet in version 2.6.0 and earlier limited the result size to 100). - - In Teams PowerShell Module version 2.6.2 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following attributes are deprecated for organizations with Teams users using the ExpandLocation parameter: - - Force - - NumberOfResultsToSkip - - CorrelationId - - Verb - - ResultSize - - LicenceState - - In Teams PowerShell Module version 2.6.2 and later in commercial cloud (and Teams PowerShell Module versions 5.0.1 and later in GCCH and DOD), the following input parameters are deprecated for organizations with Teams users due to low or zero usage: - - DomainController - - Force - - GetFromAAD - - GetPendingUsers - - SearchQuery - - Skip - - Tenant - - Common Parameters - - - - Get-CsOnlineVoiceUser - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the identity of the civic address that is assigned to the target users. - - XdsCivicAddressId - - XdsCivicAddressId - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - EnterpriseVoiceStatus - - > Applicable: Microsoft Teams - Possible values are: * All - * Enabled - * Disabled - - MultiValuedProperty - - MultiValuedProperty - - - None - - - ExpandLocation - - > Applicable: Microsoft Teams - Displays the location parameter with its value. - - - SwitchParameter - - - False - - - First - - > Applicable: Microsoft Teams - Specifies the number of users to return. The default is 100. - - Unlimited - - Unlimited - - - None - - - Force - - > 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 - - - False - - - GetFromAAD - - > 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 - - - False - - - GetPendingUsers - - > 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 - - - 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 - - UserIdParameter - - UserIdParameter - - - None - - - 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 - - LocationID - - - None - - - NumberAssigned - - > Applicable: Microsoft Teams - If specified, the query will return users who have a phone number assigned. - - - SwitchParameter - - - False - - - NumberNotAssigned - - > Applicable: Microsoft Teams - If specified, the query will return users who do not have a phone number assigned. - - - SwitchParameter - - - False - - - PSTNConnectivity - - > Applicable: Microsoft Teams - Possible values are: * All - * Online - * OnPremises - - MultiValuedProperty - - MultiValuedProperty - - - None - - - SearchQuery - - > 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. - - String - - String - - - None - - - 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 - - Unlimited - - - None - - - Tenant - - > 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 - - Guid - - - None - - - - - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the identity of the civic address that is assigned to the target users. - - XdsCivicAddressId - - XdsCivicAddressId - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - EnterpriseVoiceStatus - - > Applicable: Microsoft Teams - Possible values are: * All - * Enabled - * Disabled - - MultiValuedProperty - - MultiValuedProperty - - - None - - - ExpandLocation - - > Applicable: Microsoft Teams - Displays the location parameter with its value. - - SwitchParameter - - SwitchParameter - - - False - - - First - - > Applicable: Microsoft Teams - Specifies the number of users to return. The default is 100. - - Unlimited - - Unlimited - - - None - - - Force - - > 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 - - SwitchParameter - - - False - - - GetFromAAD - - > 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 - - SwitchParameter - - - False - - - GetPendingUsers - - > 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 - - SwitchParameter - - - 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 - - UserIdParameter - - UserIdParameter - - - None - - - 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 - - LocationID - - - None - - - NumberAssigned - - > Applicable: Microsoft Teams - If specified, the query will return users who have a phone number assigned. - - SwitchParameter - - SwitchParameter - - - False - - - NumberNotAssigned - - > Applicable: Microsoft Teams - If specified, the query will return users who do not have a phone number assigned. - - SwitchParameter - - SwitchParameter - - - False - - - PSTNConnectivity - - > Applicable: Microsoft Teams - Possible values are: * All - * Online - * OnPremises - - MultiValuedProperty - - MultiValuedProperty - - - None - - - SearchQuery - - > 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. - - String - - String - - - None - - - 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 - - Unlimited - - - None - - - Tenant - - > 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 - - Guid - - - None - - - - - - None - - - - - - - - - - Deserialized.Microsoft.Rtc.Management.Hosted.Bvd.Types.LacUser - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsOnlineVoiceUser -Identity Ken.Myer@contoso.com - - This example uses the User Principal Name (UPN) to retrieve the location and phone number information. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceuser - - - 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 - - - - - - - Get-CsPhoneNumberAssignment - Get - CsPhoneNumberAssignment - - This cmdlet displays information about one or more phone numbers. - - - - 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. - - - - Get-CsPhoneNumberAssignment - - ActivationState - - > Applicable: Microsoft Teams - Filters the returned results based on the number type. Supported values are Activated, AssignmentPending, AssignmentFailed, UpdatePending, and UpdateFailed. - - System.String - - System.String - - - None - - - 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 - - System.String - - - None - - - AssignmentCategory - - > Applicable: Microsoft Teams - This parameter is used to differentiate between Primary and Private line assignment for a user. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - None - - - CivicAddressId - - > 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 - - System.String - - - 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 - - System.String - - - None - - - LocationId - - > 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 - - System.String - - - 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 - - - NumberType - - > Applicable: Microsoft Teams - Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. - - System.String - - System.String - - - 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 - - System.String - - - None - - - Skip - - Skips the first X returned results and the default value is 0. - - System.Int32 - - System.Int32 - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - Top - - > Applicable: Microsoft Teams - Returns the first X returned results and the default value is 500. - - System.Int32 - - System.Int32 - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - AssignmentCategory - - > Applicable: Microsoft Teams - This parameter is used to differentiate between Primary and Private line assignment for a user. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - None - - - CivicAddressId - - > 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 - - System.String - - - 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 - - System.String - - - None - - - LocationId - - > 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 - - System.String - - - 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 - - - NumberType - - > Applicable: Microsoft Teams - Filters the returned results based on the number type. Supported values are DirectRouting, CallingPlan, and OperatorConnect. - - System.String - - System.String - - - 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 - - System.String - - - None - - - Skip - - Skips the first X returned results and the default value is 0. - - System.Int32 - - System.Int32 - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - Top - - > Applicable: Microsoft Teams - Returns the first X returned results and the default value is 500. - - System.Int32 - - System.Int32 - - - None - - - - - - None - - - - - - - - - - ActivationState - - - The activation state of the telephone number. - - - - - AssignedPstnTargetId - - - The ID of the object the phone number is assigned to, either the ObjectId of a user or resource account or the policy instance ID of a Teams shared calling routing policy instance. - - - - - AssignmentCategory - - - Contains the assignment category such as Primary or Private. - - - - - Capability - - - The list of capabilities assigned to the phone number. - - - - - City - - - The city where the phone number is located. - - - - - CivicAddressId - - - The ID of the CivicAddress assigned to the phone number. - - - - - IsoCountryCode - - - The ISO country code assigned to the phone number. - - - - - IsoSubDivision - - - The subdivision within the country/region assigned to the phone number, for example, the state for US phone numbers. - - - - - LocationId - - - The ID of the Location assigned to the phone number. - - - - - LocationUpdateSupported - - - Boolean stating if updating of the location assigned to the phone number is allowed. - - - - - NetworkSiteId - - - This parameter is reserved for internal Microsoft use. - - - - - NumberSource - - - The source of the phone number. Online for phone numbers assigned in Microsoft 365 and OnPremises for phone numbers assigned in AD on-premises and synchronized into Microsoft 365. - - - - - NumberType - - - The type of the phone number. - - - - - OperatorId - - - The ID of the operator. - - - - - PortInOrderStatus - - - The status of any port in order covering the phone number. - - - - - PstnAssignmentStatus - - - The assignment status of the phone number. - - - - - PstnPartnerId - - - The ID of the PSTN partner providing the phone number. - - - - - PstnPartnerName - - - The name of the PSTN partner. - - - - - TelephoneNumber - - - The phone number. The number is always displayed with prefixed "+", even if it was not assigned using prefixed "+". - The object returned is of type SkypeTelephoneNumberMgmtCmdletAcquiredTelephoneNumber. - - - - - ReverseNumberLookup - - - Status of Reverse Number Lookup (RNL). When it is set to SkipInternalVoip, the calls are handled through external PSTN connection instead of internal VoIP lookup. - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. The parameter AssignmentCategory was introduced in Teams PowerShell module 5.3.1-preview. The parameter NetworkSiteId was introduced in Teams PowerShell module 5.5.0. The output parameter NumberSource was introduced in Teams PowerShell module 5.7.0. - The cmdlet is only available in commercial and GCC cloud instances. - - - - - -------------------------- Example 1 -------------------------- - Get-CsPhoneNumberAssignment -TelephoneNumber +14025551234 - -TelephoneNumber : +14025551234 -OperatorId : 2b24d246-a9ee-428b-96bc-fb9d9a053c8d -NumberType : CallingPlan -ActivationState : Activated -AssignedPstnTargetId : dc13d97b-7897-494e-bc28-6b469bf7a70e -AssignmentCategory : Primary -Capability : {UserAssignment} -City : Omaha -CivicAddressId : 703b30e5-dbdd-4132-9809-4c6160a6acc7 -IsoCountryCode : US -IsoSubdivision : Nebraska -LocationId : 407c17ae-8c41-431e-894a-38787c682f68 -LocationUpdateSupported : True -NetworkSiteId : -PortInOrderStatus : -PstnAssignmentStatus : UserAssigned -PstnPartnerId : 7fc2f2eb-89aa-41d7-93de-73d015d22ff0 -PstnPartnerName : Microsoft -NumberSource : Online -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. - - - - -------------------------- Example 2 -------------------------- - Get-CsPhoneNumberAssignment -TelephoneNumber "+12065551000;ext=524" - -TelephoneNumber : +12065551000;ext=524 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 -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 : {} - - 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. - - - - -------------------------- Example 3 -------------------------- - Get-CsPhoneNumberAssignment -CapabilitiesContain "VoiceApplicationAssignment,ConferenceAssignment" - - This example returns all phone numbers that have both the capability VoiceApplicationAssignment and the capability ConferenceAssignment assigned, but phone numbers that have only one of these capabilities assigned won't be returned. - - - - -------------------------- Example 4 -------------------------- - Get-CsPhoneNumberAssignment -AssignedPstnTargetId user1@contoso.com - - This example returns information about the phone number assigned to user1@contoso.com. - - - - -------------------------- Example 5 -------------------------- - Get-CsPhoneNumberAssignment -AssignedPstnTargetId aa1@contoso.com - - This example returns information about the phone number assigned to resource account aa1@contoso.com. - - - - -------------------------- Example 6 -------------------------- - Get-CsPhoneNumberAssignment -ActivationState Activated -CapabilitiesContain VoiceApplicationAssignment -PstnAssignmentStatus Unassigned - - This example returns information about all activated phone numbers with the capability VoiceApplicationAssignment that are not assigned. - - - - -------------------------- Example 7 -------------------------- - Get-CsPhoneNumberAssignment -TelephoneNumberContain "524" - - This example returns information about all phone numbers that contain the digits 524, including the phone number with extension 524 used in example 2. - - - - -------------------------- Example 8 -------------------------- - Get-CsPhoneNumberAssignment -Skip 1000 -Top 1000 - - This example returns all phone numbers sequenced between 1001 to 2000 in the record of phone numbers. - - - - -------------------------- 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 10 -------------------------- - Get-CsPhoneNumberAssignment -TelephoneNumber "+12065551000;ext=524" - -TelephoneNumber : +12065551000;ext=524 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a6f091 -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 : {SkipInternalVoip} -Tag : {} - - This example displays when SkipInternalVoip option is turned on for a number. - - - - -------------------------- Example 11 -------------------------- - Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -eq '+12065551000'" - -TelephoneNumber : +12065551000 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f091 -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 : {} - - This example shows a way to use -Filter parameter to display information of a specific number. - - - - -------------------------- Example 12 -------------------------- - Get-CsPhoneNumberAssignment -Filter "TelephoneNumber -like '+12065551000' -and NumberType -eq 'DirectRouting'" - -TelephoneNumber : +12065551000 -OperatorId : 83d289bc-a4d3-41e6-8a3f-cff260a3f591 -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 : {} - - 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/microsoftteams/get-csphonenumberassignment - - - Remove-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment - - - 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 - - - - - - Get-CsPolicyPackage - Get - CsPolicyPackage - - This cmdlet supports retrieving all the policy packages available on a tenant. - - - - This cmdlet supports retrieving all the policy packages available on a tenant. Provide the identity of a specific policy package to retrieve its definition, including details on the policies applied with the package. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - Get-CsPolicyPackage - - Identity - - > Applicable: Microsoft Teams - The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - The name of a specific policy package. All possible policy package names can be found by running Get-CsPolicyPackage. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsPolicyPackage - - Returns all policy packages available on the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsPolicyPackage -Identity Education_PrimaryStudent - - Returns only the Education_PrimaryStudent policy package. - - - - -------------------------- Example 3 -------------------------- - PS C:\> $a = Get-CsPolicyPackage -Identity Education_PrimaryStudent -PS C:\> $a.Policies - -# In module versions 1.1.9+ -PS C:\> $a = Get-CsPolicyPackage -Identity Education_PrimaryStudent -PS C:\> $a.Policies.AdditionalProperties - -Key Value ---- ----- -TeamsMessagingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... -TeamsMeetingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... -TeamsAppSetupPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... -TeamsCallingPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... -TeamsMeetingBroadcastPolicy {[Identity, Education_PrimaryStudent], [Description, This is an Education_PrimarySt... - - Returns the set of policies in the Education_PrimaryStudent policy package. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation - - - Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage - - - Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage - - - - - - Get-CsSdgBulkSignInRequestsSummary - Get - CsSdgBulkSignInRequestsSummary - - Get the tenant level summary of all bulk sign in requests executed in the past 30 days. - - - - This cmdlet gives the overall tenant level summary of all bulk sign in requests executed for a particular tenant within the last 30 days. Status is shown at batch level as succeeded / failed. - - - - Get-CsSdgBulkSignInRequestsSummary - - - - - - - None - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestsSummaryResponseItem - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsSdgBulkSignInRequestsSummary - - This example shows how to run the cmdlet to get a tenant level summary. - - - - - - - - Get-CsSdgBulkSignInRequestStatus - Get - CsSdgBulkSignInRequestStatus - - Get the status of an active bulk sign in request. - - - - Use this cmdlet to get granular device level details of a bulk sign in request. Status is shown for every username and hardware ID pair included in the device details CSV used as input to the bulk sign in request. - - - - Get-CsSdgBulkSignInRequestStatus - - Batchid - - Batch ID is the response returned by the `New-CsSdgBulkSignInRequest` cmdlet. It is used as input for querying the status of the batch through `Get-CsSdgBulkSignInRequestStatus` cmdlet. - - String - - String - - - None - - - - - - Batchid - - Batch ID is the response returned by the `New-CsSdgBulkSignInRequest` cmdlet. It is used as input for querying the status of the batch through `Get-CsSdgBulkSignInRequestStatus` cmdlet. - - String - - String - - - None - - - - - - None - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestStatusResult - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC -$newBatchResponse.BatchId -$getBatchStatusResponse = Get-CsSdgBulkSignInRequestStatus -Batchid $newBatchResponse.BatchId -$getBatchStatusResponse | ft -$getBatchStatusResponse.BatchItem - - This example shows how to read the batch status response into a new variable and print the status for every batch item. - - - - - - - - Get-CsSharedCallQueueHistoryTemplate - Get - CsSharedCallQueueHistoryTemplate - - Use the Get-CsSharedCallQueueHistory cmdlet to list the Shared Call Queue History templates. - - - - 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-CsSharedCallQueueHistoryTemplate - - Id - - > Applicable: Microsoft Teams - The Id of the shared call queue history template. - - System.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-CsTagsTemplate - - Id - - The unique identifier for the Tag template. - - String - - String - - - None - - - Tenant - - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - - - - Id - - The unique identifier for the Tag template. - - String - - String - - - 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/get-cstagstemplate - - - New-CsTagsTemplate - - - - Set-CsTagsTemplate - - - - Remove-CsTagsTemplate - - - - New-CsTag - - - - - - - Get-CsTeamsAudioConferencingPolicy - Get - CsTeamsAudioConferencingPolicy - - Audio conferencing policies can be used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. - - - - The Get-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. The Get-CsTeamsAudioConferencingPolicy cmdlet enables you to return information about all the audio-conferencing policies that have been configured for use in your organization. - - - - Get-CsTeamsAudioConferencingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - - Get-CsTeamsAudioConferencingPolicy - - Identity - - Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity "EMEA Users". If this parameter is not included, the Get-CsTeamsAudioConferencingPolicy cmdlet will return a collection of all the teams audio conferencing policies configured for use in your organization. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier for the policy to be retrieved. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity "EMEA Users". If this parameter is not included, the Get-CsTeamsAudioConferencingPolicy cmdlet will return a collection of all the teams audio conferencing policies configured for use in your organization. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Get-CsTeamsAudioConferencingPolicy - - The command shown in Example 1, Get-CsTeamsAudioConferencingPolicy is called without any additional parameters; this returns a collection of all the teams audio conferencing policies configured for use in your organization. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Get-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" - - The command shown in Example 2, Get-CsTeamsAudioConferencingPolicy is used to return the per-user audio conferencing policy that has an Identity "EMEA Users". Because identities are unique, this command will never return more than one item. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy - - - New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy - - - Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - - - - - - Get-CsTeamsCallParkPolicy - Get - CsTeamsCallParkPolicy - - 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. - - - - Get-CsTeamsCallParkPolicy - - 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 - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsCallParkPolicy - - Identity - - Specify the unique name of a policy you would like to retrieve - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - 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 - - - Identity - - Specify the unique name of a policy you would like to retrieve - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsCallParkPolicy - - Retrieve all policies that are available in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy - - - - - - Get-CsTeamsCortanaPolicy - Get - CsTeamsCortanaPolicy - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - - - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, if a user can use Cortana voice assistant in Microsoft Teams and determines Cortana invocation behavior via CortanaVoiceInvocationMode parameter - - * Disabled - Cortana voice assistant is disabled - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - - - Get-CsTeamsCortanaPolicy - - Filter - - Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax returns all the policies that have been configured at the site scope: -Filter "site:". This syntax returns all the policies that have been configured at the per-user scope: -Filter "tag:". You cannot use both the Filter and the Identity parameters in the same command. - - String - - String - - - None - - - LocalStore - - Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. - - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsCortanaPolicy - - Identity - - Unique identifier for the policy to be returned. To return the global policy, use this syntax: -Identity global. To return a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To return a policy configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com". - Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this: -Identity "SalesDepartmentPolicy". If this parameter is not included then all of Cortana voice assistant policies configured for use in your organization will be returned. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. - - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - Enables you to use wildcards when specifying the policy (or policies) to be retrieved. For example, this syntax returns all the policies that have been configured at the site scope: -Filter "site:". This syntax returns all the policies that have been configured at the per-user scope: -Filter "tag:". You cannot use both the Filter and the Identity parameters in the same command. - - String - - String - - - None - - - Identity - - Unique identifier for the policy to be returned. To return the global policy, use this syntax: -Identity global. To return a policy configured at the site scope, use syntax similar to this: -Identity "site:Redmond". To return a policy configured at the service scope, use syntax similar to this: -Identity "Registrar:atl-cs-001.litwareinc.com". - Policies can also be configured at the per-user scope. To return one of these policies, use syntax similar to this: -Identity "SalesDepartmentPolicy". If this parameter is not included then all of Cortana voice assistant policies configured for use in your organization will be returned. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Retrieves the Cortana voice assistant policy data from the local replica of the Central Management store rather than from the Central Management store itself. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the Skype for Business Online tenant account whose Cortana voice assistant policies are being returned. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsCortanaPolicy - - In the first example, the Get-CsTeamsCortanaPolicy cmdlet is called without specifying any additional parameters. This causes the Get-CsTeamsCortanaPolicy cmdlet to return a collection of all the Cortana voice assistant policies configured for use in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy - - - - - - Get-CsTeamsEmergencyCallRoutingPolicy - Get - CsTeamsEmergencyCallRoutingPolicy - - This cmdlet returns one or more Emergency Call Routing policies. - - - - This cmdlet returns one or more Emergency Call Routing policies. This policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. - - - - Get-CsTeamsEmergencyCallRoutingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - - Get-CsTeamsEmergencyCallRoutingPolicy - - Identity - - Specify the policy 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. - - String - - String - - - None - - - Identity - - Specify the policy that you would like to retrieve. - - String - - String - - - None - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsEmergencyCallRoutingPolicy - - Retrieves all emergency call routing policies that are available in your scope. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsEmergencyCallRoutingPolicy -Identity TestECRP - - Retrieves one emergency call routing policy specifying the identity. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsEmergencyCallRoutingPolicy -Filter 'Test*' - - Retrieves all emergency call routing policies with identity starting with Test. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy - - - Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy - - - - - - Get-CsTeamsEnhancedEncryptionPolicy - Get - CsTeamsEnhancedEncryptionPolicy - - Returns information about the teams enhanced encryption policies configured for use in your organization. - - - - Returns information about the Teams enhanced encryption policies configured for use in your organization. The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. - - - - Get-CsTeamsEnhancedEncryptionPolicy - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - 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 - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - - - - Filter - - 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 - - String - - - None - - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - Use the "Global" Identity if you wish to retrieve the policy set for the entire tenant. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Get-CsTeamsEnhancedEncryptionPolicy - - The command shown in Example 1 returns information for all the teams enhanced encryption policies configured for use in the tenant. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Get-CsTeamsEnhancedEncryptionPolicy -Identity 'ContosoPartnerEnhancedEncryptionPolicy' - - In Example 2, information is returned for a single teams enhanced encryption policy: the policy with the Identity ContosoPartnerEnhancedEncryptionPolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy - - - New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy - - - Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy - - - Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy - - - Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy - - - - - - Get-CsTeamsEventsPolicy - Get - CsTeamsEventsPolicy - - Returns information about the Teams Events policy. Note that this policy is currently still in preview. - - - - Returns information about the Teams Events policy. TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - Get-CsTeamsEventsPolicy - - Filter - - 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 - - String - - - None - - - - Get-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsEventsPolicy - - Returns information for all Teams Events policies available for use in the tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsEventsPolicy -Identity Global - - Returns information for Teams Events policy with identity "Global". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamseventspolicy - - - - - - Get-CsTeamsGuestCallingConfiguration - Get - CsTeamsGuestCallingConfiguration - - Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. - - - - Returns information about the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. To set the configuration in your organization, use Set-CsTeamsGuestCallingConfiguration - - - - Get-CsTeamsGuestCallingConfiguration - - Identity - - Internal Microsoft use - customers can have only one TeamsGuestCallingConfiguration - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Internal Microsoft use - - String - - String - - - None - - - LocalStore - - Internal Microsoft use - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - Filter - - Internal Microsoft use - - String - - String - - - None - - - Identity - - Internal Microsoft use - customers can have only one TeamsGuestCallingConfiguration - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsGuestCallingConfiguration - - Returns the results - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestcallingconfiguration - - - - - - Get-CsTeamsGuestMeetingConfiguration - Get - CsTeamsGuestMeetingConfiguration - - Designates what meeting features guests using Microsoft Teams will have available. - - - - The TeamsGuestMeetingConfiguration designates which meeting features guests leveraging Microsoft Teams will have available. This configuration will apply to all guests utilizing Microsoft Teams. Use the Get-CsTeamsGuestMeetingConfiguration cmdlet to return what values are set for your organization. - - - - Get-CsTeamsGuestMeetingConfiguration - - Identity - - The only value accepted is Global - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Internal Microsoft use. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - Filter - - Internal Microsoft use. - - String - - String - - - None - - - Identity - - The only value accepted is Global - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsGuestMeetingConfiguration - - Returns the TeamsGuestMeetingConfiguration set in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmeetingconfiguration - - - - - - Get-CsTeamsGuestMessagingConfiguration - Get - CsTeamsGuestMessagingConfiguration - - TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. This cmdlet returns your organization's current settings. - - - - TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. - - - - Get-CsTeamsGuestMessagingConfiguration - - Identity - - Specifies the collection of tenant guest messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of guest 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. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Enables you to use wildcard characters in order to return a collection of tenant guest messaging configuration settings. Because each tenant is limited to a single, global collection of guest messaging configuration settings there is no need to use the Filter parameter. - - String - - String - - - None - - - LocalStore - - This parameter is not used with Skype for Business Online. - - - SwitchParameter - - - False - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - Filter - - Enables you to use wildcard characters in order to return a collection of tenant guest messaging configuration settings. Because each tenant is limited to a single, global collection of guest messaging configuration settings there is no need to use the Filter parameter. - - String - - String - - - None - - - Identity - - Specifies the collection of tenant guest messaging configuration settings to be returned. Because each tenant is limited to a single, global collection of guest 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. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - This parameter is not used with Skype for Business Online. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsGuestMessagingConfiguration - - The command shown in Example 1 returns teams guest messaging configuration information for the current tenant - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsguestmessagingconfiguration - - - - - - Get-CsTeamsIPPhonePolicy - Get - CsTeamsIPPhonePolicy - - Get-CsTeamsIPPhonePolicy allows IT Admins to view policies for IP Phone experiences in Microsoft Teams. - - - - Returns information about the Teams IP Phone Policies configured for use in your organization. Teams IP phone policies enable you to configure the different sign-in experiences based upon the function the device is performing; example: common area phone. - - - - Get-CsTeamsIPPhonePolicy - - Filter - - 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 - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - Get-CsTeamsIPPhonePolicy - - Identity - - Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. - - String - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - 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 policies, use this syntax: -Filter "tag:*". - - String - - String - - - None - - - Identity - - Specify the unique name of the TeamsIPPhonePolicy that you would like to retrieve. - - String - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsIPPhonePolicy -identity CommonAreaPhone - - Retrieves the IP Phone Policy with name "CommonAreaPhone". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsipphonepolicy - - - - - - Get-CsTeamsMediaLoggingPolicy - Get - CsTeamsMediaLoggingPolicy - - Returns information about the Teams Media Logging policy. - - - - Returns information about the Teams Media Logging policy. TeamsMediaLoggingPolicy allows administrators to enable media logging for users. When assigned, it will enable media logging for the user overriding other settings. After removing the policy, media logging setting will revert to the previous value. - NOTES: TeamsMediaLoggingPolicy has only one instance that is built into the system, so there is no corresponding New cmdlet. - - - - Get-CsTeamsMediaLoggingPolicy - - Filter - - > 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 - - String - - - None - - - - Get-CsTeamsMediaLoggingPolicy - - Identity - - > 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 - - String - - - None - - - - - - Filter - - > 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 - - String - - - None - - - Identity - - > 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 - - String - - - None - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Get-CsTeamsMediaLoggingPolicy - - Return information for all Teams Media Logging policies available for use in the tenant. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Get-CsTeamsMediaLoggingPolicy -Identity Global - - Return Teams Media Logging policy that is set for the entire tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy - - - Grant-CsTeamsMediaLoggingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy - - - - - - Get-CsTeamsMeetingBroadcastConfiguration - Get - CsTeamsMeetingBroadcastConfiguration - - Gets Tenant level configuration for broadcast events in Teams. - - - - Tenant level configuration for broadcast events in Teams - - - - Get-CsTeamsMeetingBroadcastConfiguration - - Identity - - You can only have one configuration - "Global" - - XdsIdentity - - XdsIdentity - - - None - - - ExposeSDNConfigurationJsonBlob - - Extract SDN properties as a Json Blob in get. - - Boolean - - Boolean - - - None - - - Filter - - Not applicable to online service - you can only have one configuration. - - String - - String - - - None - - - LocalStore - - Not applicable to online service. - - - SwitchParameter - - - False - - - Tenant - - Not applicable to online service - - Guid - - Guid - - - None - - - - - - ExposeSDNConfigurationJsonBlob - - Extract SDN properties as a Json Blob in get. - - Boolean - - Boolean - - - None - - - Filter - - Not applicable to online service - you can only have one configuration. - - String - - String - - - None - - - Identity - - You can only have one configuration - "Global" - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Not applicable to online service. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Not applicable to online service - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastconfiguration - - - - - - Get-CsTeamsMeetingBroadcastPolicy - Get - CsTeamsMeetingBroadcastPolicy - - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. - - - - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to retrieve one or more policies. - - - - Get-CsTeamsMeetingBroadcastPolicy - - Identity - - Unique identifier for the policy to be retrieved. Policies can be configured at the global scope or at the per-user scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity SalesPolicy. - If this parameter is not included, the cmdlet will return a collection of all the policies configured for use in your organization. - Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a policy. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - Enables you to use wildcard characters when specifying the policy (or policies) to be returned. - - String - - String - - - None - - - LocalStore - - Not applicable to the online service. - - - SwitchParameter - - - False - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - - - - Filter - - Enables you to use wildcard characters when specifying the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier for the policy to be retrieved. Policies can be configured at the global scope or at the per-user scope. To retrieve the global policy, use this syntax: -Identity global. To retrieve a per-user policy use syntax similar to this: -Identity SalesPolicy. - If this parameter is not included, the cmdlet will return a collection of all the policies configured for use in your organization. - Note that wildcards are not allowed when specifying an Identity. Use the Filter parameter if you need to use wildcards when specifying a policy. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Not applicable to the online service. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsMeetingBroadcastPolicy - - Returns all the Teams Meeting Broadcast policies. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsMeetingBroadcastPolicy -Filter "Education_Teacher" - - In this example, the -Filter parameter is used to return all the policies that match "Education_Teacher". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmeetingbroadcastpolicy - - - - - - Get-CsTeamsMobilityPolicy - Get - CsTeamsMobilityPolicy - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - - - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - The Get-CsTeamsMobilityPolicy cmdlet allows administrators to get all teams mobility policies. - NOTE: Please note that this cmdlet was deprecated and then removed from this PowerShell module. This reference will continue to be listed here for legacy purposes. - - - - Get-CsTeamsMobilityPolicy - - 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 - - - - Get-CsTeamsMobilityPolicy - - Identity - - Specify the unique name of a policy you would like to retrieve - - XdsIdentity - - XdsIdentity - - - 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 - - - Identity - - Specify the unique name of a policy you would like to retrieve - - XdsIdentity - - XdsIdentity - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsMobilityPolicy - - Retrieve all teams mobility policies that are available in your organization - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmobilitypolicy - - - - - - Get-CsTeamsNetworkRoamingPolicy - Get - CsTeamsNetworkRoamingPolicy - - Get-CsTeamsNetworkRoamingPolicy allows IT Admins to view policies for the Network Roaming and Bandwidth Control experiences in Microsoft Teams. - - - - Returns information about the Teams Network Roaming Policies configured for use in your organization. - The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. - More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). - To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. - - - - Get-CsTeamsNetworkRoamingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - Get-CsTeamsNetworkRoamingPolicy - - Identity - - 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 - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - 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 - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsNetworkRoamingPolicy - - In Example 1, Get-CsTeamsNetworkRoamingPolicy is called without any additional parameters; this returns a collection of all the teams network roaming policies configured for use in your organization. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsNetworkRoamingPolicy -Identity OfficePolicy - - In Example 2, Get-CsTeamsNetworkRoamingPolicy is used to return the network roaming policy that has an Identity OfficePolicy. Because identities are unique, this command will never return more than one item. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsnetworkroamingpolicy - - - - - - Get-CsTeamsRoomVideoTeleConferencingPolicy - Get - CsTeamsRoomVideoTeleConferencingPolicy - - Use this cmdlet to retrieve the current Teams Room Video TeleConferencing policies. - - - - The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). - - - - Get-CsTeamsRoomVideoTeleConferencingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsTeamsRoomVideoTeleConferencingPolicy - - Identity - - The name the tenant admin gave to the Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - The name the tenant admin gave to the Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsroomvideoteleconferencingpolicy - - - - - - Get-CsTeamsSettingsCustomApp - Get - CsTeamsSettingsCustomApp - - Get the Custom Apps Setting's value of Teams Admin Center. - - - - There is a switch for managing Custom Apps in the Org-wide app settings page of Teams Admin Center. The command can get the current value of this switch. If the switch is enabled, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. - - - - Get-CsTeamsSettingsCustomApp - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsSettingsCustomApp - -IsSideloadedAppsInteractionEnabled ----------------------------------- - False - - Get the value of Custom Apps Setting. The value in the example is False, so custom apps are unavailable in the organization's app store. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp - - - Set-CsTeamsSettingsCustomApp - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp - - - - - - Get-CsTeamsShiftsAppPolicy - Get - CsTeamsShiftsAppPolicy - - Returns information about the Teams Shifts App policies that have been configured for use in your organization. - - - - The Teams Shifts app is designed to help frontline workers and their managers manage schedules and communicate effectively. - - - - Get-CsTeamsShiftsAppPolicy - - Filter - - 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 - - String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - String - - String - - - None - - - - Get-CsTeamsShiftsAppPolicy - - Identity - - Unique Identity assigned to the policy when it was created. - - String - - String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - String - - String - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - Unique Identity assigned to the policy when it was created. - - String - - String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsAppPolicy - - Lists any available Teams Shifts Apps Policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsapppolicy - - - - - - Get-CsTeamsShiftsConnection - Get - CsTeamsShiftsConnection - - This cmdlet returns the list of existing workforce management (WFM) connections. It can also return the configuration details for a given WFM connection. - - - - This cmdlet returns the list of existing connections. It can also return the configuration details for a given connection. - - - - 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 - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - ConnectionId - - The connection ID. - - 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 - - - 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 - - - - 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 - - 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 - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - - - 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 - - SwitchParameter - - - False - - - ConnectionId - - The connection ID. - - 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 - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnection | Format-List - -ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 -ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta3 -ConnectorSpecificSettingApiUrl : -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : -ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 -ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 -ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta4 -ConnectorSpecificSettingSsoUrl : -CreatedDateTime : 24/03/2023 04:58:23 -Etag : "5b00dd1b-0000-0400-0000-641d2df00000" -Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -LastModifiedDateTime : 24/03/2023 04:58:23 -Name : My connection 1 -State : Active -TenantId : dfd24b34-ccb0-47e1-bdb7-000000000000 - -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -ConnectorSpecificSettingAdminApiUrl : -ConnectorSpecificSettingApiUrl : https://www.contoso.com/api -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W -ConnectorSpecificSettingCookieAuthUrl : -ConnectorSpecificSettingEssApiUrl : -ConnectorSpecificSettingFederatedAuthUrl : -ConnectorSpecificSettingRetailWebApiUrl : -ConnectorSpecificSettingSiteManagerUrl : -ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso -CreatedDateTime : 06/04/2023 11:05:39 -Etag : "3100fd6e-0000-0400-0000-642ea7840000" -Id : a2d1b091-5140-4dd2-987a-98a8b5338744 -LastModifiedDateTime : 06/04/2023 11:05:39 -Name : My connection 2 -State : Active -TenantId : dfd24b34-ccb0-47e1-bdb7-000000000000 - - Returns the list of connections. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId a2d1b091-5140-4dd2-987a-98a8b5338744 -PS C:\> $connection.ToJsonString() - -{ - "connectorSpecificSettings": { - "apiUrl": "https://www.contoso.com/api", - "ssoUrl": "https://www.contoso.com/sso", - "clientId": "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" - }, - "id": "a2d1b091-5140-4dd2-987a-98a8b5338744", - "tenantId": "dfd24b34-ccb0-47e1-bdb7-000000000000", - "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", - "name": "My connection 2", - "etag": "\"3100fd6e-0000-0400-0000-642ea7840000\"", - "createdDateTime": "2023-04-06T11:05:39.8790000Z", - "lastModifiedDateTime": "2023-04-06T11:05:39.8790000Z", - "state": "Active" -} - - Returns the connection with the specified -ConnectionId. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection - - - Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection - - - - - - Get-CsTeamsShiftsConnectionConnector - Get - CsTeamsShiftsConnectionConnector - - This cmdlet supports retrieving the available Shifts Connectors. - - - - This cmdlet shows the available list of Shifts Connectors that can be used to synchronize a third-party workforce management system with Teams and the types of data that can be synchronized. - - - - Get-CsTeamsShiftsConnectionConnector - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionConnector | Format-List - -Id : 6A51B888-FF44-4FEA-82E1-839401E9CD74 -Name : Contoso V1 -SupportedSyncScenarioOfferShiftRequest : {Disabled, FromWfmToShifts, TwoWay} -SupportedSyncScenarioOpenShift : {Disabled, FromWfmToShifts} -SupportedSyncScenarioOpenShiftRequest : {Disabled, FromWfmToShifts, TwoWay} -SupportedSyncScenarioShift : {Disabled, FromWfmToShifts} -SupportedSyncScenarioSwapRequest : {Disabled, FromWfmToShifts, TwoWay} -SupportedSyncScenarioTimeCard : {Disabled, FromWfmToShifts, TwoWay} -SupportedSyncScenarioTimeOff : {Disabled, FromWfmToShifts} -SupportedSyncScenarioTimeOffRequest : {Disabled, FromWfmToShifts, TwoWay} -SupportedSyncScenarioUserShiftPreference : {Disabled, FromWfmToShifts, TwoWay} -Version : 2020.3 - 2021.1 - - Get the list of Shifts Connectors available on the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector - - - New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - Get-CsTeamsShiftsConnectionErrorReport - Get - CsTeamsShiftsConnectionErrorReport - - This cmdlet returns the list of all the team mapping error reports. It can also return the configuration details of one mapping error report with its ID provided or other filter parameters. - - - - This cmdlet returns the list of existing team mapping error reports. It can also return the configuration details for mapping result with given ID or other filters. - - - - 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 - - String - - - None - - - After - - > Applicable: Microsoft Teams - The timestamp indicating results should be after which date and time. - - 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 - - - Before - - > Applicable: Microsoft Teams - The timestamp indicating results should be before which date and time. - - String - - String - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - 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 - - 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 - - - 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 - - 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 - - - TeamId - - > Applicable: Microsoft Teams - The UUID of a team in Graph. - - String - - String - - - 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 - - String - - - None - - - After - - > Applicable: Microsoft Teams - The timestamp indicating results should be after which date and time. - - String - - String - - - None - - - Before - - > Applicable: Microsoft Teams - The timestamp indicating results should be before which date and time. - - String - - String - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - 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 - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - 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 - - - TeamId - - > Applicable: Microsoft Teams - The UUID of a team in Graph. - - 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 - - String - - - None - - - After - - > Applicable: Microsoft Teams - The timestamp indicating results should be after which date and time. - - 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 - - - Before - - > Applicable: Microsoft Teams - The timestamp indicating results should be before which date and time. - - String - - String - - - None - - - Break - - Wait for the .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - 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 - - SwitchParameter - - - False - - - TeamId - - > Applicable: Microsoft Teams - The UUID of a team in Graph. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionErrorReport - -Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message ----- ------------ --------- ------- --------------------- --------- -- -------------------- ------- -WFMAuthError 30/09/2022 14:14:08 en-US False WFMAuthErrorMessageType 74091f69-29b7-4884-aab9-ee5d705f36e3 1042 The workforce management system account credentials you've ... -WFMAuthError 17/10/2022 19:42:15 en-US False WFMAuthErrorMessageType b0d04444-d80b-490a-a573-ae3bb7f871bc 40 The workforce management system account credentials you've ... -WFMAuthError 17/10/2022 20:27:31 en-US False WFMAuthErrorMessageType 91ca35d9-1abc-4ded-bcda-dbf58a155930 94 The workforce management system account credentials you've ... -GraphUserAuthError 18/10/2022 04:46:57 en-US False GraphUserAuthErrorMessageType 4d26df1c-7133-4477-9266-5d7ffb70aa88 0 Authentication failed. Ensure that you've entered valid cre... -UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD us... -BatchTeamMappingError 06/04/2023 15:24:22 en-US False BatchTeamMappingErrorMessageType bf1bc3ea-1e40-483b-b6cc-669f22f24c48 1 This designated actor profile doesn't have team ownership p... - - Returns the list of all the error reports. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionErrorReport -ErrorReportId 74091f69-29b7-4884-aab9-ee5d705f36e3 | Format-List - -Code : WFMAuthError -ConnectionId : -CreatedAt : 30/09/2022 14:14:08 -Culture : en-US -ErrorNotificationSent : False -ErrorType : WFMAuthErrorMessageType -Id : 74091f69-29b7-4884-aab9-ee5d705f36e3 -IntermediateIncident : 1042 -Message : The workforce management system account credentials you've provided are invalid or this account doesn't have the required permissions. -Operation : SyncSwapShiftRequestCommand -Parameter : -Procedure : ExecuteAsync -ReferenceLink : -ResolvedAt : -ResolvedNotificationSentOn : -RevisitIntervalInMinute : 1440 -RevisitedAt : -ScheduleSequenceNumber : 310673843 -Severity : Critical -TeamId : -TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a -TotalIncident : 1042 -Ttl : 2505600 -WfmConnectorInstanceId : WCI-6f8eb424-c347-46b4-a50b-118af8d3d546 - - Returns the error report with ID `18b3e490-e6ed-4c2e-9925-47e36609dff3`. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionErrorReport -Code UserMappingError - -Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message ----- ------------ --------- ------- --------------------- --------- -- -------------------- ------- -UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:47:28 en-US False UserMappingErrorMessageType 005c4a9d-552e-4ea1-9d6a-c0316d272bc9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:48:25 en-US False UserMappingErrorMessageType 841e00b5-c4e5-4e24-89d2-703d79250516 0 Mapping failed for some users: 4 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:54:05 en-US False UserMappingErrorMessageType 0e10d036-c071-4db2-9cac-22e520f929d9 0 Mapping failed for some users: 5 succeeded, 0 failed AAD user(s) and ... - - Returns the error report with error code `UserMappingError`. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionErrorReport -Operation UserMappingHandler - -Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message ----- ------------ --------- ------- --------------------- --------- -- -------------------- ------- -UserMappingError 18/10/2022 04:47:15 en-US False UserMappingErrorMessageType 6a90b796-9cda-4cc9-a74c-499de91073f9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:47:28 en-US False UserMappingErrorMessageType 005c4a9d-552e-4ea1-9d6a-c0316d272bc9 0 Mapping failed for some users: 3 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:48:25 en-US False UserMappingErrorMessageType 841e00b5-c4e5-4e24-89d2-703d79250516 0 Mapping failed for some users: 4 succeeded, 0 failed AAD user(s) and ... -UserMappingError 18/10/2022 04:54:05 en-US False UserMappingErrorMessageType 0e10d036-c071-4db2-9cac-22e520f929d9 0 Mapping failed for some users: 5 succeeded, 0 failed AAD user(s) and ... - - Returns the error report with operation `UserMappingHandler`. - - - - -------------------------- Example 5 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionErrorReport -After 2022-12-12T19:11:39.073Z - -Code ConnectionId CreatedAt Culture ErrorNotificationSent ErrorType Id IntermediateIncident Message ----- ------------ --------- ------- --------------------- --------- -- -------------------- ------- -UserMappingError 26/01/2023 14:42:27 en-US True UserMappingErrorMessageType d7ab9ab4-b60c-44d3-8c12-d8ee64a67ce8 172 Mapping failed for some users: 1 succeeded, 2 failed AAD us... -WFMAuthError 26/01/2023 16:08:31 en-US False WFMAuthErrorMessageType 7adc3e4e-124e-4613-855c-9ac1b338400a 1 The workforce management system account credentials you've ... - - Returns the error report created after `2022-12-12T19:11:39.073Z`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionerrorreport - - - Disable-CsTeamsShiftsConnectionErrorReport - https://learn.microsoft.com/powershell/module/microsoftteams/disable-csteamsshiftsconnectionerrorreport - - - - - - Get-CsTeamsShiftsConnectionInstance - Get - CsTeamsShiftsConnectionInstance - - This cmdlet returns the list of existing connection instances. It can also return the configuration details for a given connection instance. - - - - This cmdlet returns the list of existing connections. It can also return the configuration details for a given connection instance. - - - - Get-CsTeamsShiftsConnectionInstance - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - ConnectorInstanceId - - The connector instance id - - 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 - - - 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 - - - - Get-CsTeamsShiftsConnectionInstance - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - ConnectorInstanceId - - The connector instance id - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionInstance | Format-List - -ConnectionId : a2d1b091-5140-4dd2-987a-98a8b5338744 -ConnectorAdminEmail : {testAdmin@contoso.com} -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -CreatedDateTime : 07/04/2023 10:53:59 -DesignatedActorId : ec1a4edb-1a5f-4b2d-b2a4-37aaf3acd231 -Etag : "4f00c221-0000-0400-0000-642ff6480000" -Id : WCI-b58d7a98-ab2c-473f-99a5-e0627d54c062 -LastModifiedDateTime : 07/04/2023 10:53:59 -Name : My connection instance 1 -State : Active -SyncFrequencyInMin : 10 -SyncScenarioOfferShiftRequest : FromWfmToShifts -SyncScenarioOpenShift : FromWfmToShifts -SyncScenarioOpenShiftRequest : FromWfmToShifts -SyncScenarioShift : FromWfmToShifts -SyncScenarioSwapRequest : FromWfmToShifts -SyncScenarioTimeCard : FromWfmToShifts -SyncScenarioTimeOff : FromWfmToShifts -SyncScenarioTimeOffRequest : FromWfmToShifts -SyncScenarioUserShiftPreference : FromWfmToShifts -TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a -WorkforceIntegrationId : WFI_2ab21992-b9b1-464a-b9cd-e0de1fac95b1 - -ConnectionId : a2d1b091-5140-4dd2-987a-98a8b5338744 -ConnectorAdminEmail : {} -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -CreatedDateTime : 07/04/2023 10:54:01 -DesignatedActorId : ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231 -Etag : "4f005d22-0000-0400-0000-642ff64a0000" -Id : WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 -LastModifiedDateTime : 07/04/2023 10:54:01 -Name : My connection instance 2 -State : Active -SyncFrequencyInMin : 30 -SyncScenarioOfferShiftRequest : FromWfmToShifts -SyncScenarioOpenShift : FromWfmToShifts -SyncScenarioOpenShiftRequest : FromWfmToShifts -SyncScenarioShift : FromWfmToShifts -SyncScenarioSwapRequest : Disabled -SyncScenarioTimeCard : Disabled -SyncScenarioTimeOff : FromWfmToShifts -SyncScenarioTimeOffRequest : FromWfmToShifts -SyncScenarioUserShiftPreference : Disabled -TenantId : dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a -WorkforceIntegrationId : WFI_6b225907-b476-4d40-9773-08b86db7b11b - - Returns the list of connection instances. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $ci = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-78F5116E-9098-45F5-B595-1153DF9D6F70 -PS C:\> $ci.ToJsonString() - -{ - "syncScenarios": { - "offerShiftRequest": "FromWfmToShifts", - "openShift": "FromWfmToShifts", - "openShiftRequest": "FromWfmToShifts", - "shift": "FromWfmToShifts", - "swapRequest": "Disabled", - "timeCard": "Disabled", - "timeOff": "FromWfmToShifts", - "timeOffRequest": "FromWfmToShifts", - "userShiftPreferences": "Disabled" - }, - "id": "WCI-78F5116E-9098-45F5-B595-1153DF9D6F70", - "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", - "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", - "connectorAdminEmails": [ ], - "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", - "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", - "name": "My connection instance 2", - "syncFrequencyInMin": 30, - "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", - "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", - "createdDateTime": "2023-04-07T10:54:01.8170000Z", - "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", - "state": "Active" -} - - Returns the connection instance with the specified -ConnectorInstanceId. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - - - - Get-CsTeamsShiftsConnectionOperation - Get - CsTeamsShiftsConnectionOperation - - This cmdlet gets the requested batch 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). - - - - Get-CsTeamsShiftsConnectionOperation - - Break - - Wait for the .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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - Get-CsTeamsShiftsConnectionOperation - - Break - - Wait for the .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 - - - OperationId - - The ID of the batch mapping operation. - - 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 - - - - - - Break - - Wait for the .NET debugger to attach. - - SwitchParameter - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - OperationId - - The ID of the batch mapping operation. - - 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 - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - 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 - - Returns the details of batch mapping operation with ID `c79131b7-9ecb-484b-a8df-2959c7c1e5f2`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation - - - New-CsTeamsShiftsConnectionBatchTeamMap - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap - - - - - - Get-CsTeamsShiftsConnectionSyncResult - Get - CsTeamsShiftsConnectionSyncResult - - This cmdlet supports retrieving the list of user details in the mapped teams of last sync. - - - - This cmdlet supports retrieving the list of successful and failed users in the mapped teams of last sync. - - - - Get-CsTeamsShiftsConnectionSyncResult - - ConnectorInstanceId - - > 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 - - String - - - None - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - TeamId - - > Applicable: Microsoft Teams - The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). - - String - - String - - - None - - - - - - ConnectorInstanceId - - > 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 - - String - - - None - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - TeamId - - > Applicable: Microsoft Teams - The Teams team ID. It can be retrieved by visiting AzureAAD (https://portal.azure.com/#blade/Microsoft_AAD_IAM/GroupsManagementMenuBlade/AllGroups). - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionSyncResult -ConnectorInstanceId "WCI-d1addd70-2684-4723-b8f2-7fa2230648c9" -TeamId "12345d29-7ee1-4259-8999-946953feb79e" - -FailedAadUser FailedWfmUser SuccessfulUser -------------- ------------- -------------- -{LABRO} {FRPET, WAROS, JOREE} {user3@contoso.com, user2@contoso.comm, user@contoso.com} - - Returns the successful and failed users in the team mapping of Teams `12345d29-7ee1-4259-8999-946953feb79e` in the instance with ID `WCI-d1addd70-2684-4723-b8f2-7fa2230648c9`. `LABRO` in FailedAadUser column shows the list of users who failed to sync from Teams to Wfm. `FRPET, WAROS, JOREE` in FailedWfmUser column shows the list of users who failed to sync from Wfm to Teams. `user3@contoso.com, user2@contoso.comm, user@contoso.com` in SuccessfulUser column shows the list of users who synced in both Wfm and Teams. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionsyncresult - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - - - - Get-CsTeamsShiftsConnectionTeamMap - Get - CsTeamsShiftsConnectionTeamMap - - This cmdlet supports retrieving the list of team mappings. - - - - 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). - - - - Get-CsTeamsShiftsConnectionTeamMap - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance. - - String - - String - - - None - - - InputObject - - The Identity parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance. - - String - - String - - - None - - - InputObject - - The Identity parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId "WCI-d1addd70-2684-4723-b8f2-7fa2230648c9" - -TeamId TeamName TimeZone WfmTeamId WfmTeamName ------- -------- -------- --------- ----------- -12344689-758c-4598-9206-3e23416da8c2 America/Los_Angeles 1000107 - - Returns the list of team mappings in the instance with ID `WCI-d1addd70-2684-4723-b8f2-7fa2230648c9`. - In case of error, we can capture the error response as following: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap - - - Remove-CsTeamsShiftsConnectionTeamMap - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - - - - Get-CsTeamsShiftsConnectionWfmTeam - Get - CsTeamsShiftsConnectionWfmTeam - - This cmdlet supports retrieving the list of available Workforce management (WFM) teams in the connection instance. - - - - This cmdlet shows the WFM teams that are not currently mapped to a Microsoft Teams team, and thus can be mapped to a Microsoft Teams team in the connection instance. - - - - Get-CsTeamsShiftsConnectionWfmTeam - - 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 the .NET debugger to attach. - - - SwitchParameter - - - False - - - ConnectionId - - > 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 - - String - - - None - - - ConnectorInstanceId - - > 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 - - 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 - - - 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 - - - - Get-CsTeamsShiftsConnectionWfmTeam - - 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 the .NET debugger to attach. - - - SwitchParameter - - - False - - - ConnectionId - - > 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 - - String - - - None - - - ConnectorInstanceId - - > 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 - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - Get-CsTeamsShiftsConnectionWfmTeam - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - ConnectionId - - > 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 - - String - - - None - - - ConnectorInstanceId - - > 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 - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - - - 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 the .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - ConnectionId - - > 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 - - String - - - None - - - ConnectorInstanceId - - > 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 - - 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 - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionWfmTeam -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" - -Id Name --- ---- -1000105 0002 - Bucktown -1000106 0003 - West Town -1000107 0005 - Old Town -1000108 0004 - River North -1000109 0001 - Wicker Park -1000111 2055 -1000112 2056 -1000114 1004 -1000115 1003 -1000116 1002 -1000122 0010 -1000124 0300 -1000125 1000 -1000126 4500 -1000128 0006 - WFM Team 1 -1000129 Test - - Returns the WFM teams for the connection instance with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionWfmTeam -ConnectionId "a2d1b091-5140-4dd2-987a-98a8b5338744" - -Id Name --- ---- -1000105 0002 - Bucktown -1000106 0003 - West Town -1000107 0005 - Old Town -1000108 0004 - River North -1000109 0001 - Wicker Park -1000111 2055 -1000112 2056 -1000114 1004 -1000115 1003 -1000116 1002 -1000122 0010 -1000124 0300 -1000125 1000 -1000126 4500 -1000128 0006 - WFM Team 1 -1000129 Test - - Returns the WFM teams for the WFM connection with ID `a2d1b091-5140-4dd2-987a-98a8b5338744`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam - - - Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionWfmUser - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser - - - - - - Get-CsTeamsShiftsConnectionWfmUser - Get - CsTeamsShiftsConnectionWfmUser - - This cmdlet shows the list of Workforce management (WFM) users in a specified WFM team. - - - - This cmdlet shows the list of Workforce management (WFM) users in a specified WFM team. - - - - Get-CsTeamsShiftsConnectionWfmUser - - ConnectorInstanceId - - > 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 - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - WfmTeamId - - > Applicable: Microsoft Teams - The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). - - String - - String - - - None - - - - - - ConnectorInstanceId - - > 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 - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - WfmTeamId - - > Applicable: Microsoft Teams - The Teams team ID. It can be retrieved by running Get-CsTeamsShiftsConnectionWfmTeam (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam). - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsShiftsConnectionWfmUser -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" -WfmTeamId "1000107" - -Id Name --- ---- -1000111 FRPET -1000121 WAROS -1000123 LABRO -1000125 JOREE -1006068 ABC -1006069 XYZ -1006095 DEF - - Returns the users in the WFM team with ID `1000107` in the connection instances with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmuser - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionWfmTeam - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionwfmteam - - - - - - Get-CsTeamsSurvivableBranchAppliance - Get - CsTeamsSurvivableBranchAppliance - - 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 - - Filter - - This parameter can be used to fetch instances based on partial matches on the Identity field. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsTeamsSurvivableBranchAppliance - - Identity - - The identity of the SBA. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - Filter - - This parameter can be used to fetch instances based on partial matches on the Identity field. - - String - - String - - - None - - - Identity - - The identity of the SBA. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliance - - - - - - Get-CsTeamsSurvivableBranchAppliancePolicy - Get - CsTeamsSurvivableBranchAppliancePolicy - - 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 - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsTeamsSurvivableBranchAppliancePolicy - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - Filter - - This parameter can be used to fetch policy instances based on partial matches on the Identity field. - - String - - String - - - None - - - Identity - - This parameter can be used to fetch a specific instance of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssurvivablebranchappliancepolicy - - - - - - Get-CsTeamsTargetingPolicy - Get - CsTeamsTargetingPolicy - - 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. - - - - Get-CsTeamsTargetingPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - - Get-CsTeamsTargetingPolicy - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-tenant policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the tenant tag setting policies configured for use in your organization will be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be returned. To refer to the global policy, use this syntax: -Identity global. To refer to a per-tenant policy, use syntax similar to this: -Identity SalesDepartmentPolicy. If this parameter is omitted, then all the tenant tag setting policies configured for use in your organization will be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsTargetingPolicy -Identity SalesPolicy - - In this example Get-CsTeamsTargetingPolicy is used to return the per-tenant tag policy that has an Identity SalesPolicy. Because identities are unique, this command will never return more than one item. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy - - - Set-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy - - - Remove-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy - - - - - - Get-CsTeamsTranslationRule - Get - CsTeamsTranslationRule - - Cmdlet to get an existing number manipulation rule (or list of rules). - - - - You can use this cmdlet to get an existing number manipulation rule (or list of rules). The rule can be used, for example, in the settings of your SBC (Set-CSOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System. - - - - Get-CsTeamsTranslationRule - - Filter - - > Applicable: Microsoft Teams - The filter to use against the Identity of translation rules. - - System.String - - System.String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - System.String - - System.String - - - None - - - - Get-CsTeamsTranslationRule - - Identity - - > Applicable: Microsoft Teams - Identifier of the specific translation rule to display. - - System.String - - System.String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - System.String - - System.String - - - None - - - - - - 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. - - System.String - - System.String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - System.String - - System.String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsTranslationRule - - This command will show all translation rules that exist in the tenant. Identity, Name, Description, Pattern, and Translation parameters are listed for each rule. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsTranslationRule -Identity AddPlus1 - - This command will show Identity, Name, Description, Pattern, and Translation parameters for the "AddPlus1" rule. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsTranslationRule -Filter 'Add*' - - This command will show Identity, Name, Description, Pattern, and Translation parameters for all rules with Identity starting with Add. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule - - - New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule - - - Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule - - - Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule - - - Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule - - - - - - Get-CsTeamsUnassignedNumberTreatment - Get - CsTeamsUnassignedNumberTreatment - - Displays a specific or all treatments for how calls to an unassigned number range should be routed. - - - - This cmdlet displays a specific or all treatments for how calls to an unassigned number range should be routed. - - - - Get-CsTeamsUnassignedNumberTreatment - - Filter - - > Applicable: Microsoft Teams - Enables you to limit the returned data by filtering on the Identity attribute. - - System.String - - System.String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - System.String - - System.String - - - None - - - - Get-CsTeamsUnassignedNumberTreatment - - Identity - - The Id of the specific treatment to show. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - None - - - Identity - - The Id of the specific treatment to show. - - System.String - - System.String - - - None - - - MsftInternalProcessingMode - - {{ Fill MsftInternalProcessingMode Description }} - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 2.5.1 or later. - - - - - -------------------------- Example 1 -------------------------- - Get-CsTeamsUnassignedNumberTreatment -Identity MainAA - - This example displays the treatment MainAA. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsUnassignedNumberTreatment - - This example displays all configured treatments. - - - - -------------------------- Example 3 -------------------------- - Get-CsTeamsUnassignedNumberTreatment -Filter Ann* - - This example displays all configured treatments with an Identity starting with Ann. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment - - - Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment - - - New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment - - - Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment - - - - - - Get-CsTeamsUpgradePolicy - Get - CsTeamsUpgradePolicy - - This cmdlet returns the set of instances of this policy. - - - - 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). - - - - Get-CsTeamsUpgradePolicy - - 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 - - XdsIdentity - - - None - - - Filter - - > Applicable: Microsoft Teams - {{Fill Filter Description}} - - String - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - {{Fill Filter Description}} - - String - - String - - - None - - - 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 - - XdsIdentity - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{Fill Tenant Description}} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - Example 1: List all instances of TeamsUpgradePolicy (Skype for Business Online) - PS C:\> Get-CsTeamsUpgradePolicy - -Identity : Global -Description : Users can use either Skype for Business client or Teams client -Mode : Islands -NotifySfbUsers : False - -Identity : Tag:UpgradeToTeams -Description : Use Teams Only -Mode : TeamsOnly -NotifySfbUsers : False - -Identity : Tag:Islands -Description : Use either Skype for Business client or Teams client -Mode : Islands -NotifySfbUsers : False -Action : None - -Identity : Tag:IslandsWithNotify -Description : Use either Skype for Business client or Teams client -Mode : Islands -NotifySfbUsers : True - -Identity : Tag:SfBOnly -Description : Use only Skype for Business -Mode : SfBOnly -NotifySfbUsers : False - -Identity : Tag:SfBOnlyWithNotify -Description : Use only Skype for Business -Mode : SfBOnly -NotifySfbUsers : True - -Identity : Tag:SfBWithTeamsCollab -Description : Use Skype for Business and use Teams only for group collaboration -Mode : SfBWithTeamsCollab -NotifySfbUsers : False - -Identity : Tag:SfBWithTeamsCollabWithNotify -Description : Use Skype for Business and use Teams only for group collaboration -Mode : SfBWithTeamsCollab -NotifySfbUsers : True - -Identity : Tag:SfBWithTeamsCollabAndMeetings -Description : Use Skype for Business and use Teams only for group collaboration -Mode : SfBWithTeamsCollabAndMeetings -NotifySfbUsers : False - -Identity : Tag:SfBWithTeamsCollabAndMeetingsWithNotify -Description : Use Skype for Business and use Teams only for group collaboration -Mode : SfBWithTeamsCollabAndMeetings -NotifySfbUsers : True - - List all instances of TeamsUpgradePolicy - - - - Example 2: List the global instance of TeamsUpgradePolicy (which applies to all users in a tenant unless they are explicitly assigned an instance of this policy) - PS C:\> Get-CsTeamsUpgradePolicy -Identity Global - -Identity : Global -Description : Users can use either Skype for Business client or Teams client -Mode : Islands -NotifySfbUsers : False - - List the global instance of TeamsUpgradePolicy - - - - Example 3: List all instances of TeamsUpgradePolicy in an on-premises environment - PS C:\> Get-CsTeamsUpgradePolicy -Identity Global - -Identity : Global -Description : Notifications are disabled -NotifySfbUsers : False - - List all on-premises instances (if any) of TeamsUpgradePolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/get-csteamsupgradepolicy - - - Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration - - - Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration - - - Grant-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupgradepolicy - - - 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 - - - - - - Get-CsTeamsVideoInteropServicePolicy - Get - CsTeamsVideoInteropServicePolicy - - 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. You can assign this policy to one or more of your users leveraging the Grant-CsTeamsVideoInteropServicePolicy cmdlet. - - - - Get-CsTeamsVideoInteropServicePolicy - - Filter - - 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 - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsTeamsVideoInteropServicePolicy - - Identity - - Specify the known name of a policy that has been pre-constructed for you to use. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - 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 - - String - - - None - - - Identity - - Specify the known name of a policy that has been pre-constructed for you to use. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsVideoInteropServicePolicy -Filter "*enabled*" - - This example returns all of the policies that have been pre-constructed for you to use when turning on Cloud Video Interop with one of our supported partners. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvideointeropservicepolicy - - - - - - Get-CsTeamsWorkLoadPolicy - Get - CsTeamsWorkLoadPolicy - - This cmdlet applies an instance of the Teams Workload policy to users or groups in a tenant. - - - - The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. - - - - Get-CsTeamsWorkLoadPolicy - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - - Get-CsTeamsWorkLoadPolicy - - Identity - - Identity of the Teams Workload Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the policy (or policies) to be returned. - - String - - String - - - None - - - Identity - - Identity of the Teams Workload Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTeamsWorkLoadPolicy - - Retrieves the Teams Workload Policy instances and shows assigned values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy - - - Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy - - - New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy - - - Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy - - - Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy - - - - - - Get-CsTeamTemplate - Get - CsTeamTemplate - - This cmdlet supports retrieving details of a team template available to your tenant given the team template uri. - - - - 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 - - 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 - - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - Get-CsTeamTemplate - - 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 - - - OdataId - - A composite URI of a template. - - 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 - - - - - - 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 - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - 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 - - 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 - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject - - - - - - - - - COMPLEX PARAMETER PROPERTIES - To 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 <IConfigApiBasedCmdletsIdentity>: Identity Parameter - `[Bssid <String>]`: - `[ChassisId <String>]`: - `[CivicAddressId <String>]`: Civic address id. - `[Country <String>]`: - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. - `[Id <String>]`: - `[Identity <String>]`: - `[Locale <String>]`: - `[LocationId <String>]`: Location id. - `[OdataId <String>]`: A composite URI of a template. - `[OperationId <String>]`: The ID of a batch policy assignment operation. - `[OrderId <String>]`: - `[PackageName <String>]`: The name of a specific policy package - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. - `[Port <String>]`: - `[PortInOrderId <String>]`: - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. - `[SubnetId <String>]`: - `[TenantId <String>]`: - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where Name -like 'test' | ForEach-Object {Get-CsTeamTemplate -OdataId $_.OdataId} - - Within the universe of templates the admin's tenant has access to, returns a template definition object (displayed as a JSON by default) for every custom and every Microsoft en-US template which names include 'test'. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/cefcf333-91a9-43d0-919f-bbca5b7d2b24/Tenant/en-US' > 'config.json' - - Saves the template with specified template ID as a JSON file. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate - - - Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist - - - Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate - - - New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate - - - Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate - - - Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate - - - - - - Get-CsTeamTemplateList - Get - CsTeamTemplateList - - 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 - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - - Get-CsTeamTemplateList - - 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 - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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' - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateSummary - - - - - - - - - COMPLEX PARAMETER PROPERTIES - To 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 <IConfigApiBasedCmdletsIdentity>: Identity Parameter\ [Bssid <String>]:\ [ChassisId <String>]:\ [CivicAddressId <String>]: Civic address id.\ [Country <String>]:\ [GroupId <String>]: The ID of a group whose policy assignments will be returned.\ [Id <String>]:\ [Identity <String>]:\ [Locale <String>]: The language and country code of templates localization.\ [LocationId <String>]: Location id.\ [OdataId <String>]: A composite URI of a template.\ [OperationId <String>]: The ID of a batch policy assignment operation.\ [OrderId <String>]:\ [PackageName <String>]: The name of a specific policy package\ [PolicyType <String>]: The policy type for which group policy assignments will be returned.\ [Port <String>]:\ [PortInOrderId <String>]:\ [SubnetId <String>]:\ [TenantId <String>]:\ [UserId <String>]: UserId.\ Supports Guid.\ Eventually UPN and SIP. - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Get-CsTeamTemplateList - - Returns all en-US templates within the universe of templates the admin's tenant has access to. - Note: All 1P Microsoft templates will always be returned in the specified locale. If the locale is not specified, en-US will be used. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where ChannelCount -GT 3 - - Returns all en-US templates that have 3 channels within the universe of templates the admin's tenant has access to. - - - - - - Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist - - - Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate - - - New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate - - - Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate - - - Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate - - - - - - Get-CsTenant - Get - CsTenant - - Returns information about the Microsoft Teams or Skype for Business Online tenants that have been configured for use in your organization. Tenants represent groups of online users. - - - - In Microsoft Teams or Skype for Business Online, tenants are groups of users who have accounts homed on the service. Organizations will typically have a single tenant in which to house all their user accounts. - In the Teams PowerShell Module version 3.0.0 or later, the following attributes have been deprecated for organizations with Teams users: - - AdminDescription - - AllowedDataLocation - - AssignedLicenses - - DefaultDataLocation - - DefaultPoolFqdn - - Description - - DisableExoPlanProvisioning - - DistinguishedName - - DomainUrlMap - - ExperiencePolicy - - Guid - - HostedVoiceMail - - HostedVoiceMailNotProvisioned - - Id - - Identity - - IsByPassValidation - - IsMNC - - IsO365MNC - - IsReadinessUploaded - - IsUpgradeReady - - IsValid - - LastSubProvisionTimeStamp - - MNCEnableTimeStamp - - Name - - NonPrimarySource - - ObjectCategory - - ObjectClass - - ObjectId - - ObjectState - - OcoDomainTracked - - OnPremisesImmutableId - - OnPremisesUserPrincipalName - - OnPremSamAccountName - - OnPremSecurityIdentifier - - OriginalRegistrarPool - - OriginatingServer - - PendingDeletion - - Phone - - ProvisioningCounter - - ProvisioningStamp - - ProvisionType - - PublicProvider - - PublishingCounter - - PublishingStamp - - RegistrarPool - - RemoteMachine - - SubProvisioningCounter - - SubProvisioningStamp - - SyncingCounter - - TeamsUpgradeEligible - - TelehealthEnabled - - TenantNotified - - TenantPoolExtension - - UpgradeRetryCounter - - UserRoutingGroupIds - - XForestMovePolicy - - In the Teams PowerShell Module version 3.0.0 or later, the following attributes have been renamed for TeamsOnly customers: - - CountryAbbreviation is now CountryLetterCode - - CountryOrRegionDisplayName is now Country - - StateOrProvince is now State - - - - Get-CsTenant - - Identity - - > 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. - - OUIdParameter - - OUIdParameter - - - None - - - DomainController - - > Applicable: Microsoft Teams - This parameter is not used with Skype for Business Online and will be deprecated in the near future. - - Fqdn - - Fqdn - - - None - - - Filter - - > 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: - Get-CsTenant -Filter {Domains -like " fabrikam "} - The Filter parameter uses the same Windows PowerShell filtering syntax is used by the `Where-Object` cmdlet. - You cannot use both the Identity parameter and the Filter parameter in the same command. - - String - - String - - - None - - - ResultSize - - > 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. - - Int32 - - Int32 - - - None - - - - - - DomainController - - > Applicable: Microsoft Teams - This parameter is not used with Skype for Business Online and will be deprecated in the near future. - - Fqdn - - Fqdn - - - None - - - Filter - - > 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: - Get-CsTenant -Filter {Domains -like " fabrikam "} - The Filter parameter uses the same Windows PowerShell filtering syntax is used by the `Where-Object` cmdlet. - You cannot use both the Identity parameter and the Filter parameter in the same command. - - String - - String - - - None - - - Identity - - > 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. - - OUIdParameter - - OUIdParameter - - - None - - - ResultSize - - > 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. - - Int32 - - Int32 - - - None - - - - - - Microsoft.Rtc.Management.ADConnect.Schema.TenantObject or String - - - The `Get-CsTenant` cmdlet accepts pipelined instances of the Microsoft.Rtc.Management.ADConnect.Schema.TenantObject object as well as string values representing the Identity of the tenant (for example "bf19b7db-6960-41e5-a139-2aa373474354"). - - - - - - - Microsoft.Rtc.Management.ADConnect.Schema.TenantObject - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTenant - - The command shown in Example 1 returns information about your tenant. Organizations will have only one tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant - - - - - - Get-CsTenantBlockedCallingNumbers - Get - CsTenantBlockedCallingNumbers - - Use the Get-CsTenantBlockedCallingNumbers cmdlet to retrieve tenant blocked calling numbers setting. - - - - Microsoft Direct Routing, Operator Connect and Calling Plans supports blocking of inbound calls from the public switched telephone network (PSTN). This feature allows a tenant-global list of number patterns to be defined so that the caller ID of every incoming PSTN call to the tenant can be checked against the list for a match. If a match is made, an incoming call is rejected. - The tenant blocked calling numbers includes a list of inbound blocked number patterns. Number patterns are managed through the CsInboundBlockedNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. - You can also configure a list of number patterns to be exempt from call blocking. Exempt number patterns are managed through the CsInboundExemptNumberPattern commands New, Get, Set, and Remove. - You can test your call blocking by using the command Test-CsInboundBlockedNumberPattern. - The scope of tenant blocked calling numbers is global across the given tenant. - - - - Get-CsTenantBlockedCallingNumbers - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - Get-CsTenantBlockedCallingNumbers - - Identity - - 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 - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - Identity - - 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 - - String - - - None - - - MsftInternalProcessingMode - - Internal Microsoft use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTenantBlockedCallingNumbers - - This example returns the tenant global settings for blocked calling numbers. It includes a list of inbound blocked number patterns and exempt number patterns. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - - - Set-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - - - - Get-CsTenantDialPlan - Get - CsTenantDialPlan - - Use the Get-CsTenantDialPlan cmdlet to retrieve a tenant dial plan. - - - - The Get-CsTenantDialPlan cmdlet returns information about one or more tenant dial plans (also known as a location profiles) in an organization. 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 use the Get-CsTenantDialPlan cmdlet to retrieve specific information about the normalization rules of a tenant dial plan. - - - - Get-CsTenantDialPlan - - Filter - - > Applicable: Microsoft Teams - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - - Get-CsTenantDialPlan - - Identity - - > Applicable: Microsoft Teams - The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. - - String - - String - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter is a unique identifier that designates the name of the tenant dial plan to retrieve. - - String - - String - - - None - - - - - - - The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. - - - - - -------------------------- Example 1 -------------------------- - Get-CsTenantDialPlan - - This example retrieves all existing tenant dial plans. - - - - -------------------------- Example 2 -------------------------- - Get-CsTenantDialPlan -Identity Vt1TenantDialPlan2 - - This example retrieves the tenant dial plan that has an identity of Vt1TenantDialplan2. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan - - - New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan - - - - - - Get-CsTenantFederationConfiguration - Get - CsTenantFederationConfiguration - - Returns information about the federation configuration settings for your Skype for Business Online tenants. Federation configuration settings are used to determine which domains (if any) your users are allowed to communicate with. - - - - 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. - The Get-CsTenantFederationConfiguration cmdlet provides a way for administrators to return federation information for their Skype for Business Online tenants. This cmdlet can also be used to review the allowed and blocked lists, lists which are used to specify domains that users can and cannot communicate with. However, administrators must use the Get-CsTenantPublicProvider cmdlet in order to see which public IM and presence providers users are allowed to communicate with. - - - - Get-CsTenantFederationConfiguration - - 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"` - - XdsIdentity - - XdsIdentity - - - None - - - 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*"` - - String - - String - - - None - - - LocalStore - - > Applicable: Microsoft Teams - This parameter is not used with Skype for Business Online. - - - SwitchParameter - - - 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: - `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. - - Guid - - Guid - - - None - - - - - - 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*"` - - String - - String - - - None - - - 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"` - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - > Applicable: Microsoft Teams - This parameter is not used with Skype for Business Online. - - SwitchParameter - - SwitchParameter - - - 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: - `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. - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTenantFederationConfiguration - - The command shown in Exercise 1 returns federation configuration information for the current tenant: - - - - -------------------------- Example 2 -------------------------- - Get-CsTenantFederationConfiguration | Select-Object -ExpandProperty AllowedDomains - - In Example 2, information is returned for all the allowed domains found on the federation configuration for the current tenant (This list represents all the domains that the tenant is allowed to federate with). To do this, the command first calls the Get-CsTenantFederationConfiguration cmdlet to return federation information for the specified tenant. That information is then piped to the Select-Object cmdlet, which uses the ExpandProperty to "expand" the property AllowedDomains. Expanding a property simply means displaying all the information stored in that property onscreen, and in an easy-to-read format. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration - - - Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration - - - - - - Get-CsTenantLicensingConfiguration - Get - CsTenantLicensingConfiguration - - Indicates whether licensing information for the specified tenant is available in the Teams admin center. - - - - The Get-CsTenantLicensingConfiguration cmdlet indicates whether licensing information for the specified tenant is available in the Teams admin center. The cmdlet returns information similar to this: - Identity : GlobalStatus : Enabled - If the Status is equal to Enabled then licensing information is available in the admin center. If not, then licensing information is not available in the admin center. - - - - Get-CsTenantLicensingConfiguration - - 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 - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - Get-CsTenantLicensingConfiguration - - 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 - - XdsIdentity - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - 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 - - String - - - None - - - 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 - - XdsIdentity - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - - - - None - - - - - - - - - - Deserialized.Microsoft.Rtc.Management.WritableConfig.Settings.TenantConfiguration.TenantLicensingConfiguration - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsTenantLicensingConfiguration - - The command shown in Example 1 returns licensing configuration information for the current tenant: - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantlicensingconfiguration - - - Get-CsTenant - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenant - - - - - - Get-CsTenantMigrationConfiguration - Get - CsTenantMigrationConfiguration - - Use the Get-CsTenantMigrationConfiguration cmdlet to check if Meeting Migration Service (MMS) is enabled in your organization. - - - - 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. This tool does not migrate Skype for Business meetings into Microsoft Teams meetings. - The Get-CsTenantMigrationConfiguration cmdlet retrieves the Meeting Migration Service configuration in your organization. - - - - Get-CsTenantMigrationConfiguration - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - LocalStore - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - Filter - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - LocalStore - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantMigrationConfiguration - - This example shows the MMS configuration in your organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration - - - Set-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration - - - - - - Get-CsTenantNetworkConfiguration - Get - CsTenantNetworkConfiguration - - Returns information about the network regions, sites and subnets in the tenant network configuration. Tenant network configuration is used for Location Based Routing. - - - - Tenant Network Configuration contains the list of network sites, subnets and regions configured. - A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. - A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Each network site must be associated with a network region. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. - 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. - A network region interconnects various parts of a network across multiple geographic areas. - A network region contains a collection of network sites. For example, if your organization has many sites located in India, then you may choose to designate "India" as a network region. - Location-Based Routing is a feature that allows PSTN toll bypass to be restricted for users based on policy and the user's geographic location at the time of an incoming or outgoing PSTN call. - Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in Microsoft 365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. - - - - Get-CsTenantNetworkConfiguration - - Filter - - Enables you to use wildcard characters when indicating the network configuration (or network configurations) to be returned. - - String - - String - - - None - - - - Get-CsTenantNetworkConfiguration - - Identity - - The Identity parameter is a unique identifier for the network configuration. - - String - - String - - - None - - - - - - Filter - - Enables you to use wildcard characters when indicating the network configuration (or network configurations) to be returned. - - String - - String - - - None - - - Identity - - The Identity parameter is a unique identifier for the network configuration. - - String - - String - - - None - - - - - - None - - - - - - - - - - Identity - - - The Identity of the network configuration. - - - - - NetworkRegions - - - The list of network regions of the network configuration. - - - - - NetworkSites - - - The list of network sites of the network configuration. - - - - - Subnets - - - The list of network subnets of the network configuration. - - - - - PostalCodes - - - This parameter is reserved for internal Microsoft use. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantNetworkConfiguration - - The command shown in Example 1 returns the list of network configuration for the current tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTenantNetworkConfiguration -Identity Global - - The command shown in Example 2 returns the network configuration within the scope of Global. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Get-CsTenantNetworkConfiguration -Filter "global" - - The command shown in Example 3 returns the network site that matches the specified filter. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkconfiguration - - - Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - - - - Get-CsTenantNetworkRegion - Get - CsTenantNetworkRegion - - Returns information about the network region setting in the tenant. Tenant network region is used for Location Based Routing. - - - - A network region interconnects various parts of a network across multiple geographic areas. - A network region contains a collection of network sites. For example, if your organization has many sites located in India, then you may choose to designate "India" as a network region. - Location-Based Routing is a feature that allows PSTN toll bypass to be restricted for users based on policy and the user's geographic location at the time of an incoming or outgoing PSTN call. - Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in Microsoft 365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. - - - - Get-CsTenantNetworkRegion - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - - Get-CsTenantNetworkRegion - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network region to be returned. - - String - - String - - - None - - - - - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network region to be returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantNetworkRegion - - The command shown in Example 1 returns the list of network regions for the current tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTenantNetworkRegion -Identity RedmondRegion - - The command shown in Example 2 returns the network region within the scope of RedmondRegion. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion - - - New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion - - - Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion - - - Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion - - - - - - Get-CsTenantNetworkSubnet - Get - CsTenantNetworkSubnet - - Returns information about the network subnet setting in the tenant. 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. - Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. - Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. - - - - Get-CsTenantNetworkSubnet - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - - Get-CsTenantNetworkSubnet - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. - - String - - String - - - None - - - - - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of tenant network subnets to be returned. - - String - - String - - - None - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantNetworkSubnet - - The command shown in Example 1 returns the list of network subnets for the current tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTenantNetworkSubnet -Identity '2001:4898:e8:25:844e:926f:85ad:dd70' - - The command shown in Example 2 returns the IPv6 format network subnet within the scope of '2001:4898:e8:25:844e:926f:85ad:dd70'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet - - - New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet - - - Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet - - - Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet - - - - - - Get-CsTenantTrustedIPAddress - Get - CsTenantTrustedIPAddress - - Returns information about the external trusted IPs in the tenant. Trusted IP address from user's endpoint will be checked to determine which internal subnet the user's endpoint is located. - - - - 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. Trusted IP addresses in both IPv4 and IPv6 formats are accepted. - 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. - Location Based Routing is a feature which allows PSTN toll bypass to be restricted for users based upon policy and the user's geographic location at the time of an incoming or outgoing PSTN call. - Location-Based Routing leverages the same network regions, sites, and subnets concept that is available in Skype for Business Server. It is now available in O365 for Teams clients. For toll bypass restricted locations, each IP subnet and PSTN gateway for that location are associated to a network site by the administrator. A user's location is determined by the IP subnet which the user's Teams endpoint(s) is connected to at the time of a PSTN call. A user may have multiple Teams clients located at different sites, in which case Location-Based Routing will enforce each client's routing separately depending on the location of its endpoint. - - - - Get-CsTenantTrustedIPAddress - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - LocalStore - - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. - - System.Guid - - System.Guid - - - None - - - - Get-CsTenantTrustedIPAddress - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of trusted IP address to be returned. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - LocalStore - - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - The Filter parameter allows you to limit the number of results based on filters you specify. - - String - - String - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the scope. It specifies the collection of trusted IP address to be returned. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - LocalStore - - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose trusted IP addresses are being returned. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsTenantTrustedIPAddress - - The command shown in Example 1 returns the list of trusted IP addresses for the current tenant. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsTenantTrustedIPAddress -Identity '2001:4898:e8:25:8440::' - - The command shown in Example 2 returns the IPv6 format trusted IP address detail of '2001:4898:e8:25:8440::'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenanttrustedipaddress - - - - - - Get-CsUserCallingSettings - Get - CsUserCallingSettings - - This cmdlet will show the call forwarding, simultaneous ringing, call group and delegation settings for a user. - - - - This cmdlet shows the call forwarding, simultaneous ringing, call group and delegation settings for a user. It will also show any call groups the user is a member of and if someone else has added the user as a delegate. - - - - 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 - - The Identity of the user to show call forwarding, simultaneous ringing, call group and delegation settings for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - 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 - - The Identity of the user to show call forwarding, simultaneous ringing, call group and delegation settings for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. - - - - - -------------------------- Example 1 -------------------------- - Get-CsUserCallingSettings -Identity user1@contoso.com - -SipUri : sip:user1@contoso.com -IsForwardingEnabled : True -ForwardingType : Immediate -ForwardingTarget : -ForwardingTargetType : Voicemail -IsUnansweredEnabled : False -UnansweredTarget : -UnansweredTargetType : Voicemail -UnansweredDelay : 00:00:20 -Delegates : -Delegators : -CallGroupOrder : InOrder -CallGroupTargets : {} -GroupMembershipDetails : -GroupNotificationOverride : - - This example shows that user1@contoso.com has immediate call forwarding set (IsForwardingEnabled and ForwardingType) to route all incoming calls to voicemail (ForwardingTargetType). - - - - -------------------------- Example 2 -------------------------- - Get-CsUserCallingSettings -Identity user2@contoso.com - -SipUri : sip:user2@contoso.com -IsForwardingEnabled : True -ForwardingType : Simultaneous -ForwardingTarget : sip:user3@contoso.com -ForwardingTargetType : SingleTarget -IsUnansweredEnabled : True -UnansweredTarget : -UnansweredTargetType : Voicemail -UnansweredDelay : 00:00:20 -Delegates : -Delegators : -CallGroupOrder : InOrder -CallGroupTargets : {} -GroupMembershipDetails : -GroupNotificationOverride : - - This example shows that user2@contoso.com has simultaneous ringing set (IsForwardingEnabled and ForwardingType) to user3@contoso.com (ForwardingTarget and ForwardingTargetType) and if the call has not been answered (IsUnansweredEnabled) within 20 seconds (UnansweredDelay) the call is routed to voicemail (UnansweredTargetType). - - - - -------------------------- Example 3 -------------------------- - Get-CsUserCallingSettings -Identity user4@contoso.com - -SipUri : sip:user4@contoso.com -IsForwardingEnabled : True -ForwardingType : Simultaneous -ForwardingTarget : -ForwardingTargetType : Group -IsUnansweredEnabled : True -UnansweredTarget : -UnansweredTargetType : Voicemail -UnansweredDelay : 00:00:20 -Delegates : -Delegators : -CallGroupOrder : InOrder -CallGroupTargets : {sip:user5@contoso.com} -GroupMembershipDetails : CallGroupOwnerId:sip:user6@contoso.com -GroupNotificationOverride : Mute - -(Get-CsUserCallingSettings -Identity user4@contoso.com).GroupMembershipDetails - -CallGroupOwnerId NotificationSetting ----------------- ------------------- -sip:user6@contoso.com Ring - - This example shows that user4@contoso.com has simultaneous ringing set to his/her call group (ForwardingTargetType) and that the call group contains user5@contoso.com (CallGroupTargets). The call group is defined to ring members in the order listed in the call group (CallGroupOrder). - You can also see that user4@contoso.com is a member of user6@contoso.com's call group (GroupMembershipDetails), that user6@contoso.com defined the call group with Ring notification for user4@contoso.com (NotificationSetting) and that user4@contoso.com has decided to turn off call notification for call group calls (GroupNotificationOverride). - - - - -------------------------- Example 4 -------------------------- - Get-CsUserCallingSettings -Identity user7@contoso.com - -SipUri : sip:opr7@contoso.com -IsForwardingEnabled : True -ForwardingType : Simultaneous -ForwardingTarget : -ForwardingTargetType : MyDelegates -IsUnansweredEnabled : True -UnansweredTarget : -UnansweredTargetType : Voicemail -UnansweredDelay : 00:00:20 -Delegates : Id:sip:user8@contoso.com -Delegators : -CallGroupOrder : InOrder -CallGroupTargets : {} -GroupMembershipDetails : -GroupNotificationOverride : Ring - -(Get-CsUserCallingSettings -Identity user7@contoso.com).Delegates - -Id : sip:user8@contoso.com -MakeCalls : True -ManageSettings : True -ReceiveCalls : True - - This example shows that user7@contoso.com has simultaneous ringing set to his/her delegates (ForwardingTargetType). User8@contoso.com is the only delegate (Delegates) and that user has all the permissions you can have as a delegate (Delegates). - - - - -------------------------- Example 5 -------------------------- - Get-CsUserCallingSettings -Identity user9@contoso.com - -SipUri : sip:user9@contoso.com -IsForwardingEnabled : False -ForwardingType : Immediate -ForwardingTarget : -ForwardingTargetType : Voicemail -IsUnansweredEnabled : True -UnansweredTarget : -UnansweredTargetType : Voicemail -UnansweredDelay : 00:00:20 -Delegates : -Delegators : Id:sip:user10@contoso.com -CallGroupOrder : InOrder -CallGroupTargets : {} -GroupMembershipDetails : -GroupNotificationOverride : Ring - -(Get-CsUserCallingSettings -Identity user9@contoso.com).Delegators - -Id : sip:user10@contoso.com -MakeCalls : True -ManageSettings : True -ReceiveCalls : True - - This example shows that user9@contoso.com is a delegate of user10@contoso.com (Delegators) and that user10@contoso.com has given user9@contoso.com all the permissions you can have as a delegate (Delegators). - - - - -------------------------- Example 6 -------------------------- - Get-CsUserCallingSettings -Identity user11@contoso.com - -SipUri : sip:user11@contoso.com -IsForwardingEnabled : -ForwardingType : -ForwardingTarget : -ForwardingTargetType : -IsUnansweredEnabled : -UnansweredTarget : -UnansweredTargetType : -UnansweredDelay : 00:00:20 -Delegates : -Delegators : -CallGroupOrder : Simultaneous -CallGroupTargets : {} -GroupMembershipDetails : -GroupNotificationOverride : - - This example shows the default settings for a user that has never changed the call forward settings via Microsoft Teams. Note that for users with settings as shown here, unanswered calls will by default be forwarded to voicemail after 30 seconds. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings - - - Set-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings - - - New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate - - - Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate - - - Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate - - - - - - Get-CsUserPolicyAssignment - Get - CsUserPolicyAssignment - - This cmdlet is used to return the policy assignments for a user, both directly assigned and inherited from a group. - - - - This cmdlets returns the effective policies for a user, based on either direct policy assignment or inheritance from a group policy assignment. For a given policy type, if an effective policy is not returned, this indicates that the effective policy for the user is either the tenant global default policy (if set) or the system global default policy. - This cmdlet does not currently support returning policies for multiple users. - - - - Get-CsUserPolicyAssignment - - 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 - - - Identity - - 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) - - String - - String - - - None - - - PolicyType - - Use to filter to a specific policy type. - - 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 - - - - Get-CsUserPolicyAssignment - - 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 - - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IIc3AdminConfigRpPolicyIdentity - - IIc3AdminConfigRpPolicyIdentity - - - None - - - PolicyType - - Use to filter to a specific policy type. - - 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 - - - - - - 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 - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - None - - - Identity - - 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) - - String - - String - - - None - - - InputObject - - Identity Parameter To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - - IIc3AdminConfigRpPolicyIdentity - - IIc3AdminConfigRpPolicyIdentity - - - None - - - PolicyType - - Use to filter to a specific policy type. - - 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 - - SwitchParameter - - - False - - - - - - Microsoft.Teams.Config.Cmdlets.Models.IIc3AdminConfigRpPolicyIdentity - - - - - - - - - - Microsoft.Teams.Config.Cmdlets.Models.IEffectivePolicy - - - - - - - - - COMPLEX PARAMETER PROPERTIES - To 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 <IIc3AdminConfigRpPolicyIdentity>: Identity Parameter [GroupId <String>]: The ID of a group whose policy assignments will be returned. [Identity <String>]: [OperationId <String>]: The ID of a batch policy assignment operation. [PolicyType <String>]: The policy type for which group policy assignments will be returned. - - - - - -------------------------- Example 1 -------------------------- - Get-CsUserPolicyAssignment -Identity f0d9c148-27c1-46f5-9685-544d20170ea1 - -PolicyType PolicyName PolicySource ----------- ---------- ------------ -TeamsMeetingPolicy Kiosk {Kiosk, Kiosk} -MeetingPolicy BposSAllModality {BposSAllModality} -ExternalAccessPolicy FederationAndPICDefault {FederationAndPICDefault} -TeamsMeetingBroadcastPolicy Vendor Live Events {Vendor Live Events, Employees Events} -TeamsCallingPolicy AllowCalling {AllowCalling} - - - - - - -------------------------- Example 2 -------------------------- - Get-CsUserPolicyAssignment -Identity 3b90faad-9056-49ff-8357-0b53b1d45d39 -PolicyType TeamsMeetingBroadcastPolicy | select -ExpandProperty PolicySource - -AssignmentType PolicyName Reference --------------- ---------- --------- -Direct Employees Events -Group Vendor Live Events 566b8d39-5c5c-4aaa-bc07-4f36278a1b38 - - - - - - -------------------------- Example 3 -------------------------- - Get-CsUserPolicyAssignment -Identity 3b90faad-9056-49ff-8357-0b53b1d45d39 -PolicyType TeamsMeetingPolicy | select -ExpandProperty PolicySource - -AssignmentType PolicyName Reference --------------- ---------- --------- -Group AllOn d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 -Group Kiosk 566b8d39-5c5c-4aaa-bc07-4f36278a1b38 - -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 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment - - - New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - - - Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment - - - - - - Get-CsUserPolicyPackage - Get - CsUserPolicyPackage - - This cmdlet supports retrieving the policy package that's assigned to a user. - - - - This cmdlet supports retrieving the policy package that's assigned to a user. Provide the identity of a user to retrieve the definition of their assigned policy package. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - Get-CsUserPolicyPackage - - Identity - - > Applicable: Microsoft Teams - The user that will get their assigned policy package. - - String - - String - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - The user that will get their assigned policy package. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsUserPolicyPackage -Identity johndoe@example.com - - Returns the policy package that's assigned to johndoe@example.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation - - - Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage - - - - - - Get-CsUserPolicyPackageRecommendation - Get - CsUserPolicyPackageRecommendation - - This cmdlet supports retrieving recommendations for which policy packages are best suited for a given user. - - - - This cmdlet supports retrieving recommendations for which policy packages are best suited for a given user. This recommendation is based on tenant and user information such as license types. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - Get-CsUserPolicyPackageRecommendation - - Identity - - > Applicable: Microsoft Teams - The user that will receive policy package recommendations. - - String - - String - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - The user that will receive policy package recommendations. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsUserPolicyPackageRecommendation -Identity johndoe@example.com - - Returns recommendations for which policy packages are best suited for johndoe@example.com. The recommendation value per package can either be none, weak, or strong based on how confident the existing signals (e.g. license type) imply a user role. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage - - - Grant-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage - - - - - - Get-CsVideoInteropServiceProvider - Get - CsVideoInteropServiceProvider - - Get information about the Cloud Video Interop for Teams. - - - - 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-CsVideoInteropServiceProvider - - Filter - - A regex string filter on the providers that have been set up for use within the organization. - - String - - String - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - Get-CsVideoInteropServiceProvider - - Identity - - Retrieve the specific provider information by name if is known - returns only those providers that have already been set within the tenant. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - Filter - - A regex string filter on the providers that have been set up for use within the organization. - - String - - String - - - None - - - Identity - - Retrieve the specific provider information by name if is known - returns only those providers that have already been set within the tenant. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - LocalStore - - Internal Microsoft use only. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Get-CsVideoInteropServiceProvider - - Get all of the providers that have been configured for use within the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csvideointeropserviceprovider - - - - - - Grant-CsApplicationAccessPolicy - Grant - CsApplicationAccessPolicy - - Assigns a per-user application access policy to one or more users. After assigning an application access policy to a user, the applications configured in the policy will be authorized to access online meetings on behalf of that user. - - - - This cmdlet assigns a per-user application access policy to one or more users. After assigning an application access policy to a user, the applications configured in the policy will be authorized to access online meetings on behalf of that user. Note: You can assign only 1 application access policy at a time to a particular user. Assigning a new application access policy to a user will override the existing application access policy if any. - - - - Grant-CsApplicationAccessPolicy - - Identity - - Indicates the user (object) ID of the user account to be assigned the per-user application access policy. - - UserIdParameter - - UserIdParameter - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - 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. For example, if the user already have application access policy "A" assigned, and tenant admin assigns "B" globally, then application access policy "A" will take effect for the user. - - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - 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 - - - False - - - PolicyName - - 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. - - PSListModifier - - PSListModifier - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - - Global - - 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. For example, if the user already have application access policy "A" assigned, and tenant admin assigns "B" globally, then application access policy "A" will take effect for the user. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Indicates the user (object) ID of the user account to be assigned the per-user application access policy. - - UserIdParameter - - UserIdParameter - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - 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. - - PSListModifier - - PSListModifier - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------- Assign an application access policy to a user -------- - PS C:\> Grant-CsApplicationAccessPolicy -Identity "dc17674c-81d9-4adb-bfb2-8f6a442e4624" -PolicyName "ASimplePolicy" - - The command shown above assigns the per-user application access policy "ASimplePolicy" to the user with object ID "dc17674c-81d9-4adb-bfb2-8f6a442e4624". - - - - ------ Unassign an application access policy from a user ------ - PS C:\> Grant-CsApplicationAccessPolicy -Identity "dc17674c-81d9-4adb-bfb2-8f6a442e4624" -PolicyName $Null - - In the command shown above, any per-user application access policy previously assigned to the user with user (object) ID "dc17674c-81d9-4adb-bfb2-8f6a442e4624" is unassigned from that user; as a result, applications configured in the policy can no longer access online meetings on behalf of that user. To unassign a per-user policy, set the PolicyName to a null value ($Null). - - - - Assign an application access policy to all users in the tenant - PS C:\> Get-CsOnlineUser | Grant-CsApplicationAccessPolicy -PolicyName "ASimplePolicy" - - The command shown above assigns the per-user application access policy ASimplePolicy to all the users in the tenant. To do this, the command first calls the `Get-CsOnlineUser` cmdlet to get all user accounts enabled for Microsoft Teams or Skype for Business Online. Those user accounts are then piped to the `Grant-CsApplicationAccessPolicy` cmdlet, which assigns each user the application access policy "ASimplePolicy". - - - - Assign an application access policy to users who have not been assigned one - PS C:\> Grant-CsApplicationAccessPolicy -PolicyName "ASimplePolicy" -Global - - The command shown above assigns the per-user application access policy "ASimplePolicy" to all the users in the tenant, except any that have an explicit policy assignment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - - - - Grant-CsCallingLineIdentity - Grant - CsCallingLineIdentity - - Use the `Grant-CsCallingLineIdentity` cmdlet to apply a Caller ID policy to a user account, to a group of users, or to set the tenant Global instance. - - - - You can either assign a Caller ID policy to a specific user, to a group of users, or you can set the Global policy instance. - - - - Grant-CsCallingLineIdentity - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - - - Global - - > Applicable: Microsoft Teams - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - 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. - - - 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 - - - - Grant-CsCallingLineIdentity - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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 - - String - - - 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. - - - SwitchParameter - - - False - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - - - 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 - - String - - - None - - - 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 - - String - - - 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. - - - 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 - - - - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - > Applicable: Microsoft Teams - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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 - - 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-CsCallingLineIdentity cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - String - - - None - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsCallingLineIdentity -Identity Ken.Myer@contoso.com -PolicyName CallerIDRedmond - - This example assigns the Caller ID policy with the Identity CallerIDRedmond to the user Ken.Myer@contoso.com - - - - -------------------------- Example 2 -------------------------- - Grant-CsCallingLineIdentity -PolicyName CallerIDSeattle -Global - - This example copies the Caller ID policy CallerIDSeattle to the Global policy instance. - - - - -------------------------- Example 3 -------------------------- - Grant-CsCallingLineIdentity -Group sales@contoso.com -PolicyName CallerIDSeattle -Rank 10 - - This example assigns the Caller ID policy with the Identity CallerIDSeattle to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity - - - Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity - - - Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity - - - Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity - - - New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity - - - - - - Grant-CsDialoutPolicy - Grant - CsDialoutPolicy - - Use the `Grant-CsDialoutPolicy` cmdlet to assign the tenant global, a group of users, or a per-user outbound calling restriction policy to one or more users. - - - - In Microsoft Teams, outbound calling restriction policies are used to restrict the type of audio conferencing and end user PSTN calls that can be made by users in your organization. The policies apply to all the different PSTN connectivity options for Microsoft Teams; Calling Plan, Direct Routing, and Operator Connect. - To get all the available policies in your organization run `Get-CsOnlineDialOutPolicy`. - - - - Grant-CsDialoutPolicy - - 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). - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - 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 - - - False - - - PassThru - - > Applicable: Microsoft Teams - Returns the results of the command. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsDialoutPolicy - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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). - - String - - String - - - 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. - - - SwitchParameter - - - False - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - 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 - - String - - - None - - - 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). - - String - - String - - - 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. - - - SwitchParameter - - - False - - - 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 - - - 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 - - SwitchParameter - - - False - - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - 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 three formats: 1) the user's SIP address; 2) the user's user principal name (UPN); 3) the user's ObjectId/Identity. - - String - - String - - - None - - - PassThru - - > Applicable: Microsoft Teams - Returns the results of the command. By default, this cmdlet does not generate any output. - - SwitchParameter - - SwitchParameter - - - False - - - 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). - - String - - String - - - None - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - The cmdlet is not supported for Teams resource accounts. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName "DialoutCPCandPSTNInternational" - - This example assigns the per-user outbound calling restriction policy DialoutCPCandPSTNInternational to the user with the User Principal Name "ken.myer@contoso.com". - - - - -------------------------- Example 2 -------------------------- - Grant-CsDialoutPolicy -Identity "ken.myer@contoso.com" -PolicyName $Null - - In this example, any per-user outbound calling restriction policy previously assigned to the user ken.myer@contoso.com is unassigned from that user; as a result, Ken Myer will be managed by the global outbound calling restriction policy. To unassign a per-user policy, set the PolicyName to a null value ($Null). - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineUser | Grant-CsDialoutPolicy -PolicyName "DialoutCPCInternationalPSTNDisabled" - - This example assigns the per-user outbound calling restriction policy DialoutCPCInternationalPSTNDisabled to all the users in your organization. - - - - -------------------------- Example 4 -------------------------- - Grant-CsDialoutPolicy -Global -PolicyName "DialoutCPCandPSTNInternational" - - This example sets the tenant global policy instance to DialoutCPCandPSTNInternational. - - - - -------------------------- Example 5 -------------------------- - Grant-CsDialoutPolicy -Group support@contoso.com -Rank 10 -PolicyName "DialoutCPCandPSTNInternational" - - This example assigns the policy instance "DialoutCPCandPSTNInternational" to the members of the group support@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csdialoutpolicy - - - Get-CsOnlineDialOutPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialoutpolicy - - - - - - Grant-CsGroupPolicyPackageAssignment - Grant - CsGroupPolicyPackageAssignment - - This cmdlet assigns a policy package to a group in a tenant. - - - - This cmdlet assigns a policy package to a group in a tenant. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. For more information on policy packages, please review Manage policy packages in Microsoft Teams (https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages). - Policy rankings can be optionally specified for each policy type in the package to determine which policies will be assigned to the user in case they belong to two or more groups. If policy rankings for a policy type is not specified, one of two things can happen: - - 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/microsoftteams/new-csgrouppolicyassignment#description). - - - - Grant-CsGroupPolicyPackageAssignment - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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[] - - 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 - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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[] - - String[] - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsGroupPolicyPackageAssignment -GroupId 1bc0b35f-095a-4a37-a24c-c4b6049816ab -PackageName Education_PrimaryStudent - - Assigns the Education_PrimaryStudent policy package to the group. The group will receive the lowest policy ranking for each policy type in the Education_PrimaryStudent package if the policy type is newly assigned to the group. If a policy type was already assigned to the group, the group will receive the same policy ranking as before. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsGroupPolicyPackageAssignment -GroupId 1bc0b35f-095a-4a37-a24c-c4b6049816ab -PackageName Education_Teacher -PolicyRankings "TeamsMessagingPolicy, 1", "TeamsMeetingPolicy, 1", "TeamsCallingPolicy, 2" - - Assigns the Education_Teacher policy package to the group. The group will receive a policy ranking of 1 for TeamsMessagingPolicy policy type, a policy ranking of 1 for TeamsMeetingPolicy policy type and a policy ranking of 2 for TeamsCallingPolicy policy type. For each unspecified policy type in the package, the group will receive the lowest policy ranking if it is newly assigned to the group. If a policy type was already assigned to the group, the group will receive the same policy ranking as before. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csgrouppolicypackageassignment - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - - - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - Grant - CsOnlineAudioConferencingRoutingPolicy - - This cmdlet applies an instance of the Online Audio Conferencing Routing policy to users or groups in a tenant. - - - - Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. - To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." - The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. - Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - This can be used to apply the policy to the entire tenant. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - 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 - - - Global - - This can be used to apply the policy to the entire tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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:\> Grant-CsOnlineAudioConferencingRoutingPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com - - Applies the policy "test" to the user "<testuser@test.onmicrosoft.com>". - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsOnlineAudioConferencingRoutingPolicy -PolicyName Test -Identity Global - - Applies the policy "test" to the entire tenant. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsOnlineAudioConferencingRoutingPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test - - Applies the policy "test" to the specified group. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlineaudioconferencingroutingpolicy - - - New-CsOnlineAudioConferencingRoutingPolicy - - - - Remove-CsOnlineAudioConferencingRoutingPolicy - - - - Set-CsOnlineAudioConferencingRoutingPolicy - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - - - - - - Grant-CsOnlineVoicemailPolicy - Grant - CsOnlineVoicemailPolicy - - Assigns an online voicemail policy to a user account, to a group of users, or set the tenant Global instance. Online voicemail policies manage usages for Voicemail service. - - - - This cmdlet assigns an existing user-specific online voicemail policy to a user, a group of users, or the Global policy instance. - - - - Grant-CsOnlineVoicemailPolicy - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - A unique identifier(name) of the policy. - - String - - String - - - 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 - - String - - - 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. - - - SwitchParameter - - - False - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Global - - > Applicable: Microsoft Teams - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - String - - String - - - None - - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - > Applicable: Microsoft Teams - A unique identifier(name) of the policy. - - String - - String - - - None - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsOnlineVoicemailPolicy -Identity "user@contoso.com" -PolicyName TranscriptionDisabled - - The command shown in Example 1 assigns the per-user online voicemail policy TranscriptionDisabled to a single user user@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Grant-CsOnlineVoicemailPolicy -Group sales@contoso.com -Rank 10 -PolicyName TranscriptionDisabled - - The command shown in Example 2 assigns the online voicemail policy TranscriptionDisabled to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoicemailpolicy - - - Get-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailpolicy - - - Set-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailpolicy - - - New-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoicemailpolicy - - - Remove-CsOnlineVoicemailPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoicemailpolicy - - - - - - Grant-CsOnlineVoiceRoutingPolicy - Grant - CsOnlineVoiceRoutingPolicy - - Assigns a per-user online voice routing policy to one user, a group of users, or sets the Global policy instance. 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. - - - - Grant-CsOnlineVoiceRoutingPolicy - - 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: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 - - String - - - None - - - Global - - 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 - - - False - - - PassThru - - 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 - - - False - - - - Grant-CsOnlineVoiceRoutingPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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: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 - - String - - - None - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsOnlineVoiceRoutingPolicy - - Identity - - 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 - - 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: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 - - String - - - None - - - PassThru - - 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 - - - False - - - - - - Global - - 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 - - SwitchParameter - - - False - - - Group - - 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 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 - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - 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: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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsOnlineVoiceRoutingPolicy -Identity Ken.Myer@contoso.com -PolicyName "RedmondOnlineVoiceRoutingPolicy" - - The command shown in Example 1 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy to the user ken.myer@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Grant-CsOnlineVoiceRoutingPolicy -Identity Ken.Myer@contoso.com -PolicyName $Null - - In Example 2, any per-user online voice routing policy previously assigned to the user Ken Myer is unassigned from that user; as a result, Ken Myer will be managed by the global online voice routing policy. To unassign a per-user policy, set the PolicyName to a null value ($null). - - - - -------------------------- Example 3 -------------------------- - Get-CsOnlineUser | Grant-CsOnlineVoiceRoutingPolicy -PolicyName "RedmondOnlineVoiceRoutingPolicy" - - Example 3 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy to all the users in the tenant. To do this, the command first calls the `Get-CsOnlineUser` cmdlet to get all user accounts enabled for Microsoft Teams or Skype for Business Online. Those user accounts are then piped to the `Grant-CsOnlineVoiceRoutingPolicy` cmdlet, which assigns each user the online voice routing policy RedmondOnlineVoiceRoutingPolicy. - - - - -------------------------- Example 4 -------------------------- - Grant-CsOnlineVoiceRoutingPolicy -PolicyName "RedmondOnlineVoiceRoutingPolicy" -Global - - Example 4 assigns the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy as the global online voice routing policy. This affects all the users in the tenant, except any that have an explicit policy assignment. - - - - -------------------------- Example 5 -------------------------- - Grant-CsOnlineVoiceRoutingPolicy -Group sales@contoso.com -Rank 10 -PolicyName "RedmondOnlineVoiceRoutingPolicy" - - Example 5 assigns the online voice routing policy RedmondOnlineVoiceRoutingPolicy to all members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy - - - New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - - - Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy - - - Set-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy - - - Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy - - - - - - Grant-CsTeamsAudioConferencingPolicy - Grant - CsTeamsAudioConferencingPolicy - - Assigns a Teams audio-conferencing policy at the per-user scope. 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. - - - - Granular control over which audio conferencing features your users can or cannot use is an important feature for many organizations. This cmdlet lets you assign a teams audio conferencing policy at the per-user scope. Audio conferencing policies determine the audio-conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. - - - - Grant-CsTeamsAudioConferencingPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - 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 - - - False - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAudioConferencingPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsAudioConferencingPolicy - - Identity - - 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 - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - 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 - - - Global - - 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 - - SwitchParameter - - - False - - - Group - - 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 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 - - String - - - 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 - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - String - - - - - - - - - - Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Grant-CsTeamsAudioCOnferencingPolicy -identity "Ken Myer" -PolicyName "Emea Users" - - In this example, a user with identity "Ken Myer" is being assigned the "Emea Users" policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy - - - Remove-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsaudioconferencingpolicy - - - - - - Grant-CsTeamsCallHoldPolicy - Grant - CsTeamsCallHoldPolicy - - Assigns a per-user Teams call hold policy to one or more users. The Teams call hold policy is used to customize the call hold experience for Teams clients. - - - - Teams call hold policies are used to customize the call hold experience for teams clients. When Microsoft Teams users participate in calls, they have the ability to hold a call and have the other entity in the call listen to an audio file during the duration of the hold. - Assigning a teams call hold policy to a user sets an audio file to be played during the duration of the hold. - - - - Grant-CsTeamsCallHoldPolicy - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCallHoldPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 Grant-CsTeamsCallHoldPoly 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCallHoldPolicy - - 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 - - String - - - None - - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 Grant-CsTeamsCallHoldPoly 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 - - - 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 - - - Group - - 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 - - String - - - 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 Grant-CsTeamsCallHoldPoly cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - 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: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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsCallHoldPolicy -Identity 'KenMyer@contoso.com' -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' - - The command shown in Example 1 assigns the per-user Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the user with the user principal name (UPN) "KenMyer@contoso.com". - - - - -------------------------- Example 2 -------------------------- - Grant-CsTeamsCallHoldPolicy -Identity 'Ken Myer' -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' - - The command shown in Example 2 assigns the per-user Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the user with the display name "Ken Myer". - - - - -------------------------- Example 3 -------------------------- - Grant-CsTeamsCallHoldPolicy -Identity 'Ken Myer' -PolicyName $null - - In Example 3, any per-user Teams call hold policy previously assigned to the user "Ken Myer" is revoked. As a result, the user will be managed by the global Teams call hold policy. - - - - -------------------------- Example 4 -------------------------- - Grant-CsTeamsCallHoldPolicy -Global -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' - - The command shown in Example 4 sets the Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, as the Global policy which will apply to all users in your tenant. - - - - -------------------------- Example 5 -------------------------- - Grant-CsTeamsCallHoldPolicy -Group sales@contoso.com -Rank 10 -PolicyName 'ContosoPartnerTeamsCallHoldPolicy' - - The command shown in Example 5 sets the Teams call hold policy, ContosoPartnerTeamsCallHoldPolicy, to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallholdpolicy - - - New-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallholdpolicy - - - Get-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallholdpolicy - - - Set-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallholdpolicy - - - Remove-CsTeamsCallHoldPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallholdpolicy - - - - - - Grant-CsTeamsCallParkPolicy - Grant - CsTeamsCallParkPolicy - - 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 - - PolicyName - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCallParkPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCallParkPolicy - - Identity - - The User ID of the user to whom the policy is being assigned. - - String - - String - - - None - - - PolicyName - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - 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 - - - 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 - - - Identity - - The User ID of the user to whom the policy is being assigned. - - String - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - 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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsCallParkPolicy -PolicyName SalesPolicy -Identity Ken.Myer@contoso.com - - Assigns a custom policy "Sales Policy" to the user Ken Myer. - - - - -------------------------- Example 2 -------------------------- - Grant-CsTeamsCallParkPolicy -Group sales@contoso.com -Rank 10 -PolicyName SalesPolicy - - Assigns a custom policy "Sales Policy" to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscallparkpolicy - - - Set-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy - - - Get-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscallparkpolicy - - - New-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy - - - Remove-CsTeamsCallParkPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy - - - - - - Grant-CsTeamsChannelsPolicy - Grant - CsTeamsChannelsPolicy - - 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. - - - - Grant-CsTeamsChannelsPolicy - - PolicyName - - Specify the policy that should be granted to the user - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft usage only. - - Fqdn - - Fqdn - - - None - - - Global - - Use the -Global flag to convert the values of the Global policy to the values of the specified policy. - - - SwitchParameter - - - False - - - PassThru - - {{ Fill PassThru Description }} - - - 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 - - - - Grant-CsTeamsChannelsPolicy - - PolicyName - - Specify the policy that should be granted to the user - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft usage only. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - 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 - - - - Grant-CsTeamsChannelsPolicy - - Identity - - Specify the user to whom the policy is being assigned. - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName - - Specify the policy that should be granted to the user - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft usage only. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - 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 - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft usage only. - - Fqdn - - Fqdn - - - None - - - Global - - Use the -Global flag to convert the values of the Global policy to the values of the specified policy. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Specify the user to whom the policy is being assigned. - - UserIdParameter - - UserIdParameter - - - None - - - PassThru - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Specify the policy that should be granted to the user - - 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 - - Internal Microsoft use only. - - 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.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsChannelsPolicy -Identity studentaccount@company.com -PolicyName StudentPolicy - - Assigns a custom policy to a specific user in an organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamschannelspolicy - - - - - - Grant-CsTeamsComplianceRecordingPolicy - Grant - CsTeamsComplianceRecordingPolicy - - Assigns a per-user Teams recording policy to one or more users. This policy is used to govern automatic policy-based recording in your tenant. Automatic policy-based recording is only applicable to Microsoft Teams users. - - - - Teams recording policies 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 record audio, video and video-based screen sharing activity. - Note that simply assigning a Teams recording policy to a Microsoft Teams user will not activate automatic policy-based recording for all Microsoft Teams calls and meetings that the user participates in. Among other things, you will need to create an application instance of a policy-based recording application i.e. a bot in your tenant and will then need to assign an appropriate policy to the user. - 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. - Assigning your Microsoft Teams users a Teams recording policy activates automatic policy-based recording for all new Microsoft Teams calls and meetings that the users participate in. The system will load the recording application and join it to appropriate calls and meetings in order for it to enforce compliance with the administrative set policy. Existing calls and meetings are unaffected. - - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - 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 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - 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 - - 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 - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - Group - - 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 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 - - - 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 - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsComplianceRecordingPolicy -Identity 'Ken Myer' -PolicyName 'ContosoPartnerComplianceRecordingPolicy' - - The command shown in Example 1 assigns the per-user Teams recording policy ContosoPartnerComplianceRecordingPolicy to the user with the display name "Ken Myer". - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsComplianceRecordingPolicy -Identity 'Ken Myer' -PolicyName $null - - In Example 2, any per-user Teams recording policy previously assigned to the user "Ken Myer" is revoked. As a result, the user will be managed by the global Teams recording policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingpolicy - - - New-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpolicy - - - Set-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingpolicy - - - Remove-CsTeamsComplianceRecordingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingpolicy - - - Get-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingapplication - - - Set-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscompliancerecordingapplication - - - Remove-CsTeamsComplianceRecordingApplication - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscompliancerecordingapplication - - - New-CsTeamsComplianceRecordingPairedApplication - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscompliancerecordingpairedapplication - - - - - - Grant-CsTeamsCortanaPolicy - Grant - CsTeamsCortanaPolicy - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - - - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - This cmdlet lets you assign a Teams Cortana policy at the per-user scope. - - - - Grant-CsTeamsCortanaPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - PassThru - - {{ Fill PassThru Description }} - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsCortanaPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - - False - - - - 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 - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - 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 - - 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 - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsCortanaPolicy -identity "Ken Myer" -PolicyName MyCortanaPolicy - - In this example, a user with identity "Ken Myer" is being assigned the MyCortanaPolicy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy - - - - - - Grant-CsTeamsEmergencyCallingPolicy - Grant - CsTeamsEmergencyCallingPolicy - - This cmdlet assigns a Teams Emergency Calling policy. - - - - This cmdlet assigns a Teams Emergency Calling policy to a user, a group of users, or to the Global policy instance. Emergency Calling policy is used for the life cycle of emergency calling experience for the security desk and Teams client location experience. - - - - Grant-CsTeamsEmergencyCallingPolicy - - PolicyName - - The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEmergencyCallingPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEmergencyCallingPolicy - - Identity - - Indicates the Identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - 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 - - - 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 - - - Identity - - Indicates the Identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - The Identity of the Teams Emergency Calling policy to apply to the user. To remove an existing user level policy assignment, specify PolicyName as $null. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module version 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsEmergencyCallingPolicy -Identity user1 -PolicyName TestTECP - - This example assigns the Teams Emergency Calling policy TestTECP to a user - - - - -------------------------- Example 2 -------------------------- - Grant-CsTeamsEmergencyCallingPolicy -Global -PolicyName SalesTECP - - Assigns the Teams Emergency Calling policy called "SalesTECP" to the Global policy instance. This sets the parameters in the Global policy instance to the values found in the SalesTECP instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallingpolicy - - - New-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallingpolicy - - - Get-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallingpolicy - - - Remove-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallingpolicy - - - Set-CsTeamsEmergencyCallingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallingpolicy - - - - - - Grant-CsTeamsEmergencyCallRoutingPolicy - Grant - CsTeamsEmergencyCallRoutingPolicy - - This cmdlet assigns a Teams Emergency Call Routing policy. - - - - This cmdlet assigns a Teams Emergency Call Routing policy to a user, a group of users, or to the Global policy instance. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. - - - - Grant-CsTeamsEmergencyCallRoutingPolicy - - PolicyName - - The Identity of the Teams Emergency Call Routing policy to apply. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEmergencyCallRoutingPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - The Identity of the Teams Emergency Call Routing policy to apply. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEmergencyCallRoutingPolicy - - Identity - - Indicates the Identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - The Identity of the Teams Emergency Call Routing policy to apply. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - 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 - - - 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 - - - Identity - - Indicates the Identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - The Identity of the Teams Emergency Call Routing policy to apply. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - The GrantToGroup syntax is supported in Teams PowerShell Module version 4.5.1-preview or later. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTeamsEmergencyCallRoutingPolicy -Identity user1 -PolicyName Test - - This example assigns a Teams Emergency Call Routing policy (Test) to a user (user1). - - - - -------------------------- Example 2 -------------------------- - Grant-CsTeamsEmergencyCallRoutingPolicy -Group sales@contoso.com -Rank 10 -PolicyName Test - - This example assigns the Teams Emergency Call Routing policy (Test) to the members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy - - - Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy - - - - - - Grant-CsTeamsEnhancedEncryptionPolicy - Grant - CsTeamsEnhancedEncryptionPolicy - - Cmdlet to assign a specific Teams enhanced encryption Policy to a user. - - - - Cmdlet to assign a specific Teams enhanced encryption Policy to a user. - The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. - - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - 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 - - - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - 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-CsTeamsEnhancedEncryptionPolicy 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - 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-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 - - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - 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 - - SwitchParameter - - - False - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Object - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Grant-CsTeamsEnhancedEncryptionPolicy -Identity 'KenMyer@contoso.com' -PolicyName 'ContosoPartnerTeamsEnhancedEncryptionPolicy' - - The command shown in Example 1 assigns the per-user Teams enhanced encryption policy, ContosoPartnerTeamsEnhancedEncryptionPolicy, to the user with the user principal name (UPN) "KenMyer@contoso.com". - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Grant-CsTeamsEnhancedEncryptionPolicy -Identity 'Ken Myer' -PolicyName $null - - In Example 2, any per-user Teams enhanced encryption policy previously assigned to the user "Ken Myer" is revoked. - As a result, the user will be managed by the global Teams enhanced encryption policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy - - - Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy - - - New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy - - - Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy - - - Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy - - - - - - Grant-CsTeamsEventsPolicy - Grant - CsTeamsEventsPolicy - - Assigns Teams Events policy to a user, group of users, or the entire tenant. Note that this policy is currently still in preview. - - - - Assigns Teams Events policy to a user, group of users, or the entire tenant. - TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - Grant-CsTeamsEventsPolicy - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - - Grant-CsTeamsEventsPolicy - - Group - - Specifies the group used for the group policy assignment. - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsEventsPolicy - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy 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 - - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PassThru - - Enables passing a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsEventsPolicy cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - 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:DisablePublicWebinars has a PolicyName equal to DisablePublicWebinars. - To unassign a per-user policy previously assigned to a user, set the PolicyName to a null value ($Null). - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy DisablePublicWebinars - - The command shown in Example 1 assigns the per-user Teams Events policy, DisablePublicWebinars, to the user with the user principal name (UPN) "user1@contoso.com". - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsEventsPolicy -Identity "user1@contoso.com" -Policy $null - - The command shown in Example 2 revokes the per-user Teams Events policy for the user with the user principal name (UPN) "user1@contoso.com". As a result, the user will be managed by the global Teams Events policy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsEventsPolicy -Group "sales@contoso.com" -Rank 10 -Policy DisablePublicWebinars - - The command shown in Example 3 assigns the Teams Events policy, DisablePublicWebinars, to the members of the group "sales@contoso.com". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamseventspolicy - - - - - - Grant-CsTeamsFeedbackPolicy - Grant - CsTeamsFeedbackPolicy - - Use this cmdlet to grant a specific Teams Feedback policy to a user (the ability to send feedback about Teams to Microsoft and whether they receive the survey). - - - - Grants a specific Teams Feedback policy to a user (the ability to send feedback about Teams to Microsoft and whether they receive the survey) or to set a specific Teams feedback policy the new effective global policy. - - - - Grant-CsTeamsFeedbackPolicy - - PolicyName - - The identity of the policy to be granted. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use. - - Object - - Object - - - None - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsFeedbackPolicy - - PolicyName - - The identity of the policy to be granted. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use. - - Object - - Object - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsFeedbackPolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - - - PolicyName - - The identity of the policy to be granted. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use. - - Object - - Object - - - None - - - PassThru - - 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 - - - False - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - 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 - - - DomainController - - Internal Microsoft use. - - Object - - Object - - - None - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - The identity of the policy to be granted. - - Object - - Object - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Internal Microsoft use. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsFeedbackPolicy -PolicyName "New Hire Feedback Policy" -Identity kenmyer@litwareinc.com - - In this example, the policy "New Hire Feedback Policy" is granted to the user kenmyer@litwareinc.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsfeedbackpolicy - - - - - - Grant-CsTeamsIPPhonePolicy - Grant - CsTeamsIPPhonePolicy - - Use the Grant-CsTeamsIPPhonePolicy cmdlet to assign a set of Teams phone policies to a user account or group of user accounts. Teams phone policies determine the features that are available to users of Teams phones. For example, you might enable the hot desking feature for some users while disabling it for others. - - - - Use the Grant-CsTeamsIPPhonePolicy cmdlet to assign a set of Teams phone policies to a phone signed in with an account that may be used by end users, common area phones, or meeting room accounts. - Note: Assigning a per user policy will override any global policy taking effect against the respective user account. - - - - Grant-CsTeamsIPPhonePolicy - - PolicyName - - The Identity of the Teams phone policy to apply to the user. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Microsoft Internal Use Only. - - Object - - Object - - - None - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - Tenant - - Microsoft internal usage only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsIPPhonePolicy - - PolicyName - - The Identity of the Teams phone policy to apply to the user. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Microsoft Internal Use Only. - - Object - - Object - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Microsoft internal usage only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsIPPhonePolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - - - PolicyName - - The Identity of the Teams phone policy to apply to the user. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Microsoft Internal Use Only. - - Object - - Object - - - None - - - PassThru - - 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 - - - False - - - Tenant - - Microsoft internal usage only. - - Guid - - Guid - - - 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 - - - DomainController - - Microsoft Internal Use Only. - - Object - - Object - - - None - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - Object - - Object - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - The Identity of the Teams phone policy to apply to the user. - - XdsIdentity - - XdsIdentity - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Microsoft internal usage only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsIPPhonePolicy -Identity Foyer1@contoso.com -PolicyName CommonAreaPhone - - This example shows assignment of the CommonAreaPhone policy to user account Foyer1@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsipphonepolicy - - - - - - Grant-CsTeamsMediaLoggingPolicy - Grant - CsTeamsMediaLoggingPolicy - - Assigns Teams Media Logging policy to a user or entire tenant. - - - - Assigns Teams Media Logging policy to a user or entire tenant. TeamsMediaLoggingPolicy allows administrators to enable media logging for users. When assigned, it will enable media logging for the user overriding other settings. After unassigning the policy, media logging setting will revert to the previous value. - - - - 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. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - > 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 - - - False - - - 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. - - - SwitchParameter - - - False - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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. - - String - - String - - - 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. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMediaLoggingPolicy - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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. - - - SwitchParameter - - - False - - - 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 - - - Global - - > 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 - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - 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 - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - 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. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Grant-CsTeamsMediaLoggingPolicy -Identity 'KenMyer@contoso.com' -PolicyName Enabled - - Assign Teams Media Logging policy to a single user with the user principal name (UPN) "KenMyer@contoso.com". This will enable media logging for the user. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Grant-CsTeamsMediaLoggingPolicy -Identity 'KenMyer@contoso.com' -PolicyName $null - - Unassign Teams Media Logging policy from a single user with the user principal name (UPN) "KenMyer@contoso.com". This will revert media logging setting to the previous value. - - - - -------------------------- EXAMPLE 3 -------------------------- - PS C:\> Grant-CsTeamsMediaLoggingPolicy -Global -PolicyName Enabled - - Assign Teams Media Logging policy to the entire tenant. Note that this will enable logging for every single user in the tenant without a possibility to disable it for individual users. - - - - -------------------------- EXAMPLE 4 -------------------------- - PS C:\> Grant-CsTeamsMediaLoggingPolicy -Global -PolicyName $null - - Unassign Teams Media Logging policy from the entire tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmedialoggingpolicy - - - Get-CsTeamsMediaLoggingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsmedialoggingpolicy - - - - - - Grant-CsTeamsMeetingBroadcastPolicy - Grant - CsTeamsMeetingBroadcastPolicy - - 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. - - - - Grant-CsTeamsMeetingBroadcastPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Not applicable to online service. - - Fqdn - - Fqdn - - - 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 - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMeetingBroadcastPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Not applicable to online service. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - 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 - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Not applicable to online service. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - 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 - - - DomainController - - Not applicable to online service. - - Fqdn - - Fqdn - - - 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 - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - 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 - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingbroadcastpolicy - - - - - - Grant-CsTeamsMeetingPolicy - Grant - CsTeamsMeetingPolicy - - Assigns a teams meeting policy at the per-user scope. 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 - - - - Assigns a teams meeting policy at the per-user scope. 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 - - - - Grant-CsTeamsMeetingPolicy - - 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 - - - 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 - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - {{ Fill DomainController Description }} - - Fqdn - - Fqdn - - - 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 - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - Grant-CsTeamsMeetingPolicy - - 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 - - - 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 - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - {{ Fill DomainController Description }} - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - DomainController - - > Applicable: Microsoft Teams - {{ Fill DomainController Description }} - - Fqdn - - Fqdn - - - 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 - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - PassThru - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsMeetingPolicy -identity "Ken Myer" -PolicyName StudentMeetingPolicy - - In this example, a user with identity "Ken Myer" is being assigned the StudentMeetingPolicy - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmeetingpolicy - - - - - - Grant-CsTeamsMessagingPolicy - Grant - CsTeamsMessagingPolicy - - Assigns a teams messaging policy at the per-user scope. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. - - - - Granular control over which messaging features your users can or cannot use is an important feature for many organizations. This cmdlet lets you assign a teams messaging policy at the per-user scope. Teams messaging policies determine the features and capabilities that can be used in messaging within the teams client. - - - - Grant-CsTeamsMessagingPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMessagingPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - 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 - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - None - - - PassThru - - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - 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 - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - {{ Fill PassThru Description }} - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - 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 - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsMessagingPolicy -identity "Ken Myer" -PolicyName StudentMessagingPolicy - - In this example, a user with identity "Ken Myer" is being assigned the StudentMessagingPolicy - - - - -------------------------- Example 2 -------------------------- - PS C:\> Get-CsOnlineUser -Filter {Department -eq 'Executive Management'} | Grant-CsTeamsMessagingPolicy -PolicyName "ExecutivesPolicy" - - In this example, the ExecutivesPolicy is being assigned to a whole department by piping the result of Get-CsOnlineUser cmdlet - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmessagingpolicy - - - - - - Grant-CsTeamsMobilityPolicy - Grant - CsTeamsMobilityPolicy - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - - - - Assigns a teams mobility policy at the per-user scope. - The Grant-CsTeamsMobilityPolicy cmdlet lets an Admin assign a custom teams mobility policy to a user. - - - - Grant-CsTeamsMobilityPolicy - - PolicyName - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMobilityPolicy - - PolicyName - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsMobilityPolicy - - Identity - - The User Id of the user to whom the policy is being assigned. - - UserIdParameter - - UserIdParameter - - - 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 Global policy, you can assign $Null. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - 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 - - - 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 - - - Group - - 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. - - UserIdParameter - - UserIdParameter - - - 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 - - - PolicyName - - 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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsMobilityPolicy -PolicyName SalesPolicy -Identity "Ken Myer" - - Assigns a custom policy "Sales Policy" to the user "Ken Myer" - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsmobilitypolicy - - - - - - Grant-CsTeamsRoomVideoTeleConferencingPolicy - Grant - CsTeamsRoomVideoTeleConferencingPolicy - - Assigns a TeamsRoomVideoTeleConferencingPolicy to a Teams Room Alias on a per-room or per-Group basis. - - - - The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). - - - - Grant-CsTeamsRoomVideoTeleConferencingPolicy - - PolicyName - - Corresponds to the name of the policy under -Identity from the cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - When you use this cmdlet without specifying a identity, the policy applies to all rooms in your tenant, except any that have an explicit policy assignment. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsRoomVideoTeleConferencingPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - Corresponds to the name of the policy under -Identity from the cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsRoomVideoTeleConferencingPolicy - - Identity - - The alias of the Teams room that the IT admin is granting this PolicyName to. - - String - - String - - - None - - - PolicyName - - Corresponds to the name of the policy under -Identity from the cmdlet. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. - - - 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 - - - Global - - When you use this cmdlet without specifying a identity, the policy applies to all rooms in your tenant, except any that have an explicit policy assignment. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The alias of the Teams room that the IT admin is granting this PolicyName to. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Allows the user to indicate whether the cmdlet passes an output object through the pipeline, in this case, after a process is stopped. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Corresponds to the name of the policy under -Identity from the cmdlet. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsroomvideoteleconferencingpolicy - - - - - - Grant-CsTeamsSurvivableBranchAppliancePolicy - Grant - CsTeamsSurvivableBranchAppliancePolicy - - 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 - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsSurvivableBranchAppliancePolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsSurvivableBranchAppliancePolicy - - Identity - - The identity of the user. - - String - - String - - - None - - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. - - - 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 - - - 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 - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The identity of the user. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user account being assigned the policy. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Name of the policy to be assigned. The PolicyName is simply the policy Identity without the policy scope, i.e. the "Tag:" prefix. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamssurvivablebranchappliancepolicy - - - - - - Grant-CsTeamsUpdateManagementPolicy - Grant - CsTeamsUpdateManagementPolicy - - Use this cmdlet to grant a specific Teams Update Management policy to a user. - - - - Grants a specific Teams Update Management policy to a user or sets a specific Teams Update Management policy as the new effective global policy. - - - - Grant-CsTeamsUpdateManagementPolicy - - PolicyName - - The identity of the policy to be granted. - - String - - String - - - None - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - - SwitchParameter - - - False - - - PassThru - - 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 - - - False - - - - Grant-CsTeamsUpdateManagementPolicy - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - The identity of the policy to be granted. - - String - - String - - - None - - - PassThru - - 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 - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTeamsUpdateManagementPolicy - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - The identity of the policy to be granted. - - String - - String - - - None - - - PassThru - - 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 - - - False - - - - - - Global - - Use this parameter to make the specified policy in -PolicyName the new effective global policy. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - Indicates the identity of the user account the policy should be assigned to. - - String - - String - - - None - - - PassThru - - 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 - - SwitchParameter - - - False - - - PolicyName - - The identity of the policy to be granted. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsTeamsUpdateManagementPolicy -PolicyName "Campaign Policy" -Identity kenmyer@litwareinc.com - - In this example, the policy "Campaign Policy" is granted to the user kenmyer@litwareinc.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsupdatemanagementpolicy - - - - - - Grant-CsTeamsUpgradePolicy - Grant - CsTeamsUpgradePolicy - - TeamsUpgradePolicy allows administrators to manage the transition from Skype for Business to Teams. - - - - 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/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. - > [!NOTE] > > - TeamsUpgradePolicy is available in both Office 365 and in on-premises versions of Skype for Business Server, but there are differences: > - In Office 365, admins can specify both coexistence mode and whether to trigger notifications of pending upgrade. > - In on-premises with Skype for Business Server, the only available option is to trigger notifications. Skype for Business Server 2015 with CU8 or Skype for Business Server 2019 are required. > - TeamsUpgradePolicy in Office 365 can be granted to users homed on-premises in hybrid deployments of Skype for Business as follows: > - Coexistence mode is honored by users homed on-premises, however on-premises users cannot be granted the UpgradeToTeams instance (mode=TeamsOnly) of TeamsUpgradePolicy. To be upgraded to TeamsOnly mode, users must be either homed in Skype for Business Online or have no Skype account anywhere. > - The NotifySfBUsers setting of Office 365 TeamsUpgradePolicy is not honored by users homed on-premises. Instead, the on-premises version of TeamsUpgradePolicy must be used. > - In Office 365, all relevant instances of TeamsUpgradePolicy are built into the system, so there is no corresponding New cmdlet available. In contrast, Skype for Business Server does not contain built-in instances, so the New cmdlet is available on-premises. Only NotifySfBUsers property is available in on-premises. > - When granting a user a policy with mode=TeamsOnly or mode=SfBWithTeamsCollabAndMeetings, by default, meetings organized by that user will be migrated to Teams. For details, see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). - When users are in any of the Skype for Business modes (SfBOnly, SfBWithTeamsCollab, SfBWithTeamsCollabAndMeetings), calling and chat functionality in the Teams app are disabled (but chat in the context of a Teams meeting is still allowed). Similarly, when users are in the SfBOnly or SfBWithTeamsCollab modes, meeting scheduling is disabled. For more details, see 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). - The `Grant-CsTeamsUpgradePolicy` cmdlet checks the configuration of the corresponding settings in TeamsMessagingPolicy, TeamsCallingPolicy, and TeamsMeetingPolicy to determine if those settings would be superceded by TeamsUpgradePolicy and if so, an informational message is provided in PowerShell. It is not necessary to set these other policy settings. This is for informational purposes only. Below is an example of what the PowerShell warning looks like: - `Grant-CsTeamsUpgradePolicy -Identity user1@contoso.com -PolicyName SfBWithTeamsCollab` WARNING : The user `user1@contoso.com` currently has enabled values for: AllowUserChat, AllowPrivateCalling, AllowPrivateMeetingScheduling, AllowChannelMeetingScheduling, however these values will be ignored. This is because you are granting this user TeamsUpgradePolicy with mode=SfBWithTeamsCollab, which causes the Teams client to behave as if they are disabled. - > [!NOTE] > These warning messages are not affected by the -WarningAction parameter. - - - - Grant-CsTeamsUpgradePolicy - - 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 - - - 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 - - - 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 - - - - Grant-CsTeamsUpgradePolicy - - 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 - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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 - - - - - - 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 - - - Global - - Use this switch if you want to grant the specified policy to be the default policy for all users in the tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - The user you want to grant policy to. This can be specified as SIP address, UserPrincipalName, or ObjectId. - - UserIdParameter - - UserIdParameter - - - 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 - - SwitchParameter - - - False - - - PolicyName - - The name of the policy instance. - - Object - - Object - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - Tenant - - Do not use. - - Object - - Object - - - None - - - - - - Microsoft.Rtc.Management.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------- Example 1: Grant Policy to an individual user -------- - PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName UpgradeToTeams -Identity mike@contoso.com - - The above cmdlet assigns the "UpgradeToTeams" policy to user Mike@contoso.com. This effectively upgrades the user to Teams only mode. This command will only succeed if the user does not have an on-premises Skype for Business account. - - - - ------- Example 2: Remove Policy for an individual user ------- - PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName $null -Identity mike@contoso.com - - The above cmdlet removes any policy changes made to user Mike@contoso.com and effectively Inherits the global tenant setting for teams Upgrade. - - - - --------- Example 3: Grant Policy to the entire tenant --------- - PS C:\> Grant-CsTeamsUpgradePolicy -PolicyName SfBOnly -Global - - To grant a policy to all users in the org (except any that have an explicit policy assigned), omit the identity parameter. If you do not specify the -Global parameter, you will be prompted to confirm the operation. - - - - Example 4 Get a report on existing TeamsUpgradePolicy users (Screen Report) - Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* - - You can get the output on the screen, on CSV or Html format. For Screen Report. - - - - Example 5 Get a report on existing TeamsUpgradePolicy users (CSV Report) - $objUsers = Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* -$objusers | ConvertTo-Csv -NoTypeInformation | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.csv" - - This will create a CSV file on the Desktop of the current user with the name "TeamsUpgrade.csv" - - - - Example 6 Get a report on existing TeamsUpgradePolicy users (HTML Report) - $objUsers = Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* -$objusers | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.html" - - After running these lines will create an HTML file on the Desktop of the current user with the name "TeamUpgrade.html" - - - - Example 7 Get a report on existing TeamsUpgradePolicy users (CSV Report - Oneliner version) - Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* | ConvertTo-Csv -NoTypeInformation | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.csv" - - This will create a CSV file on the Desktop of the current user with the name "TeamsUpgrade.csv" - - - - Example 8 Get a report on existing TeamsUpgradePolicy users (HTML Report - Oneliner Version) - Get-CSOnlineUser | select UserPrincipalName, teamsupgrade* | ConvertTo-Html | Out-File "$env:USERPROFILE\desktop\TeamsUpgrade.html" - - After running these lines will create an HTML file on the Desktop of the current user with the name "TeamUpgrade.html" - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/grant-csteamsupgradepolicy - - - 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 - - - Using the Meeting Migration Service (MMS) - https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms - - - Coexistence with Skype for Business - https://learn.microsoft.com/microsoftteams/coexistence-chat-calls-presence - - - Get-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradeconfiguration - - - Set-CsTeamsUpgradeConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsupgradeconfiguration - - - Get-CsTeamsUpgradePolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsupgradepolicy - - - - - - Grant-CsTeamsVideoInteropServicePolicy - Grant - CsTeamsVideoInteropServicePolicy - - 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. - 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`. - Q: I assigned CVI policy to a user, but I can't create a VTC meeting with that policy or I made changes to policy assignment, but it didn't reflect on new meetings I created. - A: The policy is cached for 6 hours. Changes to the policy are updated after the cache expires. Check for your changes after 6 hours. Frequently used commands that can help identify the policy assignment : - - Command to get full list of user along with their CVI policy: `Get-CsOnlineUser | Format-List UserPrincipalName,TeamsVideoInteropServicePolicy` - - Command to get the policy assigned to the whole tenant: `Get-CsTeamsVideoInteropServicePolicy Global` - - - - Grant-CsTeamsVideoInteropServicePolicy - - PolicyName - - Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use only. - - Fqdn - - Fqdn - - - None - - - Global - - Use this flag to override the warning when assigning the global policy for your tenant. - - - 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-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. - - - 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 - - - - Grant-CsTeamsVideoInteropServicePolicy - - PolicyName - - Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use only. - - Fqdn - - Fqdn - - - None - - - Group - - Specifies the group used for the group policy assignment. - - 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-CsTeamsVideoInteropServicePolicy 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 - - - 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 - - - - Grant-CsTeamsVideoInteropServicePolicy - - Identity - - {{Fill Identity Description}} - - UserIdParameter - - UserIdParameter - - - None - - - PolicyName - - Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use only. - - Fqdn - - Fqdn - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. - - - 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 - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DomainController - - Internal Microsoft use only. - - Fqdn - - Fqdn - - - None - - - Global - - Use this flag to override the warning when assigning the global policy for your tenant. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - {{Fill Identity Description}} - - UserIdParameter - - UserIdParameter - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy. - - 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 - - Internal Microsoft use only. - - 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.AD.UserIdParameter - - - - - - - - - - System.Object - - - - - - - - - - - - - - ------ Example 1: The whole tenant has the same provider ------ - Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Global - - Specify the provider for the whole tenant or use the value $null to remove the tenant-level provider and let the whole tenant fall back to the Global policy. - - - - Example 2: The tenant has two (or three) interop service providers - Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Identity <UserId> - - Specify each user with the Identity parameter, and use Provider-1 or Provider-2 for the value of the PolicyName parameter. Use the value $null to remove the provider and let the user's provider fallback to Global policy. - - - - Example 3: The tenant has a default interop service provider, but specific users (say IT folks) want to pilot another interop provider. - Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | ServiceProviderDisabled> [-Identity <UserId>] - - - To assign Provider-1 as the default interop service provider, don't use the Identity parameter and use the value Provider-1 for the PolicyName parameter. - - For specific users to try Provider-2, specify each user with the Identity parameter, and use the value Provider-2 for the PolicyName parameter. - - For specific users who need to disable CVI, specify each user with the Identity parameter and use the value ServiceProviderDisabled for the PolicyName parameter. - - - - Example 4: Cloud Video Interop has been disabled for the entire tenant, except for those users that have an explicit policy assigned to them. - Grant-CsTeamsVideoInteropServicePolicy -PolicyName ServiceProviderDisabled - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvideointeropservicepolicy - - - - - - Grant-CsTeamsVoiceApplicationsPolicy - Grant - CsTeamsVoiceApplicationsPolicy - - Assigns a per-user Teams voice applications policy to one or more users. TeamsVoiceApplications policy governs what permissions the supervisors/users have over auto attendants and call queues. - - - - 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. - - - - Grant-CsTeamsVoiceApplicationsPolicy - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - 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 - - - False - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsVoiceApplicationsPolicy - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Group - - Specifies the group used for the group policy assignment. - - String - - String - - - 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 - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsVoiceApplicationsPolicy - - Identity - - 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 - - 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: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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - 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 - - - Global - - 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 - - SwitchParameter - - - False - - - Group - - 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 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 - - String - - - 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 - - SwitchParameter - - - False - - - 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: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 - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - Grant-CsTeamsVoiceApplicationsPolicy -Identity "Ken Myer" -PolicyName "SDA-Allow-All" - - The command shown in Example 1 assigns the per-user Teams voice applications policy SDA-Allow-All to the user with the display name "Ken Myer". - - - - -------------------------- EXAMPLE 2 -------------------------- - Grant-CsTeamsVoiceApplicationsPolicy -PolicyName "SDA-Allow-All" -Global - - Example 2 assigns the per-user online voice routing policy "SDA-Allow-All to all the users in the tenant, except any that have an explicit policy assignment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsvoiceapplicationspolicy - - - Get-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsvoiceapplicationspolicy - - - Set-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsvoiceapplicationspolicy - - - Remove-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsvoiceapplicationspolicy - - - New-CsTeamsVoiceApplicationsPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsvoiceapplicationspolicy - - - - - - Grant-CsTeamsWorkLoadPolicy - Grant - CsTeamsWorkLoadPolicy - - This cmdlet applies an instance of the Teams Workload policy to users or groups in a tenant. - - - - The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. - - - - Grant-CsTeamsWorkLoadPolicy - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Global - - This is the equivalent to `-Identity Global`. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsWorkLoadPolicy - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Grant-CsTeamsWorkLoadPolicy - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - 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 - - - Global - - This is the equivalent to `-Identity Global`. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - This is the identifier of the group that the policy should be assigned to. - - String - - String - - - None - - - Identity - - Specifies the identity of the target user. - Example: <testuser@test.onmicrosoft.com> - Example: 98403f08-577c-46dd-851a-f0460a13b03d - Use the "Global" Identity if you wish to set the policy for the entire tenant. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - Specifies the name of the policy to be assigned. The PolicyName is the policy identity minus the policy scope ("tag:"), for example, a policy that has an identity of "Tag:Enabled" has a PolicyName of "Enabled". - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - 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:\> Grant-CsTeamsWorkLoadPolicy -PolicyName Test -Identity testuser@test.onmicrosoft.com - - Assigns a given policy to a user. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Grant-CsTeamsWorkLoadPolicy -Group f13d6c9d-ce76-422c-af78-b6018b4d9c80 -PolicyName Test - - Assigns a given policy to a group. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Grant-CsTeamsWorkLoadPolicy -Global -PolicyName Test - - Assigns a given policy to the tenant. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Grant-CsTeamsWorkLoadPolicy -Global -PolicyName Test - - > [!NOTE] > Using `$null` in place of a policy name can be used to unassigned a policy instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy - - - Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy - - - Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy - - - Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy - - - New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy - - - - - - Grant-CsTenantDialPlan - Grant - CsTenantDialPlan - - Use the Grant-CsTenantDialPlan cmdlet to assign an existing tenant dial plan to a user, to a group of users, or to set the Global policy instance. - - - - The Grant-CsTenantDialPlan cmdlet assigns an existing tenant dial plan to a user, a group of users, or sets the Global policy instance. Tenant dial plans provide information that is required for Enterprise Voice users to make telephone calls. Users who do not have a valid tenant dial plan cannot make calls by using Enterprise Voice. A tenant dial plan determines such things as how normalization rules are applied. - You can check whether a user has been granted a per-user tenant dial plan by calling a command in this format: `Get-CsUserPolicyAssignment -Identity "<user name>" -PolicyType TenantDialPlan.` - - - - Grant-CsTenantDialPlan - - PolicyName - - > Applicable: Microsoft Teams - The PolicyName parameter is the name of the tenant dial plan to be assigned. - - String - - String - - - None - - - Global - - > Applicable: Microsoft Teams - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - - SwitchParameter - - - False - - - PassThru - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - - Grant-CsTenantDialPlan - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - The PolicyName parameter is the name of the tenant dial plan to be assigned. - - String - - String - - - None - - - PassThru - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - Grant-CsTenantDialPlan - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the user to whom the policy should be assigned. - - String - - String - - - None - - - PolicyName - - > Applicable: Microsoft Teams - The PolicyName parameter is the name of the tenant dial plan to be assigned. - - String - - String - - - None - - - PassThru - - > Applicable: Microsoft Teams - {{ Fill PassThru Description }} - - - SwitchParameter - - - False - - - - - - Global - - > Applicable: Microsoft Teams - Sets the parameters of the Global policy instance to the values in the specified policy instance. - - SwitchParameter - - SwitchParameter - - - False - - - Group - - > Applicable: Microsoft Teams - Specifies the group used for the group policy assignment. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the user to whom the policy should be assigned. - - String - - String - - - None - - - PassThru - - > 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 - - String - - - None - - - Rank - - > Applicable: Microsoft Teams - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - Int32 - - Int32 - - - None - - - - - - - The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. - - - - - -------------------------- Example 1 -------------------------- - Grant-CsTenantDialPlan -PolicyName Vt1tenantDialPlan9 -Identity Ken.Myer@contoso.com - - This example grants the Vt1tenantDialPlan9 dial plan to Ken.Meyer@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Grant-CsTenantDialPlan -Identity Ken.Myer@contoso.com -PolicyName $Null - - In Example 2, any dial plan previously assigned to the user Ken Myer is unassigned from that user; as a result, Ken Myer will be managed by the global dial plan. To unassign a custom tenant dial plan, set the PolicyName to a null value ($Null). - - - - -------------------------- Example 3 -------------------------- - Grant-CsTenantDialPlan -Group sales@contoso.com -Rank 10 -PolicyName Vt1tenantDialPlan9 - - This example grants the Vt1tenantDialPlan9 dial plan to members of the group sales@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan - - - Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan - - - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - - - - Grant-CsUserPolicyPackage - Grant - CsUserPolicyPackage - - This cmdlet supports applying a policy package to users in a tenant. Note that there is a limit of 20 users you can apply the package to at a time. To apply a policy package to a larger number of users, consider using New-CsBatchPolicyPackageAssignmentOperation. - - - - This cmdlet supports applying a policy package to users in a tenant. Provide one or more user identities to assign the package with all the associated policies. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. The recommended policy package for each user can be found by running Get-CsUserPolicyPackageRecommendation. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - Grant-CsUserPolicyPackage - - 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[] - - String[] - - - None - - - 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 - - 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 - - > 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[] - - String[] - - - None - - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Grant-CsUserPolicyPackage -Identity 1bc0b35f-095a-4a37-a24c-c4b6049816ab,johndoe@example.com -PackageName Education_PrimaryStudent - - Applies the Education_PrimaryStudent policy package to two users in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csuserpolicypackage - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation - - - Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage - - - New-CsBatchPolicyPackageAssignmentOperation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation - - - - - - Import-CsAutoAttendantHolidays - Import - CsAutoAttendantHolidays - - Use Import-CsAutoAttendantHolidays cmdlet to import holiday schedules of an existing Auto Attendant (AA) that were previously exported using the Export-CsAutoAttendantHolidays cmdlet. - - - - The Export-CsAutoAttendantHolidays cmdlet and the Import-CsAutoAttendantHolidays cmdlet enable you to export holiday schedules in your auto attendant and then later import that information. This can be extremely useful in a situation where you need to configure same holiday sets in multiple auto attendants. - The Export-CsAutoAttendantHolidays cmdlet returns the holiday schedule information in serialized form (as a byte array). The caller can then write the bytes to the disk to obtain a CSV file. Similarly, the Import-CsAutoAttendantHolidays cmdlet accepts the holiday schedule information as a byte array, which can be read from the aforementioned CSV file. The first line of the CSV file is considered a header record and is always ignored. NOTES : - Each line in the CSV file used by Export-CsAutoAttendantHolidays and Import-CsAutoAttendantHolidays cmdlet should be of the following format: - `HolidayName,StartDateTime1,EndDateTime1,StartDateTime2,EndDateTime2,...,StartDateTime10,EndDateTime10` - where - - HolidayName is the name of the holiday to be imported. - - StartDateTimeX and EndDateTimeX specify a date/time range for the holiday and are optional. If no date-time ranges are defined, then the holiday is imported without any date/time ranges. They follow the same format as New-CsOnlineDateTimeRange cmdlet. - - EndDateTimeX is optional. If it is not specified, the end bound of the date time range is set to 00:00 of the day after the start date. - - - The first line of the CSV file is considered a header record and is always ignored by Import-CsAutoAttendantHolidays cmdlet. - - If the destination auto attendant for the import already contains a call flow or schedule by the same name as one of the holidays being imported, the corresponding CSV record is skipped. - - For holidays that are successfully imported, a default call flow is created which is configured without any greeting and simply disconnects the call on being executed. - - - - Import-CsAutoAttendantHolidays - - Identity - - > Applicable: Microsoft Teams - The identity for the AA whose holiday schedules are to be imported. - - System.String - - System.String - - - None - - - Input - - > Applicable: Microsoft Teams - The Input parameter specifies the holiday schedule information that is to be imported. - - System.Byte[] - - System.Byte[] - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - The identity for the AA whose holiday schedules are to be imported. - - System.String - - System.String - - - None - - - Input - - > Applicable: Microsoft Teams - The Input parameter specifies the holiday schedule information that is to be imported. - - System.Byte[] - - System.Byte[] - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Import-CsAutoAttendantHolidays cmdlet accepts a string as the Identity parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.HolidayImportResult - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv") -Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes - - In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from a file at path "C:\Imports\Holidays.csv" to an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. - - - - -------------------------- Example 2 -------------------------- - $bytes = [System.IO.File]::ReadAllBytes("C:\Imports\Holidays.csv") -Import-CsAutoAttendantHolidays -Identity 6abea1cd-904b-520b-be96-1092cc096432 -Input $bytes | Format-Table -Wrap -AutoSize - - In this example, the Import-CsAutoAttendantHolidays cmdlet is used to import holiday schedule information from a file at path "C:\Imports\Holidays.csv" to an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. The result of the import process is formatted as a table. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/import-csautoattendantholidays - - - Export-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/export-csautoattendantholidays - - - Get-CsAutoAttendantHolidays - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantholidays - - - - - - Import-CsOnlineAudioFile - Import - CsOnlineAudioFile - - Use the Import-CsOnlineAudioFile cmdlet to upload a new audio file. - - - - The Import-CsOnlineAudioFile cmdlet uploads a new audio file for use with the Auto Attendant (AA), Call Queue (CQ) service or Music on Hold for Microsoft Teams. - - - - Import-CsOnlineAudioFile - - 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 - - HuntGroup - - TenantGlobal - - String - - String - - - None - - - Content - - > 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. - - Byte[] - - Byte[] - - - None - - - FileName - - > 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. - - String - - String - - - 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 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 - - HuntGroup - - TenantGlobal - - String - - String - - - None - - - Content - - > 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. - - Byte[] - - Byte[] - - - None - - - FileName - - > 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. - - String - - String - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile - - - - - - - - - When you import an audio file to be used for Auto Attendant or Call Queue, the audio file will automatically be marked for deletion (as seen by running Get-CsOnlineAudioFile) and it will be deleted after 48 to 72 hours from the time of import, unless the audio file is associated to an Auto Attendant and Call Queue before 48 hours after it was imported. - You are responsible for independently clearing and securing all necessary rights and permissions to use any music or audio file with your Microsoft Teams service, which may include intellectual property and other rights in any music, sound effects, audio, brands, names, and other content in the audio file from all relevant rights holders, which may include artists, actors, performers, musicians, songwriters, composers, record labels, music publishers, unions, guilds, rights societies, collective management organizations and any other parties who own, control or license the music copyrights, sound effects, audio and other intellectual property rights. - - - - - -------------------------- Example 1 -------------------------- - $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/microsoftteams/new-csautoattendantprompt). - - - - -------------------------- Example 2 -------------------------- - $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/microsoftteams/set-cscallqueue)to provide the audio file id. - - - - -------------------------- Example 3 -------------------------- - $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/microsoftteams/new-csteamscallholdpolicy)to provide the audio file id. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - Export-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/export-csonlineaudiofile - - - Get-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineaudiofile - - - Remove-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudiofile - - - - - - New-CsApplicationAccessPolicy - New - CsApplicationAccessPolicy - - Creates a new application access policy. Application access policy contains a list of application (client) IDs. When granted to a user, those applications will be authorized to access online meetings on behalf of that user. - - - - This cmdlet creates a new application access policy. Application access policy contains a list of application (client) IDs. When granted to a user, those applications will be authorized to access online meetings on behalf of that user. - - - - New-CsApplicationAccessPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - AppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Description - - Specifies the description of the policy. - - String - - String - - - None - - - - - - AppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Description - - Specifies the description of the policy. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - - - - - - - - - - ---- Create a new application access policy with one app ID ---- - PS C:\> New-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds "d39597bf-8407-40ca-92ef-1ec26b885b7b" -Description "Some description" - - The command shown above shows how to create a new policy with one app IDs configured. - - - - - Create a new application access policy with multiple app IDs - - PS C:\> New-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds "d39597bf-8407-40ca-92ef-1ec26b885b71", "57caaef9-5ed0-48d5-8862-e5abfa71b3e1", "dc17674c-81d9-4adb-bfb2-8f6a442e4620" -Description "Some description" - - The command shown above shows how to create a new policy with a list of (three) app IDs configured. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csapplicationaccesspolicy - - - - - - New-CsAutoAttendant - New - CsAutoAttendant - - Use the New-CsAutoAttendant cmdlet to create a new Auto Attendant (AA). - - - - 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 > > 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. - - The default call flow can be used either as the 24/7 call flow if no other call flows are specified, or as the business hours call flow if an "after hours" call flow was specified together with the corresponding schedule and call handling association. - - If a user is present in both inclusion and exclusion scopes, then exclusion scope always takes priority, i.e., the user will not be able to be contacted through directory lookup feature. - - - - New-CsAutoAttendant - - 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 - - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - Object - - Object - - - None - - - EnableMainlineAttendant - - > 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 - - - SwitchParameter - - - 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 - - - False - - - EnableVoiceResponse - - > Applicable: Microsoft Teams - The EnableVoiceResponse parameter indicates whether voice response for AA is enabled. - - - SwitchParameter - - - 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/microsoftteams/new-csautoattendantdialscope)cmdlet. - - Object - - Object - - - 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 - - - Operator - - > 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 - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - TimeZoneId - - > 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. - - System.String - - System.String - - - None - - - UserNameExtension - - > 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. - - System.String - - System.String - - - None - - - 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.String - - System.String - - - None - - - - - - 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 - - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - Object - - Object - - - None - - - EnableMainlineAttendant - - > 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 - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - 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/microsoftteams/new-csautoattendantdialscope)cmdlet. - - Object - - Object - - - 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 - - - Operator - - > 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 - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - TimeZoneId - - > 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. - - System.String - - System.String - - - None - - - UserNameExtension - - > 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. - - System.String - - System.String - - - None - - - 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.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.OAA.Models.AutoAttendant - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).Identity -$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User - -$greetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" -$menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign or press 0 to reach the operator." -$defaultMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($menuPrompt) -MenuOptions @($menuOptionZero) -EnableDialByName -$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($greetingPrompt) -Menu $defaultMenu - -$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!" -$automaticMenuOption = New-CsAutoAttendantMenuOption -Action Disconnect -DtmfResponse Automatic -$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($automaticMenuOption) -$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings @($afterHoursGreetingPrompt) -Menu $afterHoursMenu - -$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00 -$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00 -$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours @($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1, $timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement - -$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id - -$inclusionScopeGroupIds = @("4c3053a6-20bf-43df-bf7a-156124168856") -$inclusionScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $inclusionScopeGroupIds - -$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" -Operator $operatorEntity -InclusionScope $inclusionScope - - This example creates a new AA named Main auto attendant that has the following properties: - - It sets a default call flow. - - It sets an after-hours call flow. - - It enables voice response. - - The default language is en-US. - - The time zone is set to UTC. - - An inclusion scope is specified. - - - - -------------------------- Example 2 -------------------------- - $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).Identity -$operatorEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User - -$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" -$dcfMenuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 -$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign or press 0 to reach the operator." -$dcfMenu=New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -MenuOptions @($dcfMenuOptionZero) -EnableDialByName -$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu - -$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso! Unfortunately, you have reached us outside of our business hours. We value your call please call us back Monday to Friday, between 9 A.M. to 12 P.M. and 1 P.M. to 5 P.M. Goodbye!" -$afterHoursMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$afterHoursMenu=New-CsAutoAttendantMenu -Name "After Hours menu" -MenuOptions @($afterHoursMenuOption) -$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours call flow" -Greetings @($afterHoursGreetingPrompt) -Menu $afterHoursMenu - -$timerange1 = New-CsOnlineTimeRange -Start 09:00 -end 12:00 -$timerange2 = New-CsOnlineTimeRange -Start 13:00 -end 17:00 -$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours Schedule" -WeeklyRecurrentSchedule -MondayHours @($timerange1, $timerange2) -TuesdayHours @($timerange1, $timerange2) -WednesdayHours @($timerange1, $timerange2) -ThursdayHours @($timerange1, $timerange2) -FridayHours @($timerange1, $timerange2) -Complement - -$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id - -$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." -$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) -$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu - -$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" -$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) - -$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id - -$aa = New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" -Operator $operatorEntity - - This example creates a new AA named Main auto attendant that has the following properties: - - It sets a default call flow. - - It sets an after-hours call flow. - - It sets a call flow for Christmas holiday. - - It enables voice response. - - The default language is en-US. - - The time zone is set to UTC. - - - - -------------------------- Example 3 -------------------------- - # Create Christmas Schedule -$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" -$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) - -# Create First Auto Attendant -$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Customer Support!" -$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$dcfMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName -DirectorySearchMethod ByName -$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu - -$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." -$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) -$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu - -$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id - -New-CsAutoAttendant -Name "Customer Support Auto Attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" - -# Id : a65b3434-05a1-48ed-883d-e3ca35a60af8 -# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164 -# Name : Customer Support Auto Attendant -# LanguageId : en-US -# VoiceId : Female -# DefaultCallFlow : Default call flow -# Operator : -# TimeZoneId : UTC -# VoiceResponseEnabled : True -# CallFlows : Christmas -# Schedules : Christmas -# CallHandlingAssociations : Holiday(1) -# Status : Successful -# DialByNameResourceId : caddaea5-c001-5a09-b997-9d3a33e834f2 -# DirectoryLookupScope : -# ApplicationInstances : - -# Create Second Auto Attendant -$dcfGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso Store!" -$dcfMenuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$dcfMenu = New-CsAutoAttendantMenu -Name "Default menu" -Prompts @($dcfMenuPrompt) -EnableDialByName -DirectorySearchMethod ByName -$defaultCallFlow = New-CsAutoAttendantCallFlow -Name "Default call flow" -Greetings @($dcfGreetingPrompt) -Menu $dcfMenu - -$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." -$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) -$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu - -$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id - -New-CsAutoAttendant -Name "Main auto attendant" -DefaultCallFlow $defaultCallFlow -EnableVoiceResponse -CallFlows @($afterHoursCallFlow, $christmasCallFlow) -CallHandlingAssociations @($afterHoursCallHandlingAssociation, $christmasCallHandlingAssociation) -LanguageId "en-US" -TimeZoneId "UTC" - -# Id : 236450c4-9f1e-4c19-80eb-d68819d36a15 -# TenantId : f6b89083-a2f8-55cc-9f62-33b73af44164 -# Name : Main auto attendant -# LanguageId : en-US -# VoiceId : Female -# DefaultCallFlow : Default call flow -# Operator : -# TimeZoneId : UTC -# VoiceResponseEnabled : True -# CallFlows : Christmas -# Schedules : Christmas -# CallHandlingAssociations : Holiday(1) -# Status : Successful -# DialByNameResourceId : 5abfa626-8f80-54ff-97eb-03c2aadcc329 -# DirectoryLookupScope : -# ApplicationInstances : - -# Show the auto attendants associated with this holiday schedule: -Get-CsOnlineSchedule $christmasSchedule.Id - -# Id : 578745b2-1f94-4a38-844c-6bf6996463ee -# Name : Christmas -# Type : Fixed -# WeeklyRecurrentSchedule : -# FixedSchedule : 24/12/2017 00:00 - 26/12/2017 00:00 -# AssociatedConfigurationIds : a65b3434-05a1-48ed-883d-e3ca35a60af8, 236450c4-9f1e-4c19-80eb-d68819d36a15 - - 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/microsoftteams/set-csautoattendant)cmdlet documentation for examples on how to do that. - - - - -------------------------- Example 4 -------------------------- - $aaName = "Main Auto Attendant" -$language = "en-US" -$greetingText = "Welcome to Contoso" -$mainMenuText = "To reach your party by name, say it now. To talk to Sales, please press 1. To talk to User2 press 2. Please press 0 for operator" -$afterHoursText = "Sorry Contoso is closed. Please call back during week days from 7AM to 8PM. Goodbye!" -$tz = "Romance Standard Time" -$operatorId = (Get-CsOnlineUser -Identity "sip:user1@contoso.com").Identity -$user1Id = (Get-CsOnlineUser -Identity "sip:user2@contoso.com").Identity -$salesCQappinstance = (Get-CsOnlineUser -Identity "sales@contoso.com").Identity # one of the application instances associated to the Call Queue -$tr1 = New-CsOnlineTimeRange -Start 07:00 -End 20:00 - -# After hours -$afterHoursSchedule = New-CsOnlineSchedule -Name "After Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1) -TuesdayHours @($tr1) -WednesdayHours @($tr1) -ThursdayHours @($tr1) -FridayHours @($tr1) -Complement -$afterHoursGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $afterHoursText -$afterHoursMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$afterHoursMenu = New-CsAutoAttendantMenu -Name "AA menu1" -MenuOptions @($afterHoursMenuOption) -$afterHoursCallFlow = New-CsAutoAttendantCallFlow -Name "After Hours" -Menu $afterHoursMenu -Greetings @($afterHoursGreetingPrompt) -$afterHoursCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $afterHoursSchedule.Id -CallFlowId $afterHoursCallFlow.Id - -# Business hours menu options -$operator = New-CsAutoAttendantCallableEntity -Identity $operatorId -Type User -$sales = New-CsAutoAttendantCallableEntity -Identity $salesCQappinstance -Type applicationendpoint -$user1 = New-CsAutoAttendantCallableEntity -Identity $user1Id -Type User -$menuOption0 = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 -CallTarget $operator -$menuOption1 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -CallTarget $sales -$menuOption2 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone2 -CallTarget $user1 - -# Business hours menu -$greetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $greetingText -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt $mainMenuText -$menu = New-CsAutoAttendantMenu -Name "AA menu2" -Prompts @($menuPrompt) -EnableDialByName -MenuOptions @($menuOption0,$menuOption1,$menuOption2) -$callFlow = New-CsAutoAttendantCallFlow -Name "Default" -Menu $menu -Greetings $greetingPrompt - -# Auto attendant -New-CsAutoAttendant -Name $aaName -LanguageId $language -CallFlows @($afterHoursCallFlow) -TimeZoneId $tz -Operator $operator -DefaultCallFlow $callFlow -CallHandlingAssociations @($afterHoursCallHandlingAssociation) -EnableVoiceResponse - - This example creates a new AA named Main auto attendant that has the following properties: - - It sets a default call flow. - - It sets an after-hours call flow. - - It sets a business hours options. - - It references a call queue as a menu option. - - The default language is en-US. - - The time zone is set to Romance Standard. - - It sets user1 as operator. - - It has user2 also as a menu option. - - The Auto Attendant is voice enabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant - - - New-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation - - - Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus - - - Get-CsAutoAttendantSupportedLanguage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedlanguage - - - Get-CsAutoAttendantSupportedTimeZone - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantsupportedtimezone - - - New-CsAutoAttendantCallableEntity - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity - - - New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow - - - New-CsAutoAttendantCallHandlingAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation - - - New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule - - - Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant - - - Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant - - - Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant - - - - - - New-CsAutoAttendantCallableEntity - New - CsAutoAttendantCallableEntity - - The New-CsAutoAttendantCallableEntity cmdlet lets you create a callable entity. - - - - The New-CsAutoAttendantCallableEntity cmdlet lets you create a callable entity for use with call transfers from the Auto Attendant service. Callable entities can be created using either Object ID or TEL URIs and can refer to any of the following entities: - - User - - ApplicationEndpoint - - ConfigurationEndpoint - - ExternalPstn - - SharedVoicemail NOTE : In order to setup a shared voicemail, an Office 365 Group that can receive external emails is required. - - - - New-CsAutoAttendantCallableEntity - - CallPriority - - > 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. - - Int16 - - Int16 - - - 3 - - - EnableSharedVoicemailSystemPromptSuppression - - > Applicable: Microsoft Teams - Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. - - - SwitchParameter - - - False - - - EnableTranscription - - > Applicable: Microsoft Teams - Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. - - - SwitchParameter - - - False - - - Identity - - > 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - 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 - - - - - - CallPriority - - > 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. - - Int16 - - Int16 - - - 3 - - - EnableSharedVoicemailSystemPromptSuppression - - > Applicable: Microsoft Teams - Suppresses the "Please leave a message after the tone" system prompt when transferring to shared voicemail. - - SwitchParameter - - SwitchParameter - - - False - - - EnableTranscription - - > Applicable: Microsoft Teams - Enables the email transcription of voicemail, this is only supported with shared voicemail callable entities. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - > 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 - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - 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 - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $callableEntity = New-CsAutoAttendantCallableEntity -Identity "9bad1a25-3203-5207-b34d-1bd933b867a5" -Type User - - This example creates a user callable entity. - - - - -------------------------- Example 2 -------------------------- - $callableEntity = New-CsAutoAttendantCallableEntity -Identity "tel:+1234567890" -Type ExternalPSTN - - This example creates an ExternalPSTN callable entity. - - - - -------------------------- Example 3 -------------------------- - $operatorObjectId = (Get-CsOnlineUser operator@contoso.com).ObjectId -$callableEntity = New-CsAutoAttendantCallableEntity -Identity $operatorObjectId -Type User - - This example gets a user object using Get-CsOnlineUser cmdlet. We then use the Microsoft Entra ObjectId of that user object to create a user callable entity. - - - - -------------------------- Example 4 -------------------------- - $callableEntityId = Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant" -MaxResults 1 | Select-Object -Property Id -$callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityId.Id -Type ApplicationEndpoint - - This example gets an application instance by name using Find-CsOnlineApplicationInstance cmdlet. We then use the Microsoft Entra ObjectId of that application instance to create an application endpoint callable entity. - - - - -------------------------- Example 5 -------------------------- - $callableEntityGroup = Find-CsGroup -SearchQuery "Main Auto Attendant" -ExactMatchOnly $true -MailEnabledOnly $true -$callableEntity = New-CsAutoAttendantCallableEntity -Identity $callableEntityGroup -Type SharedVoicemail -EnableTranscription - - This example gets an Office 365 group by name using Find-CsGroup cmdlet. Then the Guid of that group is used to create a shared voicemail callable entity that supports transcription. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity - - - Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser - - - Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance - - - - - - New-CsAutoAttendantCallFlow - New - CsAutoAttendantCallFlow - - Use the New-CsAutoAttendantCallFlow cmdlet to create a new call flow. - - - - 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 - - ForceListenMenuEnabled - - > 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. - - - 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 - - - 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/microsoftteams/new-csautoattendantmenu)cmdlet. - - System.Object - - System.Object - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a unique friendly name for the call flow. - - System.String - - System.String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - ForceListenMenuEnabled - - > 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. - - SwitchParameter - - 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 - - - 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/microsoftteams/new-csautoattendantmenu)cmdlet. - - System.Object - - System.Object - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a unique friendly name for the call flow. - - System.String - - System.String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName -$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu - - This example creates a new call flow that renders the "Default Menu" menu. - - - - -------------------------- Example 2 -------------------------- - $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName -$greeting = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" -$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -Greetings $greeting -ForceListenMenuEnabled - - This example creates a new call flow that plays a greeting before rendering the "Default Menu" menu with Force listen menu enabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow - - - New-CsAutoAttendantMenu - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu - - - Get-CsMainlineAttendantFlow - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt - - - - - - New-CsAutoAttendantCallHandlingAssociation - New - CsAutoAttendantCallHandlingAssociation - - Use the `New-CsAutoAttendantCallHandlingAssociation` cmdlet to create a new call handling association. - - - - The `New-CsAutoAttendantCallHandlingAssociation` cmdlet creates a new call handling association to be used with the Auto Attendant (AA) service. The OAA service uses call handling associations to determine which call flow to execute when a specific schedule is in effect. - - - - New-CsAutoAttendantCallHandlingAssociation - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - String - - String - - - None - - - Disable - - > 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. - - - SwitchParameter - - - False - - - ScheduleId - - > 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. - - System.String - - System.String - - - None - - - 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: - 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. - - Guid - - Guid - - - 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/microsoftteams/new-csautoattendantcallflow)cmdlet. - - String - - String - - - None - - - Disable - - > 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. - - SwitchParameter - - SwitchParameter - - - False - - - ScheduleId - - > 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. - - System.String - - System.String - - - None - - - 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: - 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. - - Guid - - Guid - - - 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 - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.OAA.Models.CallHandlingAssociation - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00 -$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr) -TuesdayHours @($tr) -WednesdayHours @($tr) -ThursdayHours @($tr) -FridayHours @($tr) -Complement -$scheduleId = $schedule.Id - -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName -$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -$callFlowId = $callFlow.Id - -$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $scheduleId -CallFlowId $callFlowId - - This example creates the following: - - a new after-hours schedule - - a new after-hours call flow - - a new after-hours call handling association - - - - -------------------------- Example 2 -------------------------- - $tr = New-CsOnlineTimeRange -Start 09:00 -End 17:00 -$schedule = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr) -TuesdayHours @($tr) -WednesdayHours @($tr) -ThursdayHours @($tr) -FridayHours @($tr) -Complement -$scheduleId = $schedule.Id - -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts $menuPrompt -EnableDialByName -$callFlow = New-CsAutoAttendantCallFlow -Name "Default Call Flow" -Menu $menu -$callFlowId = $callFlow.Id - -$disabledCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type AfterHours -ScheduleId $scheduleId -CallFlowId $callFlowId -Disable - - This example creates the following: - - a new after-hours schedule - - a new after-hours call flow - - a disabled after-hours call handling association - - - - -------------------------- Example 3 -------------------------- - $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -$schedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) -$scheduleId = $schedule.Id - -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "We are closed for Christmas. Please call back later." -$menuOption = New-CsAutoAttendantMenuOption -DtmfResponse Automatic -Action DisconnectCall -$menu = New-CsAutoAttendantMenu -Name "Christmas Menu" -Prompts @($menuPrompt) -MenuOptions @($menuOption) -$callFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($greeting) -Menu $menu -$callFlowId = $callFlow.Id - -$callHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $scheduleId -CallFlowId $callFlowId - - This example creates the following: - - a new holiday schedule - - a new holiday call flow - - a new holiday call handling association - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation - - - New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow - - - New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule - - - Get-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineschedule - - - - - - New-CsAutoAttendantDialScope - New - CsAutoAttendantDialScope - - Use New-CsAutoAttendantDialScope cmdlet to create dial-scopes for use with Auto Attendant (AA) service. - - - - This cmdlet creates a new dial-scope to be used with Auto Attendant (AA) service. AAs use dial-scopes to restrict the scope of call transfers that can be made through directory lookup feature. NOTE : The returned dial-scope model composes a member for the underlying type/implementation, e.g. in case of the group-based dial scope, in order to modify its Group IDs, you can access them through `DialScope.GroupScope.GroupIds`. - - - - New-CsAutoAttendantDialScope - - GroupIds - - > 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 - - System.Collections.Generic.List - - - None - - - GroupScope - - > Applicable: Microsoft Teams - Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - GroupIds - - > 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 - - System.Collections.Generic.List - - - None - - - GroupScope - - > Applicable: Microsoft Teams - Indicates that a dial-scope based on groups (distribution lists, security groups) is to be created. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.OAA.Models.DialScope - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $groupIds = @("00000000-0000-0000-0000-000000000000") -$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds - - In Example 1, the New-CsAutoAttendantDialScope cmdlet is used to create a dial-scope with a group whose id is 00000000-0000-0000-0000-000000000000. - - - - -------------------------- Example 2 -------------------------- - $groupIds = Find-CsGroup -SearchQuery "Contoso Sales" | % { $_.Id } -$dialScope = New-CsAutoAttendantDialScope -GroupScope -GroupIds $groupIds - - In Example 2, we use the Find-CsGroup cmdlet to find groups with name "Contoso Sales", and then use the identities of those groups to create an auto attendant dial scope using the New-CsAutoAttendantDialScope cmdlet. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantdialscope - - - Find-CsGroup - https://learn.microsoft.com/powershell/module/microsoftteams/find-csgroup - - - - - - New-CsAutoAttendantMenu - New - CsAutoAttendantMenu - - The New-CsAutoAttendantMenu cmdlet creates a new menu. - - - - The New-CsAutoAttendantMenu cmdlet creates a new menu for the Auto Attendant (AA) service. The OAA service uses menus to provide callers with choices, and then takes action based on the selection. - - - - New-CsAutoAttendantMenu - - DirectorySearchMethod - - > 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 - - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - - - None - - - EnableDialByName - - > Applicable: Microsoft Teams - The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. - - - SwitchParameter - - - False - - - MenuOptions - - > 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. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a friendly name for the menu. - - System.String - - System.String - - - None - - - Prompts - - > 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - DirectorySearchMethod - - > 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 - - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - - Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod - - - None - - - EnableDialByName - - > Applicable: Microsoft Teams - The EnableDialByName parameter lets users do a directory search by recipient name and get transferred to the party. - - SwitchParameter - - SwitchParameter - - - False - - - MenuOptions - - > 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. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a friendly name for the menu. - - System.String - - System.String - - - None - - - Prompts - - > 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.Menu - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -EnableDialByName -DirectorySearchMethod ByExtension - - This example creates a new menu that allows the caller to reach a target by name, and also defines the Directory Search Method to Dial By Extension. - - - - -------------------------- Example 2 -------------------------- - $menuOptionZero = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 -$menuPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "To reach your party by name, enter it now, followed by the pound sign. For operator, press zero." -$menu = New-CsAutoAttendantMenu -Name "Default Menu" -Prompts @($menuPrompt) -MenuOptions @($menuOptionZero) -EnableDialByName -DirectorySearchMethod ByName - - This example creates a new menu that allows the caller to reach a target by name or the operator by pressing the 0 key, and also defines the Directory Search Method to Dial By Name. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenu - - - New-CsAutoAttendantMenuOption - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption - - - New-CsAutoAttendantPrompt - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption - - - - - - New-CsAutoAttendantMenuOption - New - CsAutoAttendantMenuOption - - Use the New-CsAutoAttendantMenuOption cmdlet to create a new menu option. - - - - 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 - - - - New-CsAutoAttendantMenuOption - - 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: - - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - - DisconnectCall - The call is disconnected. - - 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 - - Object - - - 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 - - The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. The DtmfResponse 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 #. - - Automatic - The action is executed without user response. - - Object - - Object - - - None - - - MainlineAttendantTarget - - 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.String - - System.String - - - None - - - Prompt - - 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 - - Object - - - None - - - AgentTarget - - The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. - - String - - String - - - None - - - AgentTargetTagTemplateId - - The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. - - String - - String - - - None - - - Tenant - - This parameter is reserved for Microsoft internal use only. - - System.Guid - - System.Guid - - - 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 - - - - - - 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: - - AgentAndQueues - Restricted to VoiceApps TAP customers - Announcement - plays a defined prompt then returns to the menu - - DisconnectCall - The call is disconnected. - - 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 - - Object - - - 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 - - The DtmfResponse parameter indicates the key on the telephone keypad to be pressed to activate the menu option. The DtmfResponse 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 #. - - Automatic - The action is executed without user response. - - Object - - Object - - - None - - - MainlineAttendantTarget - - 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.String - - System.String - - - None - - - Prompt - - 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 - - Object - - - None - - - AgentTarget - - The AgentTarget parameter is the GUID of the target Copilot or a 3rd party IVR agent. - - String - - String - - - None - - - AgentTargetTagTemplateId - - The AgentTargetTagTemplateId parameter is the GUID of the Tag template to assign. - - String - - String - - - None - - - Tenant - - This parameter is reserved for Microsoft internal use only. - - System.Guid - - System.Guid - - - 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 - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.MenuOption - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0 - - This example creates a menu option to call the operator when the 0 key is pressed. - - - - -------------------------- Example 2 -------------------------- - $troubleShootObjectId = (Get-CsOnlineUser troubleShoot@contoso.com).ObjectId -$troubleShootEntity = New-CsAutoAttendantCallableEntity -Identity $troubleShootObjectId -Type ApplicationEndpoint -$menuOption = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -VoiceResponses "Sales" -CallTarget $troubleShootEntity - - This example creates a menu option to transfer the call to an application endpoint when the caller speaks the word "Sales" or presses the 1 key. - - - - -------------------------- Example 3 -------------------------- - $Prompt = New-CsAutoAttendantPrompt -ActiveType TextToSpeech -TextToSpeechPrompt "Our Office is open from Monday to Friday from 9 AM to 5 PM" -$menuOption = New-CsAutoAttendantMenuOption -Action Announcement -DtmfResponse Tone2 -VoiceResponses "Hours" -Prompt $Prompt - - This example creates a menu option to play an announcement for the defined prompt. After playing the announcement, the Menu Prompt is repeated. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantmenuoption - - - New-CsAutoAttendantCallableEntity - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallableentity - - - - - - New-CsAutoAttendantPrompt - New - CsAutoAttendantPrompt - - Use the New-CsAutoAttendantPrompt cmdlet to create a new prompt. - - - - The New-CsAutoAttendantPrompt cmdlet creates a new prompt for the Auto Attendant (AA) service. A prompt is either an audio file that is played, or text that is read aloud to give callers additional information. A prompt can be disabled by setting the ActiveType to None. - - - - New-CsAutoAttendantPrompt - - 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. - - Object - - Object - - - None - - - 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - 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.String - - System.String - - - None - - - - New-CsAutoAttendantPrompt - - 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - New-CsAutoAttendantPrompt - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - 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.String - - System.String - - - None - - - - - - 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. - - Object - - Object - - - None - - - 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - 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.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.Prompt - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $ttsPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Welcome to Contoso!" - - This example creates a new prompt that reads the supplied text. - - - - -------------------------- Example 2 -------------------------- - $content = [System.IO.File]::ReadAllBytes('C:\Media\hello.wav') -$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content -$audioFilePrompt = New-CsAutoAttendantPrompt -AudioFilePrompt $audioFile - - This example creates a new prompt that plays the selected audio file. - - - - -------------------------- Example 3 -------------------------- - $content = [System.IO.File]::ReadAllBytes('C:\Media\hello.wav') -$audioFile = Import-CsOnlineAudioFile -ApplicationId "OrgAutoAttendant" -FileName "hello.wav" -Content $content -$dualPrompt = New-CsAutoAttendantPrompt -ActiveType AudioFile -AudioFilePrompt $audioFile -TextToSpeechPrompt "Welcome to Contoso!" - - This example creates a new prompt that has both audio file and text-to-speech data, but will play the audio file when the prompt is activated (rendered). - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantprompt - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - - - - New-CsBatchPolicyAssignmentOperation - New - CsBatchPolicyAssignmentOperation - - This cmdlet is used to assign or unassign a policy to a batch of users. - - - - When a policy is assigned to a batch of users, the assignments are performed as an asynchronous operation. The cmdlet returns the operation ID which can be used to track the progress and status of the assignments. - Users can be specified by their object ID (guid) or by their SIP address (user@contoso.com). Note that a user's SIP address often has the same value as the User Principal Name (UPN), but this is not required. If a user is specified using their UPN, but it has a different value than their SIP address, then the policy assignment will fail for the user. - A batch may contain up to 5,000 users. If a batch includes duplicate users, the duplicates will be removed from the batch before processing and status will only be provided for the unique users remaining in the batch. For best results, do not submit more than a few batches at a time. Allow batches to complete processing before submitting more batches. - You must be a Teams service admin or a Teams communication admin to run the cmdlet. - Batch policy assignment is currently limited to the following policy types: CallingLineIdentity, ExternalAccessPolicy, OnlineVoiceRoutingPolicy, TeamsAppSetupPolicy, TeamsAppPermissionPolicy, TeamsCallingPolicy, TeamsCallParkPolicy, TeamsChannelsPolicy, TeamsEducationAssignmentsAppPolicy, TeamsEmergencyCallingPolicy, TeamsMeetingBroadcastPolicy, TeamsEmergencyCallRoutingPolicy, TeamsMeetingPolicy, TeamsMessagingPolicy, TeamsTemplatePermissionPolicy, TeamsUpdateManagementPolicy, TeamsUpgradePolicy, TeamsVerticalPackagePolicy, TeamsVideoInteropServicePolicy, TenantDialPlan - - - - New-CsBatchPolicyAssignmentOperation - - AdditionalParameters - - . - - Hashtable - - Hashtable - - - 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 - - - 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 - - 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 - - - - - - AdditionalParameters - - . - - Hashtable - - Hashtable - - - 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 - - SendAsync Pipeline Steps to be prepended to the front of the pipeline - - SendAsyncStep[] - - SendAsyncStep[] - - - 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 - - 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 - - SwitchParameter - - - False - - - - - - - OperationId - - - The ID of the operation that can be used with the Get-CsBatchPolicyAssignmentOperation cmdlet to get the status of the operation. - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - $users_ids = @("psmith@contoso.com","tsanchez@contoso.com","bharvest@contoso.com") -New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users_ids -OperationName "Batch assign Kiosk" - - In this example, the batch of users is specified as an array of user SIP addresses. - - - - -------------------------- EXAMPLE 2 -------------------------- - $users_ids = @("2bdb15a9-2cf1-4b27-b2d5-fcc1d13eebc9", "d928e0fc-c957-4685-991b-c9e55a3534c7", "967cc9e4-4139-4057-9b84-1af80f4856fc") -New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName $null -Identity $users_ids -OperationName "Batch unassign meeting policy" - - In this example, a policy is removed from a batch of users by passing $null as the policy name. - - - - -------------------------- EXAMPLE 3 -------------------------- - $users_ids = Get-Content .\users_ids.txt -New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users_ids -OperationName "Batch assign Kiosk" - - In this example, the batch of users is read from a text file containing user object IDs (guids). - - - - -------------------------- EXAMPLE 4 -------------------------- - Connect-AzureAD -$users = Get-AzureADUser -New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName Kiosk -Identity $users.SipProxyAddress -OperationName "batch assign kiosk" - - In this example, the batch of users is obtained by connecting to Microsoft Entra ID and retrieving a collection of users and then referencing the SipProxyAddress property. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicyassignmentoperation - - - Get-CsBatchPolicyAssignmentOperation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchpolicyassignmentoperation - - - - - - New-CsBatchPolicyPackageAssignmentOperation - New - CsBatchPolicyPackageAssignmentOperation - - This cmdlet submits an operation that applies a policy package to a batch of users in a tenant. A batch may contain up to 5000 users. - - - - This cmdlet submits an operation that applies a policy package to a batch of users in a tenant. Provide one or more user identities to assign the package with all the associated policies. The available policy packages and their definitions can be found by running Get-CsPolicyPackage. The recommended policy package for each user can be found by running Get-CsUserPolicyPackageRecommendation. For more information on policy packages, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - New-CsBatchPolicyPackageAssignmentOperation - - 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[] - - String[] - - - None - - - 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 - - String - - - None - - - - - - 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[] - - String[] - - - None - - - 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 - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsBatchPolicyPackageAssignmentOperation -Identity 1bc0b35f-095a-4a37-a24c-c4b6049816ab,johndoe@example.com,richardroe@example.com -PackageName Education_PrimaryStudent - - Applies the Education_PrimaryStudent policy package to three users in the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchpolicypackageassignmentoperation - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - Get-CsUserPolicyPackageRecommendation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackagerecommendation - - - Get-CsUserPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicypackage - - - - - - New-CsBatchTeamsDeployment - New - CsBatchTeamsDeployment - - This cmdlet is used to run a batch deployment orchestration. - - - - Deploying Teams at scale enables admins to deploy up to 500 teams and add 25 users per team using one Teams PowerShell command and two CSV files. This allows admins to meet your organization's scale needs and significantly reduce deployment time. Admins can also use this solution to add and remove members from existing teams at scale. You can use this cmdlet to: - Create teams using pre-built templates or your own custom templates. - - Add users to teams as owners or members. - - Manage teams at scale by adding or removing users from existing teams. - - Stay notified through email, including completion, status, and errors (if any). You can choose to notify up to five people about the status of each batch of teams you deploy. Team owners and members are automatically notified when they're added to a team. - - - - New-CsBatchTeamsDeployment - - TeamsFilePath - - The path to the CSV file that defines the teams you're creating. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). - - String - - String - - - None - - - UsersFilePath - - The path to the CSV file that maps the users you're adding to each team. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). - - String - - String - - - None - - - UsersToNotify - - The email addresses of up to five recipients to notify about this deployment. The recipients will receive email notifications about deployment status. The email contains the orchestration ID for the batch you submitted and any errors that may have occurred. - - String - - String - - - None - - - - - - TeamsFilePath - - The path to the CSV file that defines the teams you're creating. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). - - String - - String - - - None - - - UsersFilePath - - The path to the CSV file that maps the users you're adding to each team. For information about the CSV file format, see Deploy Teams at scale for frontline workers (https://learn.microsoft.com/microsoft-365/frontline/deploy-teams-at-scale). - - String - - String - - - None - - - UsersToNotify - - The email addresses of up to five recipients to notify about this deployment. The recipients will receive email notifications about deployment status. The email contains the orchestration ID for the batch you submitted and any errors that may have occurred. - - String - - String - - - None - - - - - - - OrchestrationId - - - The ID of the operation that can be used with the Get-CsBatchTeamsDeploymentStatus cmdlet to get the status of the operation. - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - New-CsBatchTeamsDeployment -TeamsFilePath "C:\dscale\Teams.csv" -UsersFilePath "C:\dscale\Users.csv" -UsersToNotify "adminteams@contoso.com,adelev@contoso.com" - - This command runs a batch deployment with the provided parameters in the CSV files and emails the status and errors (if any) to adminteams@contoso.com and adelev@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csbatchteamsdeployment - - - Get-CsBatchTeamsDeploymentStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csbatchteamsdeploymentstatus - - - - - - New-CsCallingLineIdentity - New - CsCallingLineIdentity - - Use the New-CsCallingLineIdentity cmdlet to create a new Caller ID policy for your organization. - - - - You can either change or block the Caller ID (also called a Calling Line ID) for a user. By default, the Teams or Skype for Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call comes in. You can create a Caller ID policy to provide an alternate displayed number, or to block any number from being displayed. - Note: - Identity must be unique. - - If CallerIdSubstitute is given as "Resource", then ResourceAccount cannot be empty. - - - - New-CsCallingLineIdentity - - Identity - - > Applicable: Microsoft Teams - 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. - - Boolean - - Boolean - - - None - - - 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 - - String - - - None - - - CompanyName - - > Applicable: Microsoft Teams - This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. - - String - - String - - - 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 - - String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - 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 - - String - - - 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 - - - - - - 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. - - Boolean - - Boolean - - - None - - - 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 - - String - - - None - - - CompanyName - - > Applicable: Microsoft Teams - This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. - - String - - String - - - 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 - - String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - - - 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 - - String - - - 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 - - - - - - None - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -EnableUserOverride $false - - This example creates a new Caller ID policy that sets the Caller ID to Anonymous. - - - - -------------------------- Example 2 -------------------------- - New-CsCallingLineIdentity -Identity BlockIncomingCLID -BlockIncomingPstnCallerID $true - - This example creates a new Caller ID policy that blocks the incoming Caller ID. - - - - -------------------------- Example 3 -------------------------- - $ObjId = (Get-CsOnlineApplicationInstance -Identity dkcq@contoso.com).ObjectId -New-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -EnableUserOverride $false -ResourceAccount $ObjId -CompanyName "Contoso" - - This example creates a new Caller ID policy that sets the Caller ID to the phone number of the specified resource account and sets the Calling party name to Contoso - - - - -------------------------- Example 4 -------------------------- - New-CsCallingLineIdentity -Identity AllowAnonymousForUsers -EnableUserOverride $true - - This example creates a new Caller ID policy that allows Teams users to make anonymous calls. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity - - - Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity - - - Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity - - - Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity - - - Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity - - - - - - New-CsCallQueue - New - CsCallQueue - - 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 > - -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 - - 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 - - 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 - - String - - - None - - - CallbackRequestDtmf - - 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 - - - None - - - ChannelId - - > Applicable: Microsoft Teams - Id of the channel to connect a call queue to. - - String - - String - - - None - - - ChannelUserObjectId - - > 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. - - Guid - - Guid - - - None - - - ComplianceRecordingForCallQueueTemplateId - - 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. - - 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 - - - True - - - 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 EnableNoAgentSharedVoicemailSystemPromptSuppress 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 EnableTimeoutSharedVoicemailSystemPromptSuppress 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 - - List - - - None - - - IsCallbackEnabled - - The IsCallbackEnabled parameter is used to turn on/off callback. - - Boolean - - Boolean - - - None - - - 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. - - String - - String - - - None - - - LineUri - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - String - - String - - - None - - - MusicOnHoldAudioFileId - - > 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. - - Guid - - Guid - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter specifies a unique name for the Call Queue. - - String - - String - - - 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 - - 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 - - String - - - None - - - NoAgentApplyTo - - > 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 - - Guid - - - None - - - NoAgentDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentSharedVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - NumberOfCallsInQueueBeforeOfferingCallback - - 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`. - - Int16 - - Int16 - - - None - - - OboResourceAccountIds - - > 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 - - String - - - None - - - OverflowDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - 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 - - > 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 - - String - - - None - - - OverflowRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - OverflowSharedVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowThreshold - - > 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. - - Int16 - - Int16 - - - 50 - - - PresenceBasedRouting - - > 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 - - - True - - - RoutingMethod - - > 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 - - Object - - Object - - - Attendant - - - ServiceLevelThresholdResponseTimeInSecond - - 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. - - Int16 - - Int16 - - - None - - - SharedCallQueueHistoryTemplateId - - 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. - - String - - String - - - None - - - ShiftsSchedulingGroupId - - > Applicable: Microsoft Teams - Id of the Scheduling Group to connect a call queue to. - - String - - String - - - None - - - ShiftsTeamId - - > Applicable: Microsoft Teams - Id of the Team containing the Scheduling Group to connect a call queue to. - - String - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - TextAnnouncementForCR - - > 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 - - String - - - None - - - TextAnnouncementForCRFailure - - > 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. - - String - - String - - - None - - - TimeoutAction - - > 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 - - Object - - Object - - - Disconnect - - - TimeoutActionCallPriority - - > 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. - - Int16 - - Int16 - - - None - - - TimeoutActionTarget - - > 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 - - String - - - None - - - TimeoutDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoiceAppAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutSharedVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutThreshold - - > 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 - - - 1200 - - - UseDefaultMusicOnHold - - > 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. - - Boolean - - Boolean - - - None - - - Users - - > Applicable: Microsoft Teams - The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - - List - - List - - - 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 - - - WelcomeMusicAudioFileId - - > 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 - - Guid - - - None - - - WelcomeTextToSpeechPrompt - - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to 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 - - 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 - - String - - - None - - - CallbackRequestDtmf - - 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 - - - None - - - ChannelId - - > Applicable: Microsoft Teams - Id of the channel to connect a call queue to. - - String - - String - - - None - - - ChannelUserObjectId - - > 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. - - Guid - - Guid - - - None - - - ComplianceRecordingForCallQueueTemplateId - - 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. - - 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 - - - True - - - 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 EnableNoAgentSharedVoicemailSystemPromptSuppress 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 EnableTimeoutSharedVoicemailSystemPromptSuppress 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 - - List - - - None - - - IsCallbackEnabled - - The IsCallbackEnabled parameter is used to turn on/off callback. - - Boolean - - Boolean - - - None - - - 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. - - String - - String - - - None - - - LineUri - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - String - - String - - - None - - - MusicOnHoldAudioFileId - - > 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. - - Guid - - Guid - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter specifies a unique name for the Call Queue. - - String - - String - - - 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 - - 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 - - String - - - None - - - NoAgentApplyTo - - > 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 - - Guid - - - None - - - NoAgentDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentSharedVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - NumberOfCallsInQueueBeforeOfferingCallback - - 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`. - - Int16 - - Int16 - - - None - - - OboResourceAccountIds - - > 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 - - String - - - None - - - OverflowDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - 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 - - > 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 - - String - - - None - - - OverflowRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - OverflowSharedVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowThreshold - - > 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. - - Int16 - - Int16 - - - 50 - - - PresenceBasedRouting - - > 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 - - - True - - - RoutingMethod - - > 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 - - Object - - Object - - - Attendant - - - ServiceLevelThresholdResponseTimeInSecond - - 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. - - Int16 - - Int16 - - - None - - - SharedCallQueueHistoryTemplateId - - 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. - - String - - String - - - None - - - ShiftsSchedulingGroupId - - > Applicable: Microsoft Teams - Id of the Scheduling Group to connect a call queue to. - - String - - String - - - None - - - ShiftsTeamId - - > Applicable: Microsoft Teams - Id of the Team containing the Scheduling Group to connect a call queue to. - - String - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - TextAnnouncementForCR - - > 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 - - String - - - None - - - TextAnnouncementForCRFailure - - > 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. - - String - - String - - - None - - - TimeoutAction - - > 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 - - Object - - Object - - - Disconnect - - - TimeoutActionCallPriority - - > 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. - - Int16 - - Int16 - - - None - - - TimeoutActionTarget - - > 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 - - String - - - None - - - TimeoutDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoiceAppAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutSharedVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutThreshold - - > 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 - - - 1200 - - - UseDefaultMusicOnHold - - > 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. - - Boolean - - Boolean - - - None - - - Users - - > Applicable: Microsoft Teams - The Users parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - - List - - List - - - 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 - - - WelcomeMusicAudioFileId - - > 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 - - Guid - - - None - - - WelcomeTextToSpeechPrompt - - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - - String - - String - - - None - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsCallQueue -Name "Help Desk" -UseDefaultMusicOnHold $true - - This example creates a Call Queue for the organization named "Help Desk" using default music on hold. - - - - -------------------------- Example 2 -------------------------- - New-CsCallQueue -Name "Help desk" -RoutingMethod Attendant -DistributionLists @("8521b0e3-51bd-4a4b-a8d6-b219a77a0a6a", "868dccd8-d723-4b4f-8d74-ab59e207c357") -AllowOptOut $false -AgentAlertTime 30 -OverflowThreshold 15 -OverflowAction Forward -OverflowActionTarget 7fd04db1-1c8e-4fdf-9af5-031514ba1358 -TimeoutThreshold 30 -TimeoutAction Disconnect -MusicOnHoldAudioFileId 1e81adaf-7c3e-4db1-9d61-5d135abb1bcc -WelcomeMusicAudioFileId 0b31bbe5-e2a0-4117-9b6f-956bca6023f8 - - This example creates a Call Queue for the organization named "Help Desk" with music on hold and welcome music audio files. - - - - - - Online Version: - 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 - - - - - - - New-CsCloudCallDataConnection - New - CsCloudCallDataConnection - - This cmdlet creates an online call data connection. - - - - This cmdlet creates an online call data connection. If you get an error that the connection already exists, it means that the call data connection already exists for your tenant. In this case, run Get-CsCloudCallDataConnection. - - - - New-CsCloudCallDataConnection - - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The New-CsCloudCallDataConnection cmdlet is only supported in commercial environments from Teams PowerShell Module versions 4.6.0 or later. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsCloudCallDataConnection - -Token ------ -00000000-0000-0000-0000-000000000000 - - Returns a token value, which is needed when configuring your on-premises environment with Set-CsCloudCallDataConnector. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscloudcalldataconnection - - - Configure Call Data Connector - https://learn.microsoft.com/skypeforbusiness/hybrid/configure-call-data-connector - - - 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 - - - - - - - New-CsCustomPolicyPackage - New - CsCustomPolicyPackage - - 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). Note: This cmdlet is currently in private preview. - - - - New-CsCustomPolicyPackage - - Identity - - > Applicable: Microsoft Teams - The name of the custom package. - - String - - String - - - None - - - PolicyList - - > 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[] - - - None - - - Description - - > Applicable: Microsoft Teams - The description of the custom package. - - String - - String - - - None - - - - - - Description - - > Applicable: Microsoft Teams - The description of the custom package. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The name of the custom package. - - String - - String - - - None - - - PolicyList - - > 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[] - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy" - - Creates a custom package named "MyPackage" with one policy in the package: a messaging policy of name "MyMessagingPolicy". - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy", "TeamsMeetingPolicy, MyMeetingPolicy" -Description "My package" - - Creates a custom package named "MyPackage" with description "My package" and two policies in the package: a messaging policy of name "MyMessagingPolicy" and a meeting policy of name "MyMeetingPolicy". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage - - - Update-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage - - - Remove-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscustompolicypackage - - - - - - New-CsEdgeAllowAllKnownDomains - New - CsEdgeAllowAllKnownDomains - - Enables Skype for Business Online federation with all domains except for those domains included on the blocked domains list. - - - - 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. - 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 allowed domains list: - `Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com"` - Instead, you must use either the New-CsEdgeAllowAllKnownDomains cmdlet or the New-CsEdgeAllowList cmdlet to create a domain object and then pass that domain object to the Set-CsTenantFederationConfiguration cmdlet. The New-CsEdgeAllowAllKnownDomains cmdlet is used if you want to allow users to communicate with all domains except for those expressly specified on the blocked domains list. The New-CsEdgeAllowList cmdlet is used if you want to limit user communication to a specified collection of domains. In that case, users will only be allowed to communicate with domains that appear on the allowed domains list. - To configure federation with all known domains, use a set of commands similar to this: - `$x = New-CsEdgeAllowAllKnownDomains` - `Set-CsTenantFederationConfiguration -AllowedDomains $x` - - - - New-CsEdgeAllowAllKnownDomains - - - - - - - Input types - - - None. The New-CsEdgeAllowAllKnownDomains cmdlet does not accept pipelined input. - - - - - - - Output types - - - The New-CsEdgeAllowAllKnownDomains cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $x = New-CsEdgeAllowAllKnownDomains - -Set-CsTenantFederationConfiguration -AllowedDomains $x - - The two commands shown in Example 1 configure the federation settings for the current tenant to allow all known domains. To do this, the first command in the example uses the New-CsEdgeAllowAllKnownDomains cmdlet to create an instance of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowAllKnownDomains object; this instance is stored in a variable named $x. In the second command, the Set-CsTenantFederationConfiguration cmdlet is called along with the AllowedDomains parameter; using $x as the parameter value configures the federation settings to allow all known domains. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowallknowndomains - - - Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration - - - - - - New-CsEdgeAllowList - 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. - 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. - 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 allowed domains list: - Set-CsTenantFederationConfiguration -AllowedDomains "fabrikam.com" - Instead, you must use either the `New-CsEdgeAllowAllKnownDomains` cmdlet or the `New-CsEdgeAllowList` cmdlet to create a domain object and then pass that domain object to the `Set-CsTenantFederationConfiguration` cmdlet. The `New-CsEdgeAllowAllKnownDomains` cmdlet is used if you want to allow users to communicate with all domains except for those expressly specified on the blocked domains list. The `New-CsEdgeAllowList` cmdlet is used if you want to limit user communication to a specified collection of domains. In that case, users will only be allowed to communicate with domains that appear on the allowed domains list. - To add a single domain (fabrikam.com) to the allowed domain list, you need to use a set of command similar to these: - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - $newAllowList = New-CsEdgeAllowList -AllowedDomain $x - Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList - When this command finishes executing, users will only be allowed to communicate with users from fabrikam.com domain. - - - - New-CsEdgeAllowList - - 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 - - String - - String - - - None - - - - - - 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 - - String - - String - - - None - - - - - - Input types - - - None. The `New-CsEdgeAllowList` cmdlet does not accept pipelined input. - - - - - - - Output types - - - The `New-CsEdgeAllowList` cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.AllowList object. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -$newAllowList = New-CsEdgeAllowList -AllowedDomain $x - -Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList - - The commands shown in Example 1 assign the domain fabrikam.com to the allowed domains list for the tenant with the TenantId "bf19b7db-6960-41e5-a139-2aa373474354". To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com; this object is stored in a variable named $x. After the domain object has been created, the `New-CsEdgeAllowList` cmdlet is used to create a new allowed list containing only the domain fabrikam.com. - With the allowed domain list created, the final command in the example can then use the `Set-CsTenantFederationConfiguration` cmdlet to configure fabrikam.com as the only domain on the allowed domain list for the current tenant. - - - - -------------------------- Example 2 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "contoso.com" - -$y = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -$newAllowList = New-CsEdgeAllowList -AllowedDomain $x,$y - -Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList - - Example 2 shows how you can add multiple domains to an allowed domains list. This is done by calling the `New-CsEdgeDomainPattern` cmdlet multiple times (one for each domain to be added to the list), and storing the resulting domain objects in separate variables. Each of those variables can then be added to the allow list created by the `New-CsEdgeAllowList` cmdlet simply by using the AllowedDomain parameter and separating the variables name by using commas. - - - - -------------------------- Example 3 -------------------------- - $newAllowList = New-CsEdgeAllowList -AllowedDomain $Null - -Set-CsTenantFederationConfiguration -AllowedDomains $newAllowList - - In Example 3, all domains are removed from the allowed domains list. To do this, the first command in the example uses the `New-CsEdgeAllowList` cmdlet to create a blank list of allowed domains; this is accomplished by setting the AllowedDomain property to a null value ($Null). The resulting object reference ($newAllowList) is then used in conjunction with the `Set-CsTenantFederationConfiguration` cmdlet to remove all the domains from the allowed domain list. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgeallowlist - - - New-CsEdgeDomainPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csedgedomainpattern - - - Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration - - - - - - New-CsEdgeDomainPattern - 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. - 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. - > [!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: - `$x = New-CsEdgeDomainPattern -Domain "fabrikam.com"` - `Set-CsTenantFederationConfiguration -BlockedDomains $x` - - - - New-CsEdgeDomainPattern - - 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. - - String - - String - - - None - - - - - - 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. - - String - - String - - - None - - - - - - Input types - - - None. The New-CsEdgeDomainPattern cmdlet does not accept pipelined input. - - - - - - - Output types - - - The New-CsEdgeDomainPattern cmdlet creates new instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.DomainPattern object. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -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. 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/microsoftteams/new-csedgedomainpattern - - - Set-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration - - - - - - New-CsGroupPolicyAssignment - New - CsGroupPolicyAssignment - - This cmdlet is used to assign a policy to a security group or distribution list. - - - - > [!NOTE] > As of May 2023, group policy assignment functionality in Teams PowerShell Module has been extended to support all policy types used in Teams except for the following: > - Teams App Permission Policy > - Teams Network Roaming Policy > - Teams Emergency Call Routing Policy > - Teams Voice Applications Policy > - Teams Upgrade Policy > > This cmdlet will be deprecated in the future. Going forward, group policy assignment can be performed by using the corresponding Grant-Cs[PolicyType] cmdlet with the '-Group' parameter. - 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/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 - - The ID of a batch policy assignment operation. - - String - - String - - - None - - - PassThru - - Returns true when the command succeeds - - - SwitchParameter - - - False - - - PolicyName - - The name of the policy to be assigned. - - String - - String - - - None - - - PolicyType - - The type of policy to be assigned. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - 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 - - - GroupId - - The ID of a batch policy assignment operation. - - String - - String - - - None - - - PassThru - - Returns true when the command succeeds - - SwitchParameter - - SwitchParameter - - - False - - - PolicyName - - The name of the policy to be assigned. - - String - - String - - - None - - - PolicyType - - The type of policy to be assigned. - - String - - String - - - None - - - Rank - - The rank of the policy assignment, relative to other group policy assignments for the same policy type. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsGroupPolicyAssignment -GroupId d8ebfa45-0f28-4d2d-9bcc-b158a49e2d17 -PolicyType TeamsMeetingPolicy -PolicyName AllOn -Rank 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 - - - - - - -------------------------- Example 2 -------------------------- - New-CsGroupPolicyAssignment -GroupId salesdepartment@contoso.com -PolicyType TeamsMeetingPolicy -PolicyName Kiosk - -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 3 -------------------------- - 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 - -New-CsGroupPolicyAssignment -GroupId e050ce51-54bc-45b7-b3e6-c00343d31274 -PolicyType TeamsMeetingpolicy -PolicyName AllOff -Rank 2 - -Get-CsGroupPolicyAssignment - -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 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - - - Get-CsUserPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csuserpolicyassignment - - - Get-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment - - - Remove-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csgrouppolicyassignment - - - - - - New-CsHybridTelephoneNumber - New - CsHybridTelephoneNumber - - This cmdlet adds a hybrid telephone number to the tenant. - - - - 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 - - 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 - - - InputObject - - The identity parameter. - - 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 - - - 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 - - - - - - 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 - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - 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 - - - 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 - 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 - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - None - - - - - - - - - The cmdlet is only available in GCC High and DoD cloud instances. - - - - - -------------------------- Example 1 -------------------------- - New-CsHybridTelephoneNumber -TelephoneNumber +14025551234 - - This example adds the hybrid phone number +1 (402) 555-1234. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cshybridtelephonenumber - - - Remove-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cshybridtelephonenumber - - - Get-CsHybridTelephoneNumber - https://learn.microsoft.com/powershell/module/microsoftteams/get-cshybridtelephonenumber - - - - - - New-CsInboundBlockedNumberPattern - New - CsInboundBlockedNumberPattern - - Adds a blocked number pattern to the tenant list. - - - - This cmdlet adds a blocked number pattern to the tenant list. An inbound PSTN call from a number that matches the blocked number pattern will be blocked. - - - - New-CsInboundBlockedNumberPattern - - Identity - - A unique identifier specifying the blocked number pattern to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description for the blocked number pattern to be created. - - String - - String - - - None - - - Enabled - - If this parameter is set to True, the inbound calls matching the pattern will be blocked. - - Boolean - - Boolean - - - True - - - Pattern - - A regular expression that the calling number must match in order to be blocked. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsInboundBlockedNumberPattern - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description for the blocked number pattern to be created. - - String - - String - - - None - - - Enabled - - If this parameter is set to True, the inbound calls matching the pattern will be blocked. - - Boolean - - Boolean - - - True - - - Name - - A displayable name describing the blocked number pattern to be created. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be blocked. - - 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 - - - Description - - A friendly description for the blocked number pattern to be created. - - String - - String - - - None - - - Enabled - - If this parameter is set to True, the inbound calls matching the pattern will be blocked. - - Boolean - - Boolean - - - True - - - Identity - - A unique identifier specifying the blocked number pattern to be created. - - String - - String - - - None - - - Name - - A displayable name describing the blocked number pattern to be created. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be blocked. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> New-CsInboundBlockedNumberPattern -Description "Avoid Unwanted Automatic Call" -Name "BlockAutomatic" -Pattern "^\+11234567890" - - This example adds a blocked number pattern to block inbound calls from +11234567890 number. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern - - - Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern - - - Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern - - - Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern - - - - - - New-CsInboundExemptNumberPattern - New - CsInboundExemptNumberPattern - - 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 - - Identity - - Unique identifier for the exempt number pattern to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Sets the description of the number pattern. - - System.String - - System.String - - - None - - - Enabled - - This parameter determines whether the number pattern is enabled for exemption or not. - - Boolean - - Boolean - - - True - - - Name - - A displayable name describing the exempt number pattern to be created. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be exempt from blocking. 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. - - System.String - - System.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 - - - Description - - Sets the description of the number pattern. - - System.String - - System.String - - - None - - - Enabled - - This parameter determines whether the number pattern is enabled for exemption or not. - - Boolean - - Boolean - - - True - - - Identity - - Unique identifier for the exempt number pattern to be created. - - String - - String - - - None - - - Name - - A displayable name describing the exempt number pattern to be created. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be exempt from blocking. 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. - - System.String - - System.String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - You can use Test-CsInboundBlockedNumberPattern to test your block and exempt phone number ranges. - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS> New-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Pattern "^\+?1312555888[2|3]$" -Description "Allow Contoso helpdesk" -Enabled $True - - Creates a new inbound exempt number pattern for the numbers 1 (312) 555-88882 and 1 (312) 555-88883 and enables it - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern - - - Get-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern - - - Set-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern - - - Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - - - - - - New-CsMainlineAttendantAppointmentBookingFlow - New - CsMainlineAttendantAppointmentBookingFlow - - Creates new Mainline Attendant appointment booking flow - - - - 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-CsMainlineAttendantAppointmentBookingFlow - - 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 - - - - - - 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 - - System.Guid - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DisplayName - - > Applicable: Microsoft Teams - The display name. - - System.String - - System.String - - - None - - - 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 - - - UserPrincipalName - - > 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 - - System.String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - System.Guid - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DisplayName - - > Applicable: Microsoft Teams - The display name. - - System.String - - System.String - - - None - - - 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 - - - UserPrincipalName - - > 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 - - System.String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsOnlineApplicationInstance -UserPrincipalName appinstance01@contoso.com -ApplicationId ce933385-9390-45d1-9512-c8d228074e07 -DisplayName "AppInstance01" - - This example creates a new application instance for an Auto Attendant with UserPrincipalName "appinstance01@contoso.com", ApplicationId "ce933385-9390-45d1-9512-c8d228074e07", DisplayName "AppInstance01" for the tenant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance - - - Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance - - - Set-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance - - - Find-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/find-csonlineapplicationinstance - - - Sync-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/sync-csonlineapplicationinstance - - - - - - New-CsOnlineApplicationInstanceAssociation - New - CsOnlineApplicationInstanceAssociation - - Use the New-CsOnlineApplicationInstanceAssociation cmdlet to associate either a single or multiple application instances with an application configuration, like auto attendant or call queue. - - - - The New-CsOnlineApplicationInstanceAssociation cmdlet associates either a single or multiple application instances with an application configuration, like auto attendant or call queue. When an association is created between an application instance and an application configuration, calls reaching that application instance would be handled based on the associated application configuration. For more information on how to create Application Instances , check `New-CsOnlineApplicationInstance` cmdlet documentation. - You can get the Identity of the application instance from the ObjectId of the AD object. - - - - New-CsOnlineApplicationInstanceAssociation - - CallPriority - - > 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 - - Int16 - - Int16 - - - 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 - - System.string - - - None - - - 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 - - CallQueue - - System.string - - System.string - - - None - - - Identities - - > Applicable: Microsoft Teams - The Identities parameter is the identities of application instances to be associated with the provided configuration ID. - - System.String[] - - System.String[] - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - CallPriority - - > 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 - - Int16 - - Int16 - - - 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 - - System.string - - - None - - - 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 - - CallQueue - - System.string - - System.string - - - None - - - Identities - - > Applicable: Microsoft Teams - The Identities parameter is the identities of application instances to be associated with the provided configuration ID. - - System.String[] - - System.String[] - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $applicationInstanceId = (Get-CsOnlineUser "main_auto_attendant@contoso.com").ObjectId # 76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19 -$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 - -New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceId) -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant - -Get-CsAutoAttendant -Identity $autoAttendantId - -# Id : c2ee3e18-b738-5515-a97b-46be52dfc057 -# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 -# Name : Main Auto Attendant -# LanguageId : en-US -# VoiceId : Female -# DefaultCallFlow : Default Call Flow -# Operator : -# TimeZoneId : Pacific Standard Time -# VoiceResponseEnabled : False -# CallFlows : -# Schedules : -# CallHandlingAssociations : -# Status : -# DialByNameResourceId : -# DirectoryLookupScope : -# ApplicationInstances : {76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19} - - This example creates an association between an application instance that we have already created with UPN "main_auto_attendant@contoso.com" whose identity is "76afc66a-5fe9-4a3d-ab7a-37c0e37b1f19", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". Once the association is created, the newly associated application instance would be listed under the `ApplicationInstances` property of the AA. - - - - -------------------------- Example 2 -------------------------- - $applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "tel:+1206") | Select-Object -Property Id - -# Id -# -- -# fa2f17ec-ebd5-43f8-81ac-959c245620fa -# 56421bbe-5649-4208-a60c-24dbeded6f18 -# c7af9c3c-ae40-455d-a37c-aeec771e623d - -$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 - -New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant - -Get-CsAutoAttendant -Identity $autoAttendantId - -# Id : c2ee3e18-b738-5515-a97b-46be52dfc057 -# TenantId : 977c9d5b-2dae-5d82-aada-628bc1c14213 -# Name : Main Auto Attendant -# LanguageId : en-US -# VoiceId : Female -# DefaultCallFlow : Default Call Flow -# Operator : -# TimeZoneId : Pacific Standard Time -# VoiceResponseEnabled : False -# CallFlows : -# Schedules : -# CallHandlingAssociations : -# Status : -# DialByNameResourceId : -# DirectoryLookupScope : -# ApplicationInstances : {fa2f17ec-ebd5-43f8-81ac-959c245620fa, 56421bbe-5649-4208-a60c-24dbeded6f18, c7af9c3c-ae40-455d-a37c-aeec771e623d} - - This example creates an association between multiple application instances that we had created before and to which we assigned phone numbers starting with "tel:+1206", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". Once the associations are created, the newly associated application instances would listed under the `ApplicationInstances` property of the AA. - - - - -------------------------- Example 3 -------------------------- - $applicationInstancesIdentities = (Find-CsOnlineApplicationInstance -SearchQuery "Main Auto Attendant") | Select-Object -Property Id - -# Id -# -- -# fa2f17ec-ebd5-43f8-81ac-959c245620fa -# 56421bbe-5649-4208-a60c-24dbeded6f18 -# c7af9c3c-ae40-455d-a37c-aeec771e623d - -$autoAttendantId = (Get-CsAutoAttendant -NameFilter "Main Auto Attendant").Id # c2ee3e18-b738-5515-a97b-46be52dfc057 - -New-CsOnlineApplicationInstanceAssociation -Identities $applicationInstancesIdentities -ConfigurationId $autoAttendantId -ConfigurationType AutoAttendant - - This example creates an association between multiple application instances that we had created before with display name starting with "Main Auto Attendant", and an auto attendant configuration that we created with display name "Main Auto Attendant" whose identity is "c2ee3e18-b738-5515-a97b-46be52dfc057". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstanceassociation - - - Get-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociation - - - Get-CsOnlineApplicationInstanceAssociationStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstanceassociationstatus - - - Remove-CsOnlineApplicationInstanceAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation - - - - - - New-CsOnlineAudioConferencingRoutingPolicy - New - CsOnlineAudioConferencingRoutingPolicy - - This cmdlet creates a Online Audio Conferencing Routing Policy. - - - - Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. - To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." - The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. - Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. - - - - New-CsOnlineAudioConferencingRoutingPolicy - - Identity - - Identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - 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). - - Object - - Object - - - None - - - RouteType - - 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 - - - Description - - Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Identity - - Identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - 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). - - Object - - Object - - - None - - - RouteType - - For internal use only. - - String - - String - - - None - - - 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-CsOnlineAudioConferencingRoutingPolicy -Identity Test - - Creates a new Online Audio Conferencing Routing Policy policy with an identity called "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineaudioconferencingroutingpolicy - - - Remove-CsOnlineAudioConferencingRoutingPolicy - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - - - Set-CsOnlineAudioConferencingRoutingPolicy - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - - - - - - New-CsOnlineDateTimeRange - New - CsOnlineDateTimeRange - - Use the New-CsOnlineDateTimeRange cmdlet to create a new date-time range. - - - - The New-CsOnlineDateTimeRange cmdlet creates a new date-time range to be used with the Organizational Auto Attendant (OAA) service. Date time ranges are used to form schedules. NOTE : - - The start bound of the range must be less than its end bound. - - The time part of the range must be aligned with 30/60-minutes boundaries. - - A date time range bound can only be input in the following formats: - - "d/m/yyyy H:mm" - "d/m/yyyy" (the time component of the date-time range is set to 00:00) - - - - New-CsOnlineDateTimeRange - - End - - > 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 - - System.String - - - None - - - Start - - > Applicable: Microsoft Teams - The Start parameter represents the start bound of the date-time range. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - End - - > 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 - - System.String - - - None - - - Start - - > Applicable: Microsoft Teams - The Start parameter represents the start bound of the date-time range. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.DateTimeRange - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $dtr = New-CsOnlineDateTimeRange -Start "1/1/2017" - - This example creates a date-time range for spanning from January 1, 2017 12AM to January 2, 2017 12AM. - - - - -------------------------- Example 2 -------------------------- - $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017 09:00" -End "27/12/2017 00:00" - - This example creates a date-time range spanning from December 24, 2017 9AM to December 27, 2017 12AM. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange - - - New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule - - - - - - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - New - CsOnlineDirectRoutingTelephoneNumberUploadOrder - - 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. 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 - - EndingNumber - - 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 - - String - - - None - - - FileContent - - 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. - - Byte[] - - Byte[] - - - None - - - StartingNumber - - 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 - - String - - - None - - - TelephoneNumber - - 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. - - String - - String - - - None - - - - - - EndingNumber - - 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 - - String - - - None - - - FileContent - - 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. - - Byte[] - - Byte[] - - - None - - - StartingNumber - - 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 - - String - - - None - - - TelephoneNumber - - 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. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.String - - - - - - - - - The cmdlet is available in Teams PowerShell module 6.7.1 or later. - The cmdlet is only available in commercial and GCC cloud instances. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -TelephoneNumber "+123456789" -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - - In this example, a new Direct Routing telephone number "+123456789" is being uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -TelephoneNumber "+123456789,+134567890,+145678901" -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c14 - - In this example, a list of telephone numbers is being uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -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 uploaded to Microsoft Teams telephone number management inventory. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. - - - - -------------------------- Example 4 -------------------------- - PS C:\> $drlist = [System.IO.File]::ReadAllBytes("C:\Users\testuser\DrNumber.csv") -PS C:\> New-CsOnlineDirectRoutingTelephoneNumberUploadOrder -FileContent $drlist -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c19 - - In this example, the content of a file with a list of Direct Routing telephone numbers are being uploaded via file upload. The file should be in Comma Separated Values (CSV) file format and only containing the list of DR numbers. Only the content of the file can be passed to the New-CsOnlineDirectRoutingTelephoneNumberUploadOrder cmdlet. Additional fields will be supported via file upload in future releases. The output of the cmdlet is the OrderId that can be used with the Get-CsOnlineTelephoneNumberOrder (./get-csonlinetelephonenumberorder.md)cmdlet to retrieve the status of the order: `Get-CsOnlineTelephoneNumberOrder -OrderType DirectRoutingNumberCreation -OrderId "orderId"`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedirectroutingtelephonenumberuploadorder - - - Get-CsOnlineTelephoneNumberOrder - - - - New-CsOnlineTelephoneNumberReleaseOrder - - - - - - - New-CsOnlineLisCivicAddress - New - CsOnlineLisCivicAddress - - Use the New-CsOnlineLisCivicAddress cmdlet to create a civic address in the Location Information Service (LIS). - - - - Because each civic address needs at least one location to assign to users, creating a new civic address also creates a default location. This is useful in cases where a civic address has no particular sub-locations. In that scenario you can create the civic address using the New -CsOnlineLisCivicAddress cmdlet and use the default location identifier for assignment to users. The example output from the Get-CsOnlineLisCivicAddress below shows the DefaultLocationId property. - CivicAddressId : 51a8a6e3-dae4-4653-9a99-a6e71c4c24ac - HouseNumber : - HouseNumberSuffix : - PreDirectional : - StreetName : - StreetSuffix : - PostDirectional : - City : - PostalCode : - StateOrProvince : - CountryOrRegion : US - Description : - CompanyName : MSFT - DefaultLocationId : 75301b5d-3609-458e-a379-da9a1ab33228 - ValidationStatus : NotValidated - NumberOfVoiceUsers : 0 - - - - New-CsOnlineLisCivicAddress - - City - - > 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 - - String - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies the name of your organization. - - String - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - Specifies the company tax identifier of the new civic address. - - String - - String - - - None - - - Confidence - - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the new civic address. - - String - - String - - - 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 - - - False - - - HouseNumber - - > Applicable: Microsoft Teams - Specifies the numeric portion of the new civic address. - - String - - String - - - None - - - 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 - - String - - - 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 - - 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. Required for all countries except Australia and Japan where it's optional. - - String - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the new civic address. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the new civic address. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the new civic address. - - String - - String - - - None - - - 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 - - String - - - None - - - ValidationStatus - - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 - - - - - - City - - > 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 - - String - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies the name of your organization. - - String - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - Specifies the company tax identifier of the new civic address. - - String - - String - - - None - - - Confidence - - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 new civic address. Needs to be a valid country code as contained in the ISO 3166-1 alpha-2 specification. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the new civic address. - - String - - String - - - 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 - - SwitchParameter - - - False - - - HouseNumber - - > Applicable: Microsoft Teams - Specifies the numeric portion of the new civic address. - - String - - String - - - None - - - 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 - - String - - - 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 - - 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. Required for all countries except Australia and Japan where it's optional. - - String - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the new civic address. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the new civic address. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the new civic address. - - String - - String - - - None - - - 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 - - String - - - None - - - ValidationStatus - - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 -------------------------- - New-CsOnlineLisCivicAddress -HouseNumber 1 -StreetName 'Microsoft Way' -City Redmond -StateorProvince Washington -CountryOrRegion US -PostalCode 98052 -Description "West Coast Headquarters" -CompanyName Contoso -Latitude 47.63952 -Longitude -122.12781 -Elin MICROSOFT_ELIN - - This example creates a new civic address described as "West Coast Headquarters": 1 Microsoft Way, Redmond WA, 98052 and sets the geo-coordinates. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress - - - Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress - - - Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress - - - Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress - - - - - - New-CsOnlineLisLocation - New - CsOnlineLisLocation - - Use the New-CsOnlineLisLocation cmdlet to create a new emergency dispatch location within an existing civic address. Typically the civic address designates the building, and locations are specific parts of that building such as a floor, office, or wing. - - - - - - - - New-CsOnlineLisLocation - - City - - > Applicable: Microsoft Teams - Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams - Specifies the city alias. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CivicAddressId - - > 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. - - Guid - - Guid - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies the name of your organization. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - The company tax ID. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - Confidence - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 is deprecated. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - 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 - 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 - - String - - - None - - - 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 - - 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 is deprecated. - - String - - String - - - 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 - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - 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 - - String - - - 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 - - - - - - City - - > Applicable: Microsoft Teams - Specifies the city of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams - Specifies the city alias. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CivicAddressId - - > 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. - - Guid - - Guid - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies the name of your organization. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - The company tax ID. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - Confidence - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - String - - String - - - 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 is deprecated. - - String - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - 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 - 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 - - String - - - None - - - 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 - - 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 is deprecated. - - String - - String - - - 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 - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the civic address. Note: This parameter is not supported and is deprecated. - - String - - String - - - None - - - 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 - - String - - - 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 -------------------------- - New-CsOnlineLisLocation -CivicAddressId b39ff77d-db51-4ce5-8d50-9e9c778e1617 -Location "Office 101, 1st Floor" - - This example creates a new location called "Office 101, 1st Floor" in the civic address specified by its identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation - - - Set-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation - - - Get-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation - - - Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation - - - - - - New-CsOnlinePSTNGateway - New - CsOnlinePSTNGateway - - Creates a new Session Border Controller (SBC) Configuration that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. - - - - Use this cmdlet to create a new Session Border Controller (SBC) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as the SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP Options, and specify the limit of maximum concurrent sessions. The cmdlet also lets the administrator drain the SBC by setting parameter -Enabled to $true or $false state. When the Enabled parameter is set to $false, the SBC will continue existing calls, but all new calls will be routed to another SBC in a route (if one exists). - - - - 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 - - String - - - None - - - 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 - - Boolean - - - $false - - - 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. - - String - - String - - - 408, 503, 504 - - - 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 - - Int32 - - - 10 - - - 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 - - Boolean - - - $false - - - 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 - - Boolean - - - $false - - - Fqdn - - > Applicable: Microsoft Teams - Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. - - String - - String - - - 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 - - String - - - 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 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 - - Boolean - - - $false - - - InboundPSTNNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - - Object - - Object - - - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None - - - IPAddressVersion - - 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 - - - IPv4 - - - MaxConcurrentSessions - - > 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. - - System.Int32 - - System.Int32 - - - None - - - MediaBypass - - > Applicable: Microsoft Teams - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. - - Boolean - - Boolean - - - $false - - - MediaRelayRoutingLocationOverride - - > 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 - - - $false - - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - - - OutbundTeamsNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to Teams 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 - - Boolean - - - $false - - - ProxySbc - - > Applicable: Microsoft Teams - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - - String - - String - - - None - - - SendSipOptions - - > 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 - - - $true - - - SipSignalingPort - - > 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 - - - 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 - - String - - - 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 - - String - - - None - - - 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 - - Boolean - - - $false - - - 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. - - String - - String - - - 408, 503, 504 - - - 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 - - Int32 - - - 10 - - - 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 - - Boolean - - - $false - - - 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 - - Boolean - - - $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 - - String - - - 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 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 - - Boolean - - - $false - - - InboundPSTNNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - - Object - - Object - - - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None - - - IPAddressVersion - - 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 - - - IPv4 - - - MaxConcurrentSessions - - > 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. - - System.Int32 - - System.Int32 - - - None - - - MediaBypass - - > Applicable: Microsoft Teams - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. - - Boolean - - Boolean - - - $false - - - MediaRelayRoutingLocationOverride - - > 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 - - - $false - - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - - - OutbundTeamsNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to Teams 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 - - Boolean - - - $false - - - ProxySbc - - > Applicable: Microsoft Teams - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - - String - - String - - - None - - - SendSipOptions - - > 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 - - - $true - - - SipSignalingPort - - > 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 - - - 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 - - String - - - None - - - 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 - - Boolean - - - $false - - - 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. - - String - - String - - - 408, 503, 504 - - - 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 - - Int32 - - - 10 - - - 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 - - Boolean - - - $false - - - 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 - - Boolean - - - $false - - - Fqdn - - > Applicable: Microsoft Teams - Limited to 63 characters, the FQDN registered for the SBC. Copied automatically to Identity of the SBC field. - - String - - String - - - 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 - - String - - - 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 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 - - Boolean - - - $false - - - 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 - - String - - - None - - - InboundPSTNNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - - Object - - Object - - - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None - - - IPAddressVersion - - 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 - - - IPv4 - - - MaxConcurrentSessions - - > 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. - - System.Int32 - - System.Int32 - - - None - - - MediaBypass - - > Applicable: Microsoft Teams - Parameter indicates if the SBC supports Media Bypass and the administrator wants to use it for this SBC. - - Boolean - - Boolean - - - $false - - - MediaRelayRoutingLocationOverride - - > 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 - - - $false - - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - - - OutbundTeamsNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to Teams 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 - - Boolean - - - $false - - - ProxySbc - - > Applicable: Microsoft Teams - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - - String - - String - - - None - - - SendSipOptions - - > 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 - - - $true - - - SipSignalingPort - - > 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignalingPort 5061 - - This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. All others parameters will stay default. Note the SBC will be in the disabled state. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsOnlinePSTNGateway -FQDN sbc.contoso.com -SIPSignalingPort 5061 -ForwardPAI $true -Enabled $true - - This example creates an SBC with FQDN sbc.contoso.com and signaling port 5061. For each outbound to SBC session, the Direct Routing interface will report in P-Asserted-Identity fields the TEL URI and SIP address of the user who made a call. This is useful when a tenant administrator sets the identity of the caller as "Anonymous" or a general number of the company, but for billing purposes the real identity of the user is required. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinepstngateway - - - Set-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstngateway - - - Get-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstngateway - - - Remove-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway - - - - - - New-CsOnlineSchedule - New - CsOnlineSchedule - - Use the New-CsOnlineSchedule cmdlet to create a new schedule. - - - - The New-CsOnlineSchedule cmdlet creates a new schedule for the Auto Attendant (AA) service. The AA service uses schedules to conditionally execute call flows when a specific schedule is in effect. NOTES : - - The type of the schedule cannot be altered after the schedule is created. - - Currently, only two types of schedules can be created: WeeklyRecurrentSchedule or FixedSchedule. - - The schedule types are mutually exclusive. So a weekly recurrent schedule cannot be a fixed schedule and vice versa. - - For a weekly recurrent schedule, at least one day should have time ranges specified. - - You can create a new time range by using New-CsOnlineTimeRange cmdlet. - - A fixed schedule can be created without any date-time ranges. In this case, it would never be in effect. - - 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/microsoftteams/new-csautoattendantcallhandlingassociation). - - - - New-CsOnlineSchedule - - Complement - - > 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. - - - SwitchParameter - - - False - - - FridayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - MondayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a unique friendly name for the schedule. - - System.String - - System.String - - - None - - - SaturdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - SundayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - ThursdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - TuesdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - WednesdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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. - - - SwitchParameter - - - False - - - - New-CsOnlineSchedule - - 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 - - - FixedSchedule - - > Applicable: Microsoft Teams - The FixedSchedule parameter indicates that a fixed schedule is to be created. - - - SwitchParameter - - - False - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a unique friendly name for the schedule. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Complement - - > 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. - - SwitchParameter - - 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 - - - FixedSchedule - - > Applicable: Microsoft Teams - The FixedSchedule parameter indicates that a fixed schedule is to be created. - - SwitchParameter - - SwitchParameter - - - False - - - FridayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - MondayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter represents a unique friendly name for the schedule. - - System.String - - System.String - - - None - - - SaturdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - SundayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - ThursdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - TuesdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - WednesdayHours - - > Applicable: Microsoft Teams - List of time ranges for that day. - - System.Collections.Generic.List - - System.Collections.Generic.List - - - None - - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.Schedule - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00 -$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00 -$businessHours = New-CsOnlineSchedule -Name "Business Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1, $tr2) -TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours @($tr1, $tr2) - - This example creates a weekly recurrent schedule that is active on Monday-Friday from 9AM-12PM and 1PM-5PM. - - - - -------------------------- Example 2 -------------------------- - $tr1 = New-CsOnlineTimeRange -Start 09:00 -End 12:00 -$tr2 = New-CsOnlineTimeRange -Start 13:00 -End 17:00 -$afterHours = New-CsOnlineSchedule -Name " After Hours" -WeeklyRecurrentSchedule -MondayHours @($tr1, $tr2) -TuesdayHours @($tr1, $tr2) -WednesdayHours @($tr1, $tr2) -ThursdayHours @($tr1, $tr2) -FridayHours @($tr1, $tr2) -Complement - - This example creates a weekly recurrent schedule that is active at all times except Monday-Friday, 9AM-12PM and 1PM-5PM. - - - - -------------------------- Example 3 -------------------------- - $dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" -$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) - - This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017. - - - - -------------------------- Example 4 -------------------------- - $dtr1 = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" -$dtr2 = New-CsOnlineDateTimeRange -Start "24/12/2018" -End "26/12/2018" -$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr1, $dtr2) - - This example creates a fixed schedule that is active from December 24, 2017 to December 26, 2017 and then from December 24, 2018 to December 26, 2018. - - - - -------------------------- Example 5 -------------------------- - $notInEffectSchedule = New-CsOnlineSchedule -Name "NotInEffect" -FixedSchedule - - This example creates a fixed schedule that is never active. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule - - - New-CsOnlineTimeRange - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange - - - New-CsOnlineDateTimeRange - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinedatetimerange - - - New-CsAutoAttendantCallFlow - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallflow - - - New-CsAutoAttendantCallHandlingAssociation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendantcallhandlingassociation - - - New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant - - - - - - New-CsOnlineTelephoneNumberOrder - New - CsOnlineTelephoneNumberOrder - - Use the `New-CsOnlineTelephoneNumberOrder` cmdlet to create a telephone number search order. The telephone numbers can then be used to set up calling features for users and services in your organization. - - - - Use the `New-CsOnlineTelephoneNumberOrder` cmdlet to create a telephone number search order. 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 find out the supported types of searches for each NumberType and construct the search request demonstrated below: - Telephone numbers can be created with 3 ways: - - Civic Address Search : A telephone number search order can be created base on a given civic address ID. The service will look up the address and fulfill the search order using available telephone numbers local to the given address. For civic address based search, the parameter `CivicAddressId` is required. - - Number Prefix Search : A telephone number search order can be created base on a given number prefix. The number prefix search allow the tenant to acquire telephone numbers with a fixed number prefix. For number prefix based search, the parameter `NumberPrefix` is required. - - Area Code Selection Search : A telephone number search order can be created base on a give area code. Certain service numbers are only offered with a dedicated set of area codes. With area code selection search, the tenant can acquire the desired telephone numbers by area code. For area code selection based search, the parameter `AreaCode` is required. - - - - New-CsOnlineTelephoneNumberOrder - - Name - - Specifies the telephone number search order name. - - String - - String - - - None - - - Description - - Specifies the telephone number search order description. - - String - - String - - - None - - - Country - - Specifies the telephone number search order country/region. Use `Get-CsOnlineTelephoneNumberCountry` to find the supported countries/regions. - - String - - String - - - None - - - NumberType - - Specifies the telephone number search order number type. Use `Get-CsOnlineTelephoneNumberType` to find the supported number types. - - String - - String - - - None - - - Quantity - - Specifies the telephone number search order quantity. The number of allowed quantity is based on the tenant licenses. - - Integer - - Integer - - - None - - - CivicAddressId - - Specifies the telephone number search order civic address. CivicAddressId is required for civic address based search and when RequiresCivicAddress is true for a given NumberType. - - String - - String - - - None - - - NumberPrefix - - Specifies the telephone number search order number prefix. NumberPrefix is required for number prefix based search. - - Integer - - Integer - - - None - - - AreaCode - - Specifies the telephone number search order number area code. AreaCode is required for area code selection based search. - - Integer - - Integer - - - None - - - - - - Name - - Specifies the telephone number search order name. - - String - - String - - - None - - - Description - - Specifies the telephone number search order description. - - String - - String - - - None - - - Country - - Specifies the telephone number search order country/region. Use `Get-CsOnlineTelephoneNumberCountry` to find the supported countries/regions. - - String - - String - - - None - - - NumberType - - Specifies the telephone number search order number type. Use `Get-CsOnlineTelephoneNumberType` to find the supported number types. - - String - - String - - - None - - - Quantity - - Specifies the telephone number search order quantity. The number of allowed quantity is based on the tenant licenses. - - Integer - - Integer - - - None - - - CivicAddressId - - Specifies the telephone number search order civic address. CivicAddressId is required for civic address based search and when RequiresCivicAddress is true for a given NumberType. - - String - - String - - - None - - - NumberPrefix - - Specifies the telephone number search order number prefix. NumberPrefix is required for number prefix based search. - - Integer - - Integer - - - None - - - AreaCode - - Specifies the telephone number search order number area code. AreaCode is required for area code selection based search. - - Integer - - Integer - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 1" -Description "Civic address search example" -Country "US" -NumberType "UserSubscriber" -Quantity 1 -CivicAddressId 3b175352-4131-431e-970c-273226b8fb46 -PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId - -AreaCode : -CivicAddressId : 3b175352-4131-431e-970c-273226b8fb46 -CountryCode : US -CreatedAt : 8/23/2021 5:43:44 PM -Description : Civic address search example -ErrorCode : NoError -Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -InventoryType : Subscriber -IsManual : False -Name : Example 1 -NumberPrefix : -NumberType : UserSubscriber -Quantity : 1 -ReservationExpiryDate : 8/23/2021 5:59:45 PM -SearchType : CivicAddress -SendToServiceDesk : False -Status : Reserved -TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} - -PS C:\> $order.TelephoneNumber - -Location TelephoneNumber --------- --------------- -New York City +17182000004 - - This example demonstrates a civic address based telephone number search. Telephone number +17182000004 is found to belong to the given address and is reserved for purchase. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 2" -Description "Number prefix search example" -Country "US" -NumberType "UserSubscriber" -Quantity 1 -NumberPrefix 1425 -PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId - -AreaCode : -CivicAddressId : -CountryCode : US -CreatedAt : 8/23/2021 5:43:44 PM -Description : Number prefix search example -ErrorCode : NoError -Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -InventoryType : Subscriber -IsManual : False -Name : Example 2 -NumberPrefix : -NumberType : UserSubscriber -Quantity : 1 -ReservationExpiryDate : 8/23/2021 5:59:45 PM -SearchType : Prefix -SendToServiceDesk : False -Status : Reserved -TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} - -PS C:\> $order.TelephoneNumber - -Location TelephoneNumber --------- --------------- -Bellevue +14252000004 - - This example demonstrates a number prefix based telephone number search. Telephone number +14252000004 is found to have the desired number prefix and is reserved for purchase. - - - - -------------------------- Example 3 -------------------------- - PS C:\> $orderId = New-CsOnlineTelephoneNumberOrder -Name "Example 3" -Description "Area code selection search example" -Country "US" -NumberType "ConferenceTollFree" -Quantity 1 -AreaCode 800 -PS C:\> $order = Get-CsOnlineTelephoneNumberOrder -OrderId $orderId - -AreaCode : -CivicAddressId : -CountryCode : US -CreatedAt : 8/23/2021 5:43:44 PM -Description : Area code selection search example -ErrorCode : NoError -Id : 1efd85ca-dd46-41b3-80a0-2e4c5f87c912 -InventoryType : Service -IsManual : False -Name : Example 3 -NumberPrefix : -NumberType : ConferenceTollFree -Quantity : 1 -ReservationExpiryDate : 8/23/2021 5:59:45 PM -SearchType : AreaCodeSelection -SendToServiceDesk : False -Status : Reserved -TelephoneNumber : {Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TelephoneNumberSearchResult} - -PS C:\> $order.TelephoneNumber - -Location TelephoneNumber --------- --------------- -Toll Free +18002000004 - - This example demonstrates an area code selection based telephone number search. Telephone number +18002000004 is found to have the desired area code and is reserved for purchase. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberCountry - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbercountry - - - Get-CsOnlineTelephoneNumberType - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumbertype - - - New-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetelephonenumberorder - - - Get-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinetelephonenumberorder - - - Complete-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/complete-csonlinetelephonenumberorder - - - Clear-CsOnlineTelephoneNumberOrder - https://learn.microsoft.com/powershell/module/microsoftteams/clear-csonlinetelephonenumberorder - - - - - - New-CsOnlineTelephoneNumberReleaseOrder - New - CsOnlineTelephoneNumberReleaseOrder - - This cmdlet creates a request to release telephone numbers from Microsoft Teams telephone number management inventory. - - - - 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 - - EndingNumber - - 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 - - String - - - 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 telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. - - String - - String - - - None - - - TelephoneNumber - - This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. - - String - - String - - - None - - - - - - EndingNumber - - 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 - - String - - - 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 telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. - - String - - String - - - None - - - TelephoneNumber - - This is the telephone number you wish to release from your tenant in Microsoft Teams telephone number management inventory. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.String - - - - - - - - - The cmdlet is available in Teams PowerShell module 6.7.1 or later. - The cmdlet is only available in commercial and GCC cloud instances. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789" -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - - In this example, a telephone number "+123456789" is being released from Microsoft Teams telephone number management inventory. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -TelephoneNumber "+123456789,+134567890,+145678901" -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - - In this example, a list of telephone numbers are being released from Microsoft Teams telephone number management. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -StartingNumber "+12000000" -EndingNumber "+12000009" -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - - In this example, a range of telephone numbers from "+12000000" to "+12000009" are being released from Microsoft Teams telephone number management. - - - - -------------------------- Example 4 -------------------------- - PS C:\> $drlist = [System.IO.File]::ReadAllBytes("C:\Users\testuser\DrNumber.csv") -PS C:\> New-CsOnlineTelephoneNumberReleaseOrder -FileContent $drlist -cdf3073a-6fbb-4ade-a8af-e8fa1f3b9c13 - - 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. - - - - - - Online Version: - - - - Get-CsOnlineTelephoneNumberOrder - - - - New-CsOnlineDirectRoutingTelephoneNumberUploadOrder - - - - - - - New-CsOnlineTimeRange - New - CsOnlineTimeRange - - The New-CsOnlineTimeRange cmdlet creates a new time range. - - - - The New-CsOnlineTimeRange cmdlet creates a new time range to be used with the Auto Attendant (AA) service. Time ranges are used to form schedules. NOTES : - - The start bound of the range must be less than its end bound. - - Time ranges within a weekly recurrent schedule must align with 15-minute boundaries. - - - - New-CsOnlineTimeRange - - End - - > Applicable: Microsoft Teams - The End parameter represents the end bound of the time range. - - System.TimeSpan - - System.TimeSpan - - - None - - - Start - - > Applicable: Microsoft Teams - The Start parameter represents the start bound of the time range. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - End - - > Applicable: Microsoft Teams - The End parameter represents the end bound of the time range. - - System.TimeSpan - - System.TimeSpan - - - None - - - Start - - > Applicable: Microsoft Teams - The Start parameter represents the start bound of the time range. - - System.TimeSpan - - System.TimeSpan - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.TimeRange - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $workdayTimeRange = New-CsOnlineTimeRange -Start 09:00 -End 17:00 - - This example creates a time range for a 9AM to 5PM work day. - - - - -------------------------- Example 2 -------------------------- - $allDayTimeRange = New-CsOnlineTimeRange -Start 00:00 -End 1.00:00 - - This example creates a 24-hour time range. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinetimerange - - - - - - New-CsOnlineVoiceRoute - New - CsOnlineVoiceRoute - - 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. - - - - New-CsOnlineVoiceRoute - - Identity - - A name that uniquely identifies the online voice route. Voice routes can be defined only at the global scope, so the identity is simply the name you want to give the route. (You can have spaces in the route name, for instance Test Route, but you must enclose the full string in double quotes in the call to the New-CsOnlineVoiceRoute cmdlet.) - If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name. - - String - - String - - - None - - - BridgeSourcePhoneNumber - - BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. - When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. - For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A description of what this online voice route is for. - - String - - String - - - None - - - NumberPattern - - A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. - Default: [0-9]{10} - - String - - String - - - None - - - OnlinePstnGatewayList - - This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. - By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - Priority - - A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsOnlineVoiceRoute - - BridgeSourcePhoneNumber - - BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. - When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. - For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A description of what this online voice route is for. - - String - - String - - - None - - - Name - - The unique name of the voice route. If this parameter is set, the value will be automatically applied to the online voice route Identity. You cannot specify both an Identity and a Name. - - String - - String - - - None - - - NumberPattern - - A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. - Default: [0-9]{10} - - String - - String - - - None - - - OnlinePstnGatewayList - - This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. - By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - Priority - - A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - BridgeSourcePhoneNumber - - BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. - When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. - For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - A description of what this online voice route is for. - - String - - String - - - None - - - Identity - - A name that uniquely identifies the online voice route. Voice routes can be defined only at the global scope, so the identity is simply the name you want to give the route. (You can have spaces in the route name, for instance Test Route, but you must enclose the full string in double quotes in the call to the New-CsOnlineVoiceRoute cmdlet.) - If Identity is specified, the Name must be left blank. The value of the Identity will be assigned to the Name. - - String - - String - - - None - - - Name - - The unique name of the voice route. If this parameter is set, the value will be automatically applied to the online voice route Identity. You cannot specify both an Identity and a Name. - - String - - String - - - None - - - NumberPattern - - A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. - Default: [0-9]{10} - - String - - String - - - None - - - OnlinePstnGatewayList - - This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. - By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - Priority - - A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. - - Int32 - - Int32 - - - None - - - 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-CsOnlineVoiceRoute -Identity Route1 - - The command in this example creates a new online voice route with an Identity of Route1. All other properties will be set to the default values. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add="Long Distance"} -OnlinePstnGatewayList @{add="sbc1.litwareinc.com"} - - The command in this example creates a new online voice route with an Identity of Route1. It also adds the online PSTN usage Long Distance to the list of usages and the service ID PstnGateway sbc1.litwareinc.com to the list of online PSTN gateways. - - - - -------------------------- Example 3 -------------------------- - PS C:\> $x = (Get-CsOnlinePstnUsage).Usage - -New-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add=$x} - - This example creates a new online voice route named Route1 and populates that route's list of PSTN usages with all the existing usages for the organization. The first command in this example retrieves the list of global online PSTN usages. Notice that the call to the `Get-CsOnlinePstnUsage` cmdlet is in parentheses; this means that we first retrieve an object containing PSTN usage information. (Because there is only one, global, online PSTN usage, only one object will be retrieved.) The command then retrieves the Usage property of this object. That property, which contains a list of usages, is assigned to the variable $x. In the second line of this example, the `New-CsOnlineVoiceRoute` cmdlet is called to create a new online voice route. This voice route will have an identity of Route1. Notice the value passed to the OnlinePstnUsages parameter: @{add=$x}. This value says to add the contents of $x, which contain the phone usages list retrieved in line 1, to the list of online PSTN usages for this route. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute - - - Get-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute - - - Set-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute - - - Remove-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute - - - - - - New-CsOnlineVoiceRoutingPolicy - New - CsOnlineVoiceRoutingPolicy - - Creates a new 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. - - - - New-CsOnlineVoiceRoutingPolicy - - 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 - - - Description - - Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet). - - Object - - Object - - - None - - - RouteType - - This parameter is reserved for internal Microsoft use. - - 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 - - - Description - - Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - String - - String - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet). - - Object - - Object - - - None - - - RouteType - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - 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-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance" - - The command shown in Example 1 creates a new online per-user voice routing policy with the Identity RedmondOnlineVoiceRoutingPolicy. This policy is assigned a single online PSTN usage: Long Distance. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages "Long Distance", "Local", "Internal" - - Example 2 is a variation of the command shown in Example 1; in this case, however, the new policy is assigned three online PSTN usages: Long Distance; Local; Internal. Multiple usages can be assigned simply by separating each usage using a comma. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - - - 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-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy - - - - - - New-CsSdgBulkSignInRequest - New - CsSdgBulkSignInRequest - - Use the New-CsSdgBulkSignInRequest cmdlet to sign in a batch of up to 100 devices. - - - - Bulk Sign In for Teams SIP Gateway enables you to sign in a batch of devices in one go. This feature is intended for admins and works for shared devices. The password for the shared device account is reset at runtime to an unknown value and the cmdlet uses the new credential for fetching token from Entra ID. Admins can sign in shared account remotely and in bulk using this feature. - - - - New-CsSdgBulkSignInRequest - - DeviceDetailsFilePath - - This is the path of the device details CSV file. The CSV file contains two columns - username and hardware ID, where username is of the format FirstFloorLobbyPhone1@contoso.com and hardware ID is the device MAC address in the format 1A-2B-3C-4D-5E-6F - - String - - String - - - None - - - Region - - This is the SIP Gateway region. Possible values include NOAM, EMEA, APAC. - - String - - String - - - None - - - - - - DeviceDetailsFilePath - - This is the path of the device details CSV file. The CSV file contains two columns - username and hardware ID, where username is of the format FirstFloorLobbyPhone1@contoso.com and hardware ID is the device MAC address in the format 1A-2B-3C-4D-5E-6F - - String - - String - - - None - - - Region - - This is the SIP Gateway region. Possible values include NOAM, EMEA, APAC. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Import-Module MicrosoftTeams -$credential = Get-Credential // Enter your admin's email and password -Connect-MicrosoftTeams -Credential $credential -$newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC - - This example shows how to connect to Microsoft Teams PowerShell module, and read the output of the New-SdgBulkSignInRequest cmdlet into a variable newBatchResponse. The cmdlet uses Example.csv as the device details file, and SIP Gateway region as APAC. - - - - -------------------------- Example 2 -------------------------- - $newBatchResponse = New-CsSdgBulkSignInRequest -DeviceDetailsFilePath .\Example.csv -Region APAC -$newBatchResponse.BatchId -$getBatchStatusResponse = Get-CsSdgBulkSignInRequestStatus -Batchid $newBatchResponse.BatchId -$getBatchStatusResponse | ft -$getBatchStatusResponse.BatchItem - - This example shows how to view the status of a bulk sign in batch. - - - - - - - - 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 - New - CsTeamsAudioConferencingPolicy - - - - - - The New-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. This cmdlet creates a new Teams audio conferencing policy. Custom policies can then be assigned to users using the Grant-CsTeamsAudioConferencingPolicy cmdlet. - - - - New-CsTeamsAudioConferencingPolicy - - Identity - - Specify the name of the policy that you are creating - - String - - String - - - None - - - AllowTollFreeDialin - - Determines whether users of the Policy can have Toll free numbers - - Boolean - - Boolean - - - True - - - 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 - - - InMemory - - 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 - - - False - - - MeetingInvitePhoneNumbers - - Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowTollFreeDialin - - Determines whether users of the Policy can have Toll free numbers - - Boolean - - Boolean - - - True - - - 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 - - - Identity - - Specify the name of the policy that you are creating - - String - - String - - - None - - - InMemory - - 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 - - SwitchParameter - - - False - - - MeetingInvitePhoneNumbers - - Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> New-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $False - - The command shown in Example 1 uses the New-CsTeamsAudioConferencingPolicy cmdlet to create a new audio-conferencing policy with the Identity "EMEA users". This policy will use all the default values for a meeting policy except one: AllowTollFreeDialin; in this example, meetings created by users with this policy cannot include Toll Free phone numbers. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> New-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $True -MeetingInvitePhoneNumbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" - - The command shown in Example 2 uses the New-CsTeamsAudioConferencingPolicy cmdlet to create a new audio-conferencing policy with the Identity "EMEA users". This policy will use all the default values for a meeting policy except one: MeetingInvitePhoneNumbers; in this example, meetings created by users with this policy will include the following toll and toll free phone numbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy - - - Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - - - - - - New-CsTeamsCallParkPolicy - New - CsTeamsCallParkPolicy - - 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. - - - - New-CsTeamsCallParkPolicy - - Identity - - A unique identifier for the policy - this will be used to retrieve the policy later on to assign it to specific users. - - XdsIdentity - - XdsIdentity - - - None - - - AllowCallPark - - If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. - - 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 - - - Force - - Suppress all non-fatal errors. - - - SwitchParameter - - - False - - - ParkTimeoutSeconds - - 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 - - - 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 - - Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. - - Integer - - Integer - - - 10 - - - 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 - - - - - - AllowCallPark - - If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - 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 - - - Force - - Suppress all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - A unique identifier for the policy - this will be used to retrieve the policy later on to assign it to specific users. - - XdsIdentity - - XdsIdentity - - - None - - - ParkTimeoutSeconds - - 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 - - - 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 - - Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. - - Integer - - Integer - - - 10 - - - 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 - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true - - Create a new custom policy that has call park enabled. This policy can then be assigned to individual users. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true -PickupRangeStart 500 -PickupRangeEnd 1500 - - Create a new custom policy that has call park enabled. This policy will generate pickup numbers starting from 500 and up until 1500. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -AllowCallPark $true -ParkTimeoutSeconds 600 - - Create a new custom call park policy which will ring back the parker after 600 seconds if the parked call is unanswered - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamscallparkpolicy - - - - - - New-CsTeamsCortanaPolicy - New - CsTeamsCortanaPolicy - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - - - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - This cmdlet creates a new Teams Cortana policy. Custom policies can then be assigned to users using the Grant-CsTeamsCortanaPolicy cmdlet. - - - - New-CsTeamsCortanaPolicy - - Identity - - Unique identifier for Teams cortana policy you're creating. - - XdsIdentity - - XdsIdentity - - - None - - - AllowCortanaAmbientListening - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaInContextSuggestions - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaVoiceInvocation - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CortanaVoiceInvocationMode - - The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - String - - String - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - 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 - - - InMemory - - 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-. - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowCortanaAmbientListening - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaInContextSuggestions - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaVoiceInvocation - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CortanaVoiceInvocationMode - - The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - String - - String - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - 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 - - - Identity - - Unique identifier for Teams cortana policy you're creating. - - XdsIdentity - - XdsIdentity - - - None - - - InMemory - - 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-. - - SwitchParameter - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsCortanaPolicy -Identity MyCortanaPolicy -CortanaVoiceInvocationMode PushToTalkUserOverride - - In this example, a new Teams Cortana Policy is created. Cortana voice invocation mode is set to 'push to talk' i.e. Cortana in Teams can be invoked by tapping on the Cortana mic button only. Wake word ("Hey Cortana") invocation is not allowed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy - - - - - - New-CsTeamsEmergencyCallRoutingPolicy - New - CsTeamsEmergencyCallRoutingPolicy - - This cmdlet creates a new Teams Emergency Call Routing policy with one or more emergency number. - - - - This cmdlet creates a new Teams Emergency Call Routing policy with one or more emergency numbers. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration. - - - - New-CsTeamsEmergencyCallRoutingPolicy - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy. - - String - - String - - - None - - - AllowEnhancedEmergencyServices - - Flag to enable Enhanced Emergency Services. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - The Description parameter describes the Teams Emergency Call Routing policy - what it's for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. - - String - - String - - - None - - - EmergencyNumbers - - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowEnhancedEmergencyServices - - Flag to enable Enhanced Emergency Services. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - The Description parameter describes the Teams Emergency Call Routing policy - what it's for, what type of user it applies to and any other information that helps to identify the purpose of this policy. Maximum characters: 512. - - String - - String - - - None - - - EmergencyNumbers - - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. - - Object - - Object - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" -New-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{add=$en1} -AllowEnhancedEmergencyServices:$true -Description "test" - - This example first creates a new Teams emergency number object and then creates a Teams Emergency Call Routing policy with this emergency number object. Note that the OnlinePSTNUsage specified in the first command must previously exist. Note that the resulting object from the New-CsTeamsEmergencyNumber only exists in memory, so you must apply it to a policy to be used. Note that {@add=....} will try to append a new emergency number to the values taken from the global instance. - - - - -------------------------- Example 2 -------------------------- - $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" -New-CsTeamsEmergencyCallRoutingPolicy -Identity "testecrp" -EmergencyNumbers $en1 -AllowEnhancedEmergencyServices:$true -Description "test" - - This example overrides the global emergency numbers from the global instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy - - - Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy - - - Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyNumber - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber - - - - - - New-CsTeamsEmergencyNumber - New - CsTeamsEmergencyNumber - - - - - - This cmdlet supports creating multiple Teams emergency numbers. Used with TeamsEmergencyCallRoutingPolicy and only relevant for Direct Routing. - - - - New-CsTeamsEmergencyNumber - - EmergencyDialMask - - For each Teams emergency number, you can specify zero or more emergency dial masks. A dial mask is a number that you want to translate into the value of the emergency dial number value when it is dialed. Dial mask must be list of numbers separated by semicolon. Each number string must be made of the digits 0 through 9 and can be from 1 to 10 digits in length. - - String - - String - - - None - - - EmergencyDialString - - Specifies the emergency phone number - - String - - String - - - None - - - OnlinePSTNUsage - - Specify the online public switched telephone network (PSTN) usage - - String - - String - - - None - - - - - - EmergencyDialMask - - For each Teams emergency number, you can specify zero or more emergency dial masks. A dial mask is a number that you want to translate into the value of the emergency dial number value when it is dialed. Dial mask must be list of numbers separated by semicolon. Each number string must be made of the digits 0 through 9 and can be from 1 to 10 digits in length. - - String - - String - - - None - - - EmergencyDialString - - Specifies the emergency phone number - - String - - String - - - None - - - OnlinePSTNUsage - - Specify the online public switched telephone network (PSTN) usage - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsEmergencyNumber -EmergencyDialString 911 -EmergencyDialMask 933 -OnlinePSTNUsage "US911" - - Create a new Teams emergency number - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "117;897" -OnlinePSTNUsage "EU112" - - Create a new Teams emergency number with multiple emergency dial masks. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber - - - Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - - - - New-CsTeamsEnhancedEncryptionPolicy - New - CsTeamsEnhancedEncryptionPolicy - - Use this cmdlet to create a new Teams enhanced encryption policy. - - - - Use this cmdlet to create a new Teams enhanced encryption policy. - The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for end-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. - - - - New-CsTeamsEnhancedEncryptionPolicy - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - None - - - CallingEndtoEndEncryptionEnabledType - - 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. - - Enum - - Enum - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - InMemory - - 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 - - - False - - - MeetingEndToEndEncryption - - 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 - - - False - - - - - - CallingEndtoEndEncryptionEnabledType - - 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. - - Enum - - Enum - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - Force - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - None - - - InMemory - - 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 - - SwitchParameter - - - False - - - MeetingEndToEndEncryption - - 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 - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> New-CsTeamsEnhancedEncryptionPolicy -Identity ContosoPartnerTeamsEnhancedEncryptionPolicy - - Creates a new instance of TeamsEnhancedEncryptionPolicy called ContosoPartnerTeamsEnhancedEncryptionPolicy and applies the default values to its settings. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> New-CsTeamsEnhancedEncryptionPolicy -Identity ContosoPartnerTeamsEnhancedEncryptionPolicy -CallingEndtoEndEncryptionEnabledType DisabledUserOverride -MeetingEndToEndEncryption DisabledUserOverride - - Creates a new instance of TeamsEnhancedEncryptionPolicy called ContosoPartnerTeamsEnhancedEncryptionPolicy and applies the provided values to its settings. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy - - - Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy - - - Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy - - - Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy - - - Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy - - - - - - New-CsTeamsEventsPolicy - New - CsTeamsEventsPolicy - - This cmdlet allows you to create a new TeamsEventsPolicy instance and set its properties. Note that this policy is currently still in preview. - - - - TeamsEventsPolicy is used to configure options for customizing Teams Events experiences. - - - - New-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - 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 - - - AllowEventIntegrations - - 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 - - String - - - Enabled - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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 - - String - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - 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 - - - AllowEventIntegrations - - 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 - - String - - - Enabled - - - BroadcastPremiumApps - - 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 - - - Enabled - - - 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 - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs if the user can enable the Comment Stream chat experience for Townhalls. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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 - - String - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsEventsPolicy -Identity DisablePublicWebinars -AllowWebinars Enabled -EventAccessType EveryoneInCompanyExcludingGuests - - The command shown in Example 1 creates a new per-user Teams Events policy with the Identity DisablePublicWebinars. This policy disables a user from creating public webinars. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsEventsPolicy -Identity DisableWebinars -AllowWebinars Disabled - - The command shown in Example 2 creates a new per-user Teams Events policy with the Identity DisableWebinars. This policy disables a user from creating webinars. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamseventspolicy - - - - - - New-CsTeamsIPPhonePolicy - New - CsTeamsIPPhonePolicy - - New-CsTeamsIPPhonePolicy allows you to create a policy to manage features related to Teams phone experiences. Teams phone policies determine the features that are available to users. - - - - The New-CsTeamsIPPhonePolicy cmdlet allows you to create a policy to manage features related to Teams phone experiences assigned to a user account used to sign into a Teams phone. - - - - New-CsTeamsIPPhonePolicy - - Identity - - The identity of the policy that you want to create. - - XdsIdentity - - XdsIdentity - - - None - - - AllowBetterTogether - - Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: - - Enabled - - Disabled - - String - - String - - - Enabled - - - AllowHomeScreen - - Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: - - Enabled - - EnabledUserOverride - - Disabled - - String - - String - - - EnabledUserOverride - - - AllowHotDesking - - Determines whether hot desking mode is enabled. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Free form text that can be used by administrators as desired. - - String - - 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 - - - HotDeskingIdleTimeoutInMinutes - - Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. - - String - - String - - - None - - - SearchOnCommonAreaPhoneMode - - Determines whether a user can search the Global Address List in Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. - - Object - - Object - - - None - - - SignInMode - - Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' - - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' - - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowBetterTogether - - Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: - - Enabled - - Disabled - - String - - String - - - Enabled - - - AllowHomeScreen - - Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: - - Enabled - - EnabledUserOverride - - Disabled - - String - - String - - - EnabledUserOverride - - - AllowHotDesking - - Determines whether hot desking mode is enabled. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Free form text that can be used by administrators as desired. - - String - - 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 - - SwitchParameter - - - False - - - HotDeskingIdleTimeoutInMinutes - - Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. - - String - - String - - - None - - - Identity - - The identity of the policy that you want to create. - - XdsIdentity - - XdsIdentity - - - None - - - SearchOnCommonAreaPhoneMode - - Determines whether a user can search the Global Address List in Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. - - Object - - Object - - - None - - - SignInMode - - Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' - - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' - - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - Guid - - Guid - - - None - - - 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-CsTeamsIPPhonePolicy -Identity CommonAreaPhone -SignInMode CommonAreaPhoneSignin - - This example shows a new policy being created called "CommonAreaPhone" setting the SignInMode as "CommonAreaPhoneSignIn". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsipphonepolicy - - - - - - New-CsTeamsMeetingBroadcastPolicy - New - CsTeamsMeetingBroadcastPolicy - - Use this cmdlet to create a new policy. - - - - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. - - - - New-CsTeamsMeetingBroadcastPolicy - - Identity - - Specifies the name of the policy being created - - XdsIdentity - - XdsIdentity - - - None - - - AllowBroadcastScheduling - - Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. - - Boolean - - Boolean - - - None - - - AllowBroadcastTranscription - - Specifies whether real-time transcription and translation can be enabled in the broadcast event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - Boolean - - Boolean - - - None - - - BroadcastAttendeeVisibilityMode - - Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - String - - String - - - None - - - BroadcastRecordingMode - - Specifies whether broadcast events created by this user are always recorded, never recorded or user can choose whether to record or not. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Specifies why this policy is being created. - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - - SwitchParameter - - - False - - - InMemory - - 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 - - - False - - - Tenant - - Not applicable, you can only specify policies for your own logged-in tenant. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowBroadcastScheduling - - Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. - - Boolean - - Boolean - - - None - - - AllowBroadcastTranscription - - Specifies whether real-time transcription and translation can be enabled in the broadcast event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - Boolean - - Boolean - - - None - - - BroadcastAttendeeVisibilityMode - - Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - String - - String - - - None - - - BroadcastRecordingMode - - Specifies whether broadcast events created by this user are always recorded, never recorded or user can choose whether to record or not. Note: this setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Specifies why this policy is being created. - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Specifies the name of the policy being created - - XdsIdentity - - XdsIdentity - - - None - - - InMemory - - 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 - - SwitchParameter - - - False - - - Tenant - - Not applicable, you can only specify policies for your own logged-in tenant. - - Guid - - Guid - - - None - - - 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-CsTeamsMeetingBroadcastPolicy -Identity Students -AllowBroadcastScheduling $false - - Creates a new MeetingBroadcastPolicy with broadcast scheduling disabled, which can then be assigned to individual users using the corresponding grant- command. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmeetingbroadcastpolicy - - - - - - New-CsTeamsMobilityPolicy - New - CsTeamsMobilityPolicy - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - - - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - The New-CsTeamsMobilityPolicy cmdlet lets an Admin create a custom teams mobility policy to assign to particular sets of users. - - - - New-CsTeamsMobilityPolicy - - Identity - - Specify the name of the policy that you are creating. - - XdsIdentity - - XdsIdentity - - - 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 - - - Force - - Suppress all non-fatal errors. - - - SwitchParameter - - - False - - - IPAudioMobileMode - - When set to WifiOnly, prohibits the user from making and receiving calls or joining meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. - - String - - String - - - None - - - IPVideoMobileMode - - When set to WifiOnly, prohibits the user from making and receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. - - String - - String - - - None - - - 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 - - - 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 - - - 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 - - Suppress all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Specify the name of the policy that you are creating. - - XdsIdentity - - XdsIdentity - - - None - - - IPAudioMobileMode - - When set to WifiOnly, prohibits the user from making and receiving calls or joining meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. - - String - - String - - - None - - - IPVideoMobileMode - - When set to WifiOnly, prohibits the user from making and receiving video calls or enabling video in meetings using VoIP calls on the mobile device while on a cellular data connection. Possible values are: WifiOnly, AllNetworks. - - String - - String - - - None - - - 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 - - - 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-CsTeamsMobilityPolicy -Identity SalesMobilityPolicy -IPAudioMobileMode "WifiOnly" - - The command shown in Example 1 uses the New-CsTeamsMobilityPolicy cmdlet to create a new Teams Mobility Policy with the Identity SalesMobilityPolicy and IPAudioMobileMode equal to WifiOnly. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsmobilitypolicy - - - - - - New-CsTeamsNetworkRoamingPolicy - New - CsTeamsNetworkRoamingPolicy - - New-CsTeamsNetworkRoamingPolicy allows IT Admins to create policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. - - - - Creates new Teams Network Roaming Policies configured for use in your organization. - The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. - More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). - To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. - - - - New-CsTeamsNetworkRoamingPolicy - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - True - - - Description - - Description of the new policy to be created. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be created. - - XdsIdentity - - XdsIdentity - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - Integer - - Integer - - - 50000 - - - - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - True - - - Description - - Description of the new policy to be created. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be created. - - XdsIdentity - - XdsIdentity - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - Integer - - Integer - - - 50000 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTeamsNetworkRoamingPolicy -Identity "RedmondRoaming" -AllowIPVideo $true -MediaBitRateKb 2000 -Description "Redmond campus roaming policy" - - The command shown in Example 1 creates a new teams network roaming policy with Identity "RedmondRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 2000 Kbps. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTeamsNetworkRoamingPolicy -Identity "RemoteRoaming" - - The command shown in Example 2 creates a new teams network roaming policy with Identity "RemoteRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 50000 Kbps by default. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsnetworkroamingpolicy - - - - - - New-CsTeamsRoomVideoTeleConferencingPolicy - New - CsTeamsRoomVideoTeleConferencingPolicy - - Creates a new TeamsRoomVideoTeleConferencingPolicy. - - - - The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). - - - - New-CsTeamsRoomVideoTeleConferencingPolicy - - Identity - - Unique identifier for the policy to be modified. - - String - - String - - - None - - - AreaCode - - GUID provided by the CVI partner that the customer signed the agreement with. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Enabled - - The policy can exist for the tenant but it can be enabled or disabled. - - Boolean - - Boolean - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PlaceExternalCalls - - The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - PlaceInternalCalls - - The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveExternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveInternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AreaCode - - GUID provided by the CVI partner that the customer signed the agreement with. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Enabled - - The policy can exist for the tenant but it can be enabled or disabled. - - Boolean - - Boolean - - - None - - - Identity - - Unique identifier for the policy to be modified. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PlaceExternalCalls - - The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - PlaceInternalCalls - - The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveExternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveInternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsroomvideoteleconferencingpolicy - - - - - - New-CsTeamsShiftsConnection - New - CsTeamsShiftsConnection - - This cmdlet creates a new workforce management (WFM) connection. - - - - This cmdlet creates a Shifts WFM connection. It allows the admin to set up the environment for creating connection instances. - - - - 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 - - The request body. - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - The WFM connector ID. - - String - - String - - - None - - - ConnectorSpecificSettings - - The connection name. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - - 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 connection 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. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - - - 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 - - - Body - - The request body. - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - ConnectorId - - The WFM connector ID. - - String - - String - - - None - - - ConnectorSpecificSettings - - The connection name. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificSettingsRequest - - - 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 connection 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 - - SwitchParameter - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $result = New-CsTeamsShiftsConnection ` - -connectorId "6A51B888-FF44-4FEA-82E1-839401E00000" ` - -name "Cmdlet test connection" ` - -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest ` - -Property @{ - adminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta2" - siteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta2" - essApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta1" - retailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1" - cookieAuthUrl = "https://contoso.com/retail/data/login" - federatedAuthUrl = "https://contoso.com/retail/data/login" - LoginUserName = "PlaceholderForUsername" - LoginPwd = "PlaceholderForPassword" - }) ` - -state "Active" -PS C:\> $result | Format-List - -{ -ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 -ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 -ConnectorSpecificSettingApiUrl : -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : -ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 -ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 -ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 -ConnectorSpecificSettingSsoUrl : -CreatedDateTime : 24/03/2023 04:58:23 -Etag : "5b00dd1b-0000-0400-0000-641d2df00000" -Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -LastModifiedDateTime : 24/03/2023 04:58:23 -Name : Cmdlet test connection -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 -} - - Returns the object of the created connection. - In case of an error, we can capture the error response as follows: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - -------------------------- Example 2 -------------------------- - PS C:\> $result = New-CsTeamsShiftsConnection ` - -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` - -name "Cmdlet test connection" ` - -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` - -Property @{ - apiUrl = "https://www.contoso.com/api" - ssoUrl = "https://www.contoso.com/sso" - appKey = "PlaceholderForAppKey" - clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" - clientSecret = "PlaceholderForClientSecret" - LoginUserName = "PlaceholderForUsername" - LoginPwd = "PlaceholderForPassword" - }) ` - -state "Active" -PS C:\> $result | Format-List - -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -ConnectorSpecificSettingAdminApiUrl : -ConnectorSpecificSettingApiUrl : https://www.contoso.com/api -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W -ConnectorSpecificSettingCookieAuthUrl : -ConnectorSpecificSettingEssApiUrl : -ConnectorSpecificSettingFederatedAuthUrl : -ConnectorSpecificSettingRetailWebApiUrl : -ConnectorSpecificSettingSiteManagerUrl : -ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso -CreatedDateTime : 06/04/2023 11:05:39 -Etag : "3100fd6e-0000-0400-0000-642ea7840000" -Id : a2d1b091-5140-4dd2-987a-98a8b5338744 -LastModifiedDateTime : 06/04/2023 11:05:39 -Name : Cmdlet test connection -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection - - - Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnectionConnector - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - New-CsTeamsShiftsConnectionBatchTeamMap - New - CsTeamsShiftsConnectionBatchTeamMap - - This cmdlet submits an operation connecting multiple Microsoft Teams teams and Workforce management (WFM) teams. - - - - 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). - - - - New-CsTeamsShiftsConnectionBatchTeamMap - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The connection instance ID used to map teams. - - String - - String - - - None - - - TeamMapping - - > Applicable: Microsoft Teams - The Teams mapping object list. - - TeamMap[] - - TeamMap[] - - - None - - - - - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The connection instance ID used to map teams. - - String - - String - - - None - - - TeamMapping - - > Applicable: Microsoft Teams - The Teams mapping object list. - - TeamMap[] - - TeamMap[] - - - None - - - - - - - Please check the example section for the format of TeamMap. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $map1 = @{ -teamId = 'eddc3b94-21d5-4ef0-a76a-2e4d6f4a50be' -wfmTeamId = 1000553 -timeZone = "America/Los_Angeles" -} - -$map2 = @{ -teamId = '1d8f6288-0459-4c53-8e98-9de7b781844a' -wfmTeamId = 1000555 -timeZone = "America/Los_Angeles" -} - -New-CsTeamsShiftsConnectionBatchTeamMap -ConnectorInstanceId WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a343e01 -TeamMapping @($map1, $map2) - -CreatedDateTime LastActionDateTime OperationId Status ---------------- ------------------ ----------- ------ -12/6/2021 7:28:51 PM 12/6/2021 7:28:51 PM c79131b7-9ecb-484b-a8df-2639c7c1e5f0 NotStarted - - Sends 2 team mappings: one maps the Teams team with ID `eddc3b94-21d5-4ef0-a76a-2e4d6f4a50be` and WFM team with ID `1000553` and the other maps the Teams team with ID `1d8f6288-0459-4c53-8e98-9de7b781844a` and WFM team with ID `1000555` in the instance with ID `WCI-2afeb8ec-a0f6-4580-8f1e-85fd4a343e01`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap - - - Get-CsTeamsShiftsConnectionOperation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionoperation - - - - - - New-CsTeamsShiftsConnectionInstance - New - CsTeamsShiftsConnectionInstance - - This cmdlet creates a Shifts connection instance. - - - - This cmdlet creates a Shifts connection instance. It allows the admin to set up the environment for further connection settings. - - - - New-CsTeamsShiftsConnectionInstance - - Body - - The request body - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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-CsTeamsShiftsConnectionInstance - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - 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 - - 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 - - - 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 swap shift 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Body - - The request body - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - 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 - - 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 - - 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 - - - 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 swap shift 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $result = New-CsTeamsShiftsConnectionInstance ` --connectionId "79964000-286a-4216-ac60-c795a426d61a" ` --name "Cmdlet test instance" ` --connectorAdminEmail @("admin@contoso.com", "superadmin@contoso.com") ` --designatedActorId "93f85765-47db-412d-8f06-9844718762a1" ` --State "Active" ` --syncFrequencyInMin "10" ` --SyncScenarioOfferShiftRequest "FromWfmToShifts" ` --SyncScenarioOpenShift "FromWfmToShifts" ` --SyncScenarioOpenShiftRequest "FromWfmToShifts" ` --SyncScenarioShift "FromWfmToShifts" ` --SyncScenarioSwapRequest "FromWfmToShifts" ` --SyncScenarioTimeCard "FromWfmToShifts" ` --SyncScenarioTimeOff "FromWfmToShifts" ` --SyncScenarioTimeOffRequest "FromWfmToShifts" ` --SyncScenarioUserShiftPreference "Disabled" -PS C:\> $result.ToJsonString() - -{ - "syncScenarios": { - "offerShiftRequest": "FromWfmToShifts", - "openShift": "FromWfmToShifts", - "openShiftRequest": "FromWfmToShifts", - "shift": "FromWfmToShifts", - "swapRequest": "FromWfmToShifts", - "timeCard": "FromWfmToShifts", - "timeOff": "FromWfmToShifts", - "timeOffRequest": "FromWfmToShifts", - "userShiftPreferences": "Disabled" - }, - "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", - "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", - "connectionId": "79964000-286a-4216-ac60-c795a426d61a", - "connectorAdminEmails": [ "admin@contoso.com", "superadmin@contoso.com" ], - "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", - "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", - "name": "Cmdlet test instance", - "syncFrequencyInMin": 10, - "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", - "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", - "createdDateTime": "2023-04-07T10:54:01.8170000Z", - "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", - "state": "Active" -} - - Returns the object of created connector instance. - In case of an error, we can capture the error response as follows: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionConnector - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionconnector - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - New-CsTeamsSurvivableBranchAppliance - New - CsTeamsSurvivableBranchAppliance - - 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 - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Free format text. - - String - - String - - - None - - - Fqdn - - The FQDN of the SBA. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - Site - - The TenantNetworkSite where the SBA is located - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsTeamsSurvivableBranchAppliance - - Identity - - The identity of the SBA. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Free format text. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - Site - - The TenantNetworkSite where the SBA is located - - 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 - - - Description - - Free format text. - - String - - String - - - None - - - Fqdn - - The FQDN of the SBA. - - String - - String - - - None - - - Identity - - The identity of the SBA. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - Site - - The TenantNetworkSite where the SBA is located - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliance - - - - - - New-CsTeamsSurvivableBranchAppliancePolicy - New - CsTeamsSurvivableBranchAppliancePolicy - - 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 - - Identity - - The unique identifier. - - String - - String - - - None - - - BranchApplianceFqdns - - The FQDN of the SBA(s) in the site. - - Object - - Object - - - 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 - - - - - - BranchApplianceFqdns - - The FQDN of the SBA(s) in the site. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The unique identifier. - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamssurvivablebranchappliancepolicy - - - - - - New-CsTeamsTranslationRule - New - CsTeamsTranslationRule - - Cmdlet to create a new telephone number manipulation rule. - - - - You can use this cmdlet to create a new number manipulation rule. The rule can be used, for example, in the settings of your SBC (Set-CSOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System - - - - New-CsTeamsTranslationRule - - Identity - - 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 - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description of the normalization rule. - - String - - String - - - None - - - Pattern - - A regular expression that caller or callee number must match in order for this rule to be applied. - - String - - String - - - None - - - Translation - - The regular expression pattern that will be applied to the number to convert it. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsTeamsTranslationRule - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description of the normalization rule. - - String - - String - - - None - - - Name - - The name of the rule. - - String - - String - - - None - - - Pattern - - A regular expression that caller or callee number must match in order for this rule to be applied. - - String - - String - - - None - - - Translation - - The regular expression pattern that will be applied to the number to convert it. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - A friendly description of the normalization rule. - - String - - String - - - None - - - Identity - - 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 - - String - - - None - - - Name - - The name of the rule. - - String - - String - - - None - - - Pattern - - A regular expression that caller or callee number must match in order for this rule to be applied. - - String - - String - - - None - - - Translation - - The regular expression pattern that will be applied to the number to convert it. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsTeamsTranslationRule -Identity 'AddPlus1' -Pattern '^(\d{10})$' -Translation '+1$1' - - This example creates a rule that adds +1 to any ten digits number. For example, 2065555555 will be translated to +1206555555 - - - - -------------------------- Example 2 -------------------------- - New-CsTeamsTranslationRule -Identity 'StripPlus1' -Pattern '^\+1(\d{10})$' -Translation '$1' - - This example creates a rule that strips +1 from any E.164 eleven digits number. For example, +12065555555 will be translated to 206555555 - - - - -------------------------- Example 3 -------------------------- - New-CsTeamsTranslationRule -Identity 'AddE164SeattleAreaCode' -Pattern '^(\d{4})$' -Translation '+120655$1' - - This example creates a rule that adds +1206555 to any four digits number (converts it to E.164number). For example, 5555 will be translated to +1206555555 - - - - -------------------------- Example 4 -------------------------- - New-CsTeamsTranslationRule -Identity 'AddSeattleAreaCode' -Pattern '^(\d{4})$' -Translation '425555$1' - - This example creates a rule that adds 425555 to any four digits number (converts to non-E.164 ten digits number). For example, 5555 will be translated to 4255555555 - - - - -------------------------- Example 5 -------------------------- - New-CsTeamsTranslationRule -Identity 'StripE164SeattleAreaCode' -Pattern '^\+1206555(\d{4})$' -Translation '$1' - - This example creates a rule that strips +1206555 from any E.164 ten digits number. For example, +12065555555 will be translated to 5555 - - - - -------------------------- Example 6 -------------------------- - New-CsTeamsTranslationRule -Identity 'GenerateFullNumber' -Pattern '^\+1206555(\d{4})$' -Translation '+1206555$1;ext=$1' - - This example creates a rule that adds the last four digits of a phone number starting with +1206555 as the extension. For example, +12065551234 will be translated to +12065551234;ext=1234. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule - - - Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule - - - Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule - - - Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule - - - Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule - - - - - - New-CsTeamsUnassignedNumberTreatment - New - CsTeamsUnassignedNumberTreatment - - Creates a new treatment for how calls to an unassigned number range should be routed. The call can be routed to a user, an application or to an announcement service where a custom message will be played to the caller. - - - - This cmdlet creates a treatment for how calls to an unassigned number range should be routed. - - - - New-CsTeamsUnassignedNumberTreatment - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Free format description of this treatment. - - System.String - - System.String - - - None - - - Identity - - The Id of the treatment. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - 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.String - - System.String - - - None - - - TargetType - - The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. - - System.String - - System.String - - - 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.Int32 - - 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 - - Free format description of this treatment. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - 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.String - - System.String - - - None - - - TargetType - - The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. - - System.String - - System.String - - - None - - - TreatmentId - - The identity of the treatment. - - System.String - - System.String - - - 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.Int32 - - 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 - - Free format description of this treatment. - - System.String - - System.String - - - None - - - Identity - - The Id of the treatment. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - 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.String - - System.String - - - None - - - TargetType - - The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. - - System.String - - System.String - - - None - - - TreatmentId - - The identity of the treatment. - - System.String - - System.String - - - 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.Int32 - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 2.5.1 or later. - The parameters Identity and TreatmentId are mutually exclusive. - To route calls to unassigned Microsoft Calling Plan subscriber numbers, your tenant needs to have available Communications Credits. - To route calls to unassigned Microsoft Calling Plan service numbers, your tenant needs to have at least one Microsoft Teams Phone Resource Account license. - Both inbound calls to Microsoft Teams and outbound calls from Microsoft Teams will have the called number checked against the unassigned number range. - If a specified pattern/range contains phone numbers that are assigned to a user or resource account in the tenant, calls to these phone numbers will be routed to the appropriate target and not routed to the specified unassigned number treatment. There are no other checks of the numbers in the range. If the range contains a valid external phone number, outbound calls from Microsoft Teams to that phone number will be routed according to the treatment. - - - - - -------------------------- Example 1 -------------------------- - $RAObjectId = (Get-CsOnlineApplicationInstance -Identity aa@contoso.com).ObjectId -New-CsTeamsUnassignedNumberTreatment -Identity MainAA -Pattern "^\+15552223333$" -TargetType ResourceAccount -Target $RAObjectId -TreatmentPriority 1 - - This example creates a treatment that will route all calls to the number +1 (555) 222-3333 to the resource account aa@contoso.com. That resource account is associated with an Auto Attendant (not part of the example). - - - - -------------------------- Example 2 -------------------------- - $Content = Get-Content "C:\Media\MainAnnoucement.wav" -Encoding byte -ReadCount 0 -$AudioFile = Import-CsOnlineAudioFile -FileName "MainAnnouncement.wav" -Content $Content -$Fid=[System.Guid]::Parse($audioFile.Id) -New-CsTeamsUnassignedNumberTreatment -Identity TR1 -Pattern "^\+1555333\d{4}$" -TargetType Announcement -Target $Fid.Guid -TreatmentPriority 2 - - This example creates a treatment that will route all calls to unassigned numbers in the range +1 (555) 333-0000 to +1 (555) 333-9999 to the announcement service, where the audio file MainAnnouncement.wav will be played to the caller. - - - - -------------------------- Example 3 -------------------------- - $UserObjectId = (Get-CsOnlineUser -Identity user@contoso.com).Identity -New-CsTeamsUnassignedNumberTreatment -Identity TR2 -Pattern "^\+15552224444$" -TargetType User -Target $UserObjectId -TreatmentPriority 3 - - This example creates a treatment that will route all calls to the number +1 (555) 222-4444 to the user user@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment - - - Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment - - - Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment - - - Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment - - - - - - New-CsTeamsWorkLoadPolicy - New - CsTeamsWorkLoadPolicy - - This cmdlet creates a Teams Workload Policy instance for the tenant. - - - - The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. - - - - New-CsTeamsWorkLoadPolicy - - Identity - - The identity of the Teams Workload Policy. - - String - - String - - - None - - - AllowCalling - - Determines if calling workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowCallingPinned - - Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeeting - - Determines if meetings workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeetingPinned - - Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessaging - - Determines if messaging workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessagingPinned - - Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the Teams Workload policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft Internal use only. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowCalling - - Determines if calling workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowCallingPinned - - Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeeting - - Determines if meetings workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeetingPinned - - Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessaging - - Determines if messaging workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessagingPinned - - Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the Teams Workload policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Identity - - The identity of the Teams Workload Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft Internal use only. - - String - - String - - - None - - - 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-CsTeamsWorkLoadPolicy -Identity Test - - Creates a new Teams Workload Policy with the specified identity of "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy - - - Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy - - - Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy - - - Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy - - - Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy - - - - - - New-CsTeamTemplate - 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 (/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 - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - None - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - - System.Management.Automation.SwitchParameter - - - False - - - Locale - - {{ Fill Locale Description }} - - System.String - - System.String - - - None - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-CsTeamTemplate - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - 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 - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - - System.Management.Automation.SwitchParameter - - - False - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-CsTeamTemplate - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - Locale - - {{ Fill Locale Description }} - - System.String - - System.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. - - - System.Management.Automation.SwitchParameter - - - False - - - - New-CsTeamTemplate - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - 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 - - 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. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - 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 - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Locale - - {{ Fill Locale Description }} - - System.String - - System.String - - - None - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - SwitchParameter - - - False - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse - - - - - - - - - ALIASES - COMPLEX PARAMETER PROPERTIES - To 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 <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. - - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - BODY <ITeamTemplate>: The client input for a request to create a template. Only admins from Config Api can perform this request. - - `DisplayName <String>`: Gets or sets the team's DisplayName. - - `ShortDescription <String>`: Gets or sets template short description. - - `[App <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. - - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - `[Category <String[]>]`: Gets or sets list of categories. - - `[Channel <IChannelTemplate[]>]`: Gets or sets the set of channel templates included in the team template. - - `[Description <String>]`: Gets or sets channel description as displayed to users. - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - `[Id <String>]`: Gets or sets identifier for the channel template. - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating 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 <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - `[Classification <String>]`: Gets or sets the team's classification. Tenant admins configure Microsoft Entra ID with the set of possible values. - - `[Description <String>]`: Gets or sets the team's Description. - - `[DiscoverySetting <ITeamDiscoverySettings>]`: Governs discoverability of a team. - - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - `[FunSetting <ITeamFunSettings>]`: Governs use of fun media like giphy and stickers in the team. - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - `[GuestSetting <ITeamGuestSettings>]`: Guest role settings for the team. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - `[Icon <String>]`: Gets or sets template icon. - - `[IsMembershipLimitedToOwner <Boolean?>]`: Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - `[MemberSetting <ITeamMemberSettings>]`: Member role settings for the team. - - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - `[MessagingSetting <ITeamMessagingSettings>]`: 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 <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. - `[OwnerUserObjectId <String>]`: Gets or sets the Microsoft Entra 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 <String>]`: Gets or sets published name. - - `[Specialization <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. - - `[TemplateId <String>]`: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. - - `[Uri <String>]`: Gets or sets uri to be used for GetTemplate api call. - - `[Visibility <String>]`: Used to control the scope of users who can view a group/team and its members, and ability to join. - - CHANNEL <IChannelTemplate[]>: Gets or sets the set of channel templates included in the team template. - - `[Description <String>]`: Gets or sets channel description as displayed to users. - - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - - `[Id <String>]`: Gets or sets identifier for the channel template. - - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating 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 <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - DISCOVERYSETTING <ITeamDiscoverySettings>: Governs discoverability of a team. - - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - FUNSETTING <ITeamFunSettings>: Governs use of fun media like giphy and stickers in the team. - - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - - GUESTSETTING <ITeamGuestSettings>: Guest role settings for the team. - - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - - INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter - - `[Bssid <String>]`: - - `[ChassisId <String>]`: - - `[CivicAddressId <String>]`: Civic address id. - - `[Country <String>]`: - - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. - - `[Id <String>]`: - - `[Identity <String>]`: - - `[Locale <String>]`: - - `[LocationId <String>]`: Location id. - - `[OdataId <String>]`: A composite URI of a template. - - `[OperationId <String>]`: The ID of a batch policy assignment operation. - - `[OrderId <String>]`: - - `[PackageName <String>]`: The name of a specific policy package - - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. - - `[Port <String>]`: - - `[PortInOrderId <String>]`: - - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. - - `[SubnetId <String>]`: - - `[TenantId <String>]`: - - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. - - MEMBERSETTING <ITeamMemberSettings>: Member role settings for the team. - - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - - MESSAGINGSETTING <ITeamMessagingSettings>: Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - - `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/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) - - - - - -------------------------- EXAMPLE 1 -------------------------- - 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) - - Step 1: Create new template from copy of existing template. Gets the template JSON file of Template with specified OData ID, creates a JSON file user can make edits in. Step 2: Create a new template from the JSON file named "input". - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> $template = Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/com.microsoft.teams.template.AdoptOffice365/Public/en-US' -PS C:\> $template | Format-List # show the output object as it would be accessed - -PS C:\> $template.Category = $null # unset category to copy from public template -PS C:\> $template.DisplayName = 'New Template from object' -PS C:\> $template.Channel[1].DisplayName += ' modified' -## add a new channel to the channel list -PS C:\> $template.Channel += ` -@{ ` - displayName="test"; ` - id="b82b7d0a-6bc9-4fd8-bf09-d432e4ea0475"; ` - isFavoriteByDefault=$false; ` -} - -PS C:\> New-CsTeamTemplate -Locale en-US -Body $template - - Create a template using a complex object syntax. - - - - -------------------------- EXAMPLE 3 -------------------------- - PS C:\> $template = New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplate -Property @{` -DisplayName='New Template';` -ShortDescription='Short Definition';` -Description='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` - }` -} - -PS C:\> New-CsTeamTemplate -Locale en-US -Body $template - - Create template from scratch - > [!Note] > It can take up to 24 hours for Teams users to see a custom template change in the gallery. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate - - - - - - New-CsTenantDialPlan - New - CsTenantDialPlan - - Use the `New-CsTenantDialPlan` cmdlet to create a new tenant dial plan. - - - - 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/microsoftteams/new-csvoicenormalizationrule)cmdlet. - - - - New-CsTenantDialPlan - - 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 - - - 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 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 - - String - - - None - - - NormalizationRules - - > 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/microsoftteams/new-csvoicenormalizationrule)cmdlet. - - List - - List - - - None - - - 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. - - String - - String - - - 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 - - - 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 - - String - - - 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 - - > 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/microsoftteams/new-csvoicenormalizationrule)cmdlet. - - List - - List - - - None - - - 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. - - String - - String - - - 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 - - - - - - - The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. - - - - - -------------------------- Example 1 -------------------------- - New-CsTenantDialPlan -Identity vt1tenantDialPlan9 - - This example creates a tenant dial plan that has an Identity of vt1tenantDialPlan9. - - - - -------------------------- Example 2 -------------------------- - $nr2 = New-CsVoiceNormalizationRule -Identity Global/NR2 -Description "TestNR1" -Pattern '^(d{11})$' -Translation '+1' -InMemory -New-CsTenantDialPlan -Identity vt1tenantDialPlan91 -NormalizationRules @{Add=$nr2} - - This example creates a new normalization rule and then applies that rule to a new tenant dial plan. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan - - - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan - - - - - - New-CsTenantNetworkRegion - New - CsTenantNetworkRegion - - 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. - - - - New-CsTenantNetworkRegion - - Identity - - Unique identifier for the network region to be created. - - String - - String - - - None - - - BypassID - - This parameter is not used. - - String - - String - - - None - - - CentralSite - - This parameter is not used. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network region to identify purpose of creating it. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsTenantNetworkRegion - - BypassID - - This parameter is not used. - - String - - String - - - None - - - CentralSite - - This parameter is not used. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network region to identify purpose of creating it. - - String - - String - - - None - - - NetworkRegionID - - 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. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - BypassID - - This parameter is not used. - - String - - String - - - None - - - CentralSite - - This parameter is not used. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Provide a description of the network region to identify purpose of creating it. - - String - - String - - - None - - - Identity - - Unique identifier for the network region to be created. - - String - - String - - - None - - - NetworkRegionID - - 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. - - String - - String - - - None - - - 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-CsTenantNetworkRegion -NetworkRegionID "RegionA" - - The command shown in Example 1 creates the network region 'RegionA' with no description. Identity and CentralSite will both be set identically to NetworkRegionID. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion - - - Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion - - - Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion - - - Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion - - - - - - New-CsTenantNetworkSite - New - CsTenantNetworkSite - - As an admin, you can use the Teams PowerShell command, New-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. The organization's network site is used for Location-Based Routing. - - - - A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. - A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. In addition, network sites can also be used for configuring Network Roaming Policy capabilities. - - - - New-CsTenantNetworkSite - - Identity - - Unique identifier for the network site to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of creating it. - - String - - String - - - None - - - EmergencyCallingPolicy - - 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 - - String - - - None - - - EmergencyCallRoutingPolicy - - 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 - - String - - - None - - - EnableLocationBasedRouting - - This parameter determines whether the current site is enabled for Location-Based Routing. - - Boolean - - Boolean - - - None - - - LocationPolicy - - This parameter is reserved for Microsoft internal use. - - String - - String - - - None - - - NetworkRegionID - - NetworkRegionID is the identifier for the network region to which the current network site is associated to. - - String - - String - - - None - - - NetworkRoamingPolicy - - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - - String - - String - - - None - - - SiteAddress - - This parameter is not used. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsTenantNetworkSite - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of creating it. - - String - - String - - - None - - - EmergencyCallingPolicy - - 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 - - String - - - None - - - EmergencyCallRoutingPolicy - - 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 - - String - - - None - - - EnableLocationBasedRouting - - This parameter determines whether the current site is enabled for Location-Based Routing. - - Boolean - - Boolean - - - None - - - LocationPolicy - - This parameter is reserved for Microsoft internal use. - - String - - String - - - None - - - NetworkRegionID - - NetworkRegionID is the identifier for the network region to which the current network site is associated to. - - String - - String - - - None - - - NetworkRoamingPolicy - - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - - String - - String - - - None - - - NetworkSiteID - - The name of the network site. This must be a string that is unique. You cannot specify an NetworkSiteID and an Identity at the same time. - - String - - String - - - None - - - SiteAddress - - This parameter is not used. - - 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 - - - Description - - Provide a description of the network site to identify purpose of creating it. - - String - - String - - - None - - - EmergencyCallingPolicy - - 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 - - String - - - None - - - EmergencyCallRoutingPolicy - - 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 - - String - - - None - - - EnableLocationBasedRouting - - This parameter determines whether the current site is enabled for Location-Based Routing. - - Boolean - - Boolean - - - None - - - Identity - - Unique identifier for the network site to be created. - - String - - String - - - None - - - LocationPolicy - - This parameter is reserved for Microsoft internal use. - - String - - String - - - None - - - NetworkRegionID - - NetworkRegionID is the identifier for the network region to which the current network site is associated to. - - String - - String - - - None - - - NetworkRoamingPolicy - - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - - String - - String - - - None - - - NetworkSiteID - - The name of the network site. This must be a string that is unique. You cannot specify an NetworkSiteID and an Identity at the same time. - - String - - String - - - None - - - SiteAddress - - This parameter is not used. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTenantNetworkSite -NetworkSiteID "MicrosoftSite1" -NetworkRegionID "RegionRedmond" - - The command shown in Example 1 created the network site 'MicrosoftSite1' with no description. Identity will be set identical with NetworkSiteID. - The network region 'RegionRedmond' is created beforehand and 'MicrosoftSite1' will be associated with 'RegionRedmond'. - NetworkSites can exist without all parameters excepts NetworkSiteID. NetworkRegionID can be left blank. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTenantNetworkSite -NetworkSiteID "site2" -Description "site 2" -NetworkRegionID "RedmondRegion" -LocationPolicy "TestLocationPolicy" -EnableLocationBasedRouting $true - - The command shown in Example 2 creates the network site 'site2' with the description 'site 2'. This site is enabled for LBR, and associates with network region 'RedmondRegion' and with location policy 'TestLocationPolicy'. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsTenantNetworkSite -NetworkSiteID "site3" -Description "site 3" -NetworkRegionID "RedmondRegion" -NetworkRoamingPolicy "TestNetworkRoamingPolicy" - - The command shown in Example 3 creates the network site 'site3' with the description 'site 3'. This site is enabled for network roaming capabilities. The example associates the site with network region 'RedmondRegion' and network roaming policy 'TestNetworkRoamingPolicy'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite - - - Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite - - - Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite - - - - - - New-CsTenantNetworkSubnet - New - CsTenantNetworkSubnet - - Creates a new network subnet. - - - - 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. - - - - New-CsTenantNetworkSubnet - - Identity - - Unique identifier for the network subnet to be created. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network subnet to identify the purpose of creating it. - - String - - String - - - 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 - - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsTenantNetworkSubnet - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network subnet to identify the purpose of creating it. - - String - - String - - - 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 - - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. - - String - - String - - - None - - - SubnetID - - The name of the network subnet. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an NetworkSubnetID and an Identity at the same time. - - 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 - - - Description - - Provide a description of the network subnet to identify the purpose of creating it. - - String - - String - - - None - - - Identity - - Unique identifier for the network subnet to be created. - - String - - String - - - 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 - - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. - - String - - String - - - None - - - SubnetID - - The name of the network subnet. This must be a unique and valid IPv4 or IPv6 address. You cannot specify an NetworkSubnetID and an Identity at the same time. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTenantNetworkSubnet -SubnetID "192.168.0.1" -MaskBits "24" -NetworkSiteID "site1" - - The command shown in Example 1 created the network subnet '192.168.0.1' with no description. The subnet is IPv4 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 24. - IPv4 format subnet accepts maskbits from 0 to 32 inclusive. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTenantNetworkSubnet -SubnetID "2001:4898:e8:25:844e:926f:85ad:dd8e" -MaskBits "120" -NetworkSiteID "site1" - - The command shown in Example 2 created the network subnet '2001:4898:e8:25:844e:926f:85ad:dd8e' with no description. The subnet is IPv6 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 120. - IPv6 format subnet accepts maskbits from 0 to 128 inclusive. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet - - - Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet - - - Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet - - - Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet - - - - - - New-CsTenantTrustedIPAddress - New - CsTenantTrustedIPAddress - - 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. 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the trusted IP address to identify purpose of creating it. - - 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 - - - InMemory - - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - MaskBits - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. - IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - False - - - - New-CsTenantTrustedIPAddress - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the trusted IP address to identify purpose of creating it. - - 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 - - - InMemory - - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - 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 - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. - IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Provide a description of the trusted IP address to identify purpose of creating it. - - 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 - - - Identity - - Unique identifier for the IP address to be created. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - InMemory - - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - 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 - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. If not provided, the value is set to 32. - IPv6 format IP address accepts maskbits from 0 to 128 inclusive. If not provided, the value is set to 128. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> New-CsTenantTrustedIPAddress -IPAddress "192.168.0.1" - - The command shown in Example 1 created the IP address '192.168.0.1' with no description. The IP address is in IPv4 format, and the maskbits is set to 32 by default. - - - - -------------------------- Example 2 -------------------------- - PS C:\> New-CsTenantTrustedIPAddress -IPAddress "192.168.2.0" -MaskBits "24" - - The command shown in Example 2 created the IP address '192.168.2.0' with no description. The IP address is in IPv4 format, and the maskbits is set to 24. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsTenantTrustedIPAddress -IPAddress "2001:4898:e8:25:844e:926f:85ad:dd8e" -Description "IPv6 IP address" - - The command shown in Example 3 created the IP address '2001:4898:e8:25:844e:926f:85ad:dd8e' with description. The IP address is in IPv6 format, and the maskbits is set to 128 by default. - IPv6 format IP address accepts maskbits from 0 to 128 inclusive. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenanttrustedipaddress - - - - - - New-CsUserCallingDelegate - New - CsUserCallingDelegate - - This cmdlet will add a new delegate for calling in Microsoft Teams. - - - - This cmdlet adds a new delegate with given permissions for the specified user. - - - - New-CsUserCallingDelegate - - Delegate - - The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. - A user can have up to 25 delegates. - - 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 add a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - MakeCalls - - Specifies whether delegate is allowed to make calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - ManageSettings - - Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. - - System.Boolean - - System.Boolean - - - False - - - ReceiveCalls - - Specifies whether delegate is allowed to receive calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - - - - Delegate - - The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. - A user can have up to 25 delegates. - - 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 add a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - MakeCalls - - Specifies whether delegate is allowed to make calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - ManageSettings - - Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. - - System.Boolean - - System.Boolean - - - False - - - ReceiveCalls - - Specifies whether delegate is allowed to receive calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. - The specified user need to have the Microsoft Phone System license assigned. - You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. - - - - - -------------------------- Example 1 -------------------------- - New-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $true -ReceiveCalls $true -ManageSettings $true - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate - - - Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings - - - Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate - - - Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate - - - - - - New-CsVideoInteropServiceProvider - New - CsVideoInteropServiceProvider - - 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. - 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. - - - - New-CsVideoInteropServiceProvider - - Identity - - This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled PexipServiceProviderEnabled BlueJeansServiceProviderEnabled - PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - - SwitchParameter - - - False - - - InMemory - - Create a provider object in memory without committing it to the service. - - - SwitchParameter - - - False - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - New-CsVideoInteropServiceProvider - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - - SwitchParameter - - - False - - - InMemory - - Create a provider object in memory without committing it to the service. - - - SwitchParameter - - - False - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Name - - This is mandatory parameter and can have only one of the 4 values - Polycom BlueJeans Pexip Cisco - - String - - String - - - DefaultProvider - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - This is mandatory parameter and can have only one of the 6 values PolycomServiceProviderEnabled PexipServiceProviderEnabled BlueJeansServiceProviderEnabled - PolycomServiceProviderDisabled PexipServiceProviderDisabled BlueJeansServiceProviderDisabled - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - InMemory - - Create a provider object in memory without committing it to the service. - - SwitchParameter - - SwitchParameter - - - False - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Name - - This is mandatory parameter and can have only one of the 4 values - Polycom BlueJeans Pexip Cisco - - String - - String - - - DefaultProvider - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - 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-CsVideoInteropServiceProvider - - {{ Add example description here }} - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csvideointeropserviceprovider - - - - - - New-CsVoiceNormalizationRule - New - CsVoiceNormalizationRule - - Creates a new voice normalization rule. - - - - 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. - - - - New-CsVoiceNormalizationRule - - 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 - - - Confirm - - > 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 - - - False - - - Description - - 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 - - - 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 - - Boolean - - Boolean - - - 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.) - - String - - String - - - None - - - 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 - - Int32 - - - 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 [+].) - - String - - String - - - 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. - - - SwitchParameter - - - False - - - - New-CsVoiceNormalizationRule - - Confirm - - > 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 - - - False - - - Description - - 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 - - - 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 - - Boolean - - Boolean - - - None - - - Name - - 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 - - String - - - 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.) - - String - - String - - - None - - - 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 - - Int32 - - - 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 [+].) - - String - - String - - - 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. - - - SwitchParameter - - - False - - - - - - Confirm - - > 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 - - SwitchParameter - - - False - - - Description - - 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 - - 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 - - - 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 - - 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 - - Boolean - - Boolean - - - None - - - Name - - 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 - - String - - - 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.) - - String - - String - - - None - - - 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 - - Int32 - - - 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 [+].) - - String - - String - - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Input types - - - None. - - - - - - - Output types - - - This cmdlet creates an object of type Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - New-CsVoiceNormalizationRule -Identity "site:Redmond/Prefix Redmond" - - This example creates a new voice normalization rule for site Redmond named Prefix Redmond. Because no other parameters are specified, the rule is created with the default values. Notice that the value passed to the Identity parameter is in double quotes; this is because the name of the rule (Prefix Redmond) contains a space. If the rule name does not contain a space you don't need to enclose the Identity in double quotes. - Keep in mind that a dial plan for the Redmond site must exist for this command to succeed. You can create a new dial plan by calling the `New-CsDialPlan` cmdlet. - - - - -------------------------- Example 2 -------------------------- - New-CsVoiceNormalizationRule -Parent SeattleUser -Name SeattleFourDigit -Description "Dialing with internal four-digit extension" -Pattern '^(\d{4})$' -Translation '+1206555$1' - - This example creates a new voice normalization rule named SeattleFourDigit that applies to the per-user dial plan with the Identity SeattleUser. (Note: Rather than specifying a Parent and a Name, we could have instead created this same rule by specifying -Identity SeattleUser/SeattleFourDigit.) We've included a Description explaining that this rule is for translating numbers dialed internally with only a 4-digit extension. In addition, Pattern and Translation values have been specified. These values translate a four-digit number (specified by the regular expression in the Pattern) to the same four-digit number, but prefixed by the Translation value (+1206555). For example, if the extension 1234 was entered, this rule would translate that extension to the number +12065551234. - Note the single quotes around the Pattern and Translation values. Single quotes are required for these values; double quotes (or no quotes) will not work in this instance. - As in Example 1, a dial plan with the given scope must exist. In this case, that means a dial plan with the Identity SeattleUser must already exist. - - - - -------------------------- Example 3 -------------------------- - $nr1=New-CsVoiceNormalizationRule -Identity dp1/nr1 -Description "Dialing with internal four-digit extension" -Pattern '^(\d{4})$' -Translation '+1206555$1' -InMemory -New-CsTenantDialPlan -Identity DP1 -NormalizationRules @{Add=$nr1} - - This example creates a new in-memory voice normalization rule and then adds it to a new tenant dial plan DP1 to be used for Microsoft Teams users. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule - - - Test-CsVoiceNormalizationRule - https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule - - - Get-CsDialPlan - https://learn.microsoft.com/powershell/module/skypeforbusiness/get-csdialplan - - - New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - - - - Register-CsOnlineDialInConferencingServiceNumber - Register - CsOnlineDialInConferencingServiceNumber - - 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. - - - - Register-CsOnlineDialInConferencingServiceNumber - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - Instance - - > Applicable: Microsoft Teams - PARAMVALUE: ConferencingServiceNumber - - ConferencingServiceNumber - - ConferencingServiceNumber - - - None - - - BridgeId - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - PARAMVALUE: Fqdn - - Fqdn - - Fqdn - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - - - - BridgeId - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - PARAMVALUE: Fqdn - - Fqdn - - Fqdn - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - 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 - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Register-CsOnlineDialinConferencingServiceNumber -Identity +1425555XXX -BridgeId fb91u3e9-5c2a-42c3-8yy5-ec02beexxx09 - - This command registers the telephone number +1425555XXX to your conference bridge. To find the bridge ID associated with your conference bridge you can use the command Get-CsOnlineDialInConferencingBridge. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/register-csonlinedialinconferencingservicenumber - - - - - - Remove-CsApplicationAccessPolicy - Remove - CsApplicationAccessPolicy - - Deletes an existing application access policy. - - - - This cmdlet deletes an existing application access policy. - - - - Remove-CsApplicationAccessPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - - - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - - - - - - - - - - ------------- Remove an application access policy ------------- - PS C:\> Remove-CsApplicationAccessPolicy -Identity "ASimplePolicy" - - The command shown above deletes the application access policy ASimplePolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csapplicationaccesspolicy - - - New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Set-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - - - - Remove-CsAutoAttendant - Remove - CsAutoAttendant - - Use the Remove-CsAutoAttendant cmdlet to delete an 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). - - - - Remove-CsAutoAttendant - - Identity - - > Applicable: Microsoft Teams - The identity for the AA to be removed. - - 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 AA to be removed. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - String - - - The Remove-CsAutoAttendant cmdlet accepts a string as the Identity parameter. - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" - - This example deletes the AA that has an identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant - - - New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant - - - Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant - - - - - - Remove-CsCallingLineIdentity - Remove - CsCallingLineIdentity - - Use the `Remove-CsCallingLineIdentity` cmdlet to remove a Caller ID policy from your organization. - - - - This cmdlet will remove a Caller ID policy from your organization or resets the Global policy instance to the default values. - - - - Remove-CsCallingLineIdentity - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - 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 - - - - - - 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 - - String - - - 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 -------------------------- - PS C:\> Remove-CsCallingLineIdentity -Identity Anonymous - - This example removes a Caller ID policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity - - - Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity - - - Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity - - - New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity - - - Set-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity - - - - - - Remove-CsCallQueue - Remove - CsCallQueue - - The Remove-CsCallQueue cmdlet deletes an existing Call Queue. - - - - The Remove-CsCallQueue cmdlet deletes an existing Call Queue specified by the Identity parameter. The removal will fail if there are any ApplicationInstances still associated with the Call Queue. - - - - Remove-CsCallQueue - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - - Represents the unique identifier of a Call Queue. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsCallQueue -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - This example removes the Call Queue with the identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01. If no Call Queue 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-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 - - - - - - - Remove-CsCustomPolicyPackage - Remove - CsCustomPolicyPackage - - This cmdlet deletes a custom policy package. - - - - This cmdlet deletes a custom policy package. All available package names can be found by running Get-CsPolicyPackage. - - - - Remove-CsCustomPolicyPackage - - Identity - - > Applicable: Microsoft Teams - The name of the custom package. - - String - - String - - - None - - - - - - Identity - - > 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 - - PSCredential - - 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 - - - - - - - - - - - - -------------------------- 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 - - 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/microsoftteams/remove-csgrouppolicyassignment - - - New-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csgrouppolicyassignment - - - Get-CsGroupPolicyAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csgrouppolicyassignment - - - - - - Remove-CsHybridTelephoneNumber - Remove - CsHybridTelephoneNumber - - This cmdlet removes a hybrid telephone number. - - - - 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-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 - - - InputObject - - {{ Fill InputObject Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-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 - - - 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 - - - - - - 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 - - {{ 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 - - - PassThru - - {{ Fill PassThru Description }} - - System.Management.Automation.SwitchParameter - - 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 - - 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 - - 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> Remove-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" - - This example removes a blocked number pattern identified as "BlockAutomatic". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern - - - New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern - - - Set-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern - - - Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern - - - - - - Remove-CsInboundExemptNumberPattern - Remove - CsInboundExemptNumberPattern - - Removes a number pattern exempt from call blocking. - - - - This cmdlet removes a specific exempt number pattern from the tenant list for call blocking. - - - - Remove-CsInboundExemptNumberPattern - - Identity - - Unique identifier for the exempt number pattern to be listed. - - 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 - - Unique identifier for the exempt number pattern to be listed. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - You can use Test-CsInboundBlockedNumberPattern to test your call block and exempt phone number ranges. - - - - - -------------------------- Example 1 -------------------------- - PS>Remove-CsInboundExemptNumberPattern -Identity "Exempt1" - - This removes the exempt number patterns with Identity Exempt1. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern - - - New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern - - - 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-CsMainlineAttendantAppointmentBookingFlow - Remove - CsMainlineAttendantAppointmentBookingFlow - - The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. - - - - The Remove-CsMainlineAttendantAppointmentBookingFlow cmdlet deletes an existing Mainline attendant appointment booking flow. - - - - Remove-CsMainlineAttendantAppointmentBookingFlow - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - - Represents the unique identifier of a Mainline attendant appointment booking flow. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsMainlineAttendantAppointmentBookingFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - 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/microsoftteams/remove-csmainlineattendantappointmentbookingflow - - - - - - Remove-CsMainlineAttendantQuestionAnswerFlow - Remove - CsMainlineAttendantQuestionAnswerFlow - - The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. - - - - The Remove-CsMainlineAttendantQuestionAnswerFlow cmdlet deletes an existing Mainline attendant question and answer flow. - - - - Remove-CsMainlineAttendantQuestionAnswerFlow - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - Tenant - - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - - - - Identity - - - Represents the unique identifier of a Mainline attendant question and answer flow. - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsMainlineAttendantQuestionAnswerFlow -Identity 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - 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/microsoftteams/remove-csmainlineattendantquestionanswerflow - - - - - - Remove-CsOnlineApplicationInstanceAssociation - Remove - CsOnlineApplicationInstanceAssociation - - Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application instance and the associated application configuration. - - - - Use the Remove-CsOnlineApplicationInstanceAssociation cmdlet to remove the association between an application instance and the associated application configuration. - This is useful when you want to associate this application instance with another application configuration for handling incoming calls. - - - - Remove-CsOnlineApplicationInstanceAssociation - - Identities - - > Applicable: Microsoft Teams - The identities for the application instances whose configuration associations are to be removed. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Identities - - > Applicable: Microsoft Teams - The identities for the application instances whose configuration associations are to be removed. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String[] - - - The Remove-CsOnlineApplicationInstanceAssociation cmdlet accepts a string array as the Identities parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.AssociationOperationOutput - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineApplicationInstanceAssociation -Identities "f7a821dc-2d69-5ae8-8525-bcb4a4556093" - - This example removes the configuration association for the application instance that has the identity of "f7a821dc-2d69-5ae8-8525-bcb4a4556093". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineapplicationinstanceassociation - - - Get-CsOnlineApplicationInstanceAssociation - 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-CsOnlineAudioConferencingRoutingPolicy - Remove - CsOnlineAudioConferencingRoutingPolicy - - This cmdlet deletes an instance of the Online Audio Conferencing Routing Policy. - - - - Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. - To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." - The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. - Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. - - - - Remove-CsOnlineAudioConferencingRoutingPolicy - - Identity - - The identity of the policy. - - 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 - - The identity of the policy. - - 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-CsOnlineAudioConferencingRoutingPolicy -Identity "Test" - - Deletes an Online Audio Conferencing Routing policy instance with the identity "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineaudioconferencingroutingpolicy - - - New-CsOnlineAudioConferencingRoutingPolicy - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - - - Set-CsOnlineAudioConferencingRoutingPolicy - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - - - - - - Remove-CsOnlineAudioFile - Remove - 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 - - 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 the specified emergency address or addresses. - - - - Remove-CsOnlineLisCivicAddress - - CivicAddressId - - > 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. - - Guid - - 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 - - - - - - CivicAddressId - - > 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. - - Guid - - 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 - - - - - - This cmdlet accepts pipelined input from the Get-CsOnlineLisCivicAddress cmdlet. - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- 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 - - This example removes all the emergency civic addresses in the city of Redmond. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress - - - Set-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress - - - New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress - - - Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress - - - - - - Remove-CsOnlineLisLocation - Remove - CsOnlineLisLocation - - 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. - - - - If the location specified for removal is assigned to users, the cmdlet will fail until the users assignments are removed. - - - - Remove-CsOnlineLisLocation - - 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 - - - LocationId - - > 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 - - 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 - - - LocationId - - > 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 - - 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 - - - - - - This cmdlet supports pipelined input from the Get-CsOnlineLisLocation cmdlet. - - - - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisLocation -LocationId 788dd820-c136-4255-9f61-24b880ad0763 - - This example removes the location specified by its identity. - - - - - - Online Version: - 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-CsOnlineLisPort - Remove - CsOnlineLisPort - - 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. - - - - 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-CsOnlineLisPort - - 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 - - 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. - - - 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 - - - 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 - - - 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 - - String - - - None - - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC - - 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/microsoftteams/remove-csonlinelisport - - - Set-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport - - - Get-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport - - - - - - Remove-CsOnlineLisSubnet - Remove - CsOnlineLisSubnet - - Removes a Location Information Server (LIS) subnet. - - - - 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-CsOnlineLisSubnet - - TenantId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Subnet - - > Applicable: Microsoft Teams - The IP address of the subnet. This value can be either IPv4 or IPv6 format. - - String - - 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. - - - 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 - - - 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 - - - False - - - - - - 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 - - > Applicable: Microsoft Teams - 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 - - String - - - None - - - TenantId - - > Applicable: Microsoft Teams - 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 - - SwitchParameter - - - False - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisSubnet -Subnet 10.10.10.10 - - 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/microsoftteams/remove-csonlinelissubnet - - - - - - Remove-CsOnlineLisSwitch - Remove - CsOnlineLisSwitch - - Removes a Location Information Server (LIS) network switch. - - - - 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-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 - - 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. - - - 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 - - - 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 - - - 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 - - String - - - None - - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisSwitch -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/microsoftteams/remove-csonlinelisswitch - - - Set-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch - - - Get-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch - - - - - - Remove-CsOnlineLisWirelessAccessPoint - Remove - CsOnlineLisWirelessAccessPoint - - Removes a Location Information Server (LIS) wireless access point (WAP). - - - - 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-CsOnlineLisWirelessAccessPoint - - 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 - - - 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 - - - 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 - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - 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 - - - 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 - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 - - Example 1 removes the Location Information Server (LIS) wireless access point with BSS ID "F0-6E-0B-C2-03-23". - - - - -------------------------- Example 2 -------------------------- - Remove-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* - - 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/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-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 - - > Applicable: Microsoft Teams - The parameter is mandatory for the cmdlet. The Identity is the same as the SBC FQDN. - - String - - String - - - None - - - - - - 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 - - > 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 - - - - - - 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 - - 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 - - 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 - - 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 - - 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 - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- 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/microsoftteams/remove-csonlinevoiceroutingpolicy - - - New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - - - 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-CsPhoneNumberAssignment - Remove - CsPhoneNumberAssignment - - This cmdlet will remove/unassign a phone number from a user or a resource account (online application instance). - - - - 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-CsPhoneNumberAssignment - - HttpPipelinePrepend - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - - None - - - 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 - - - PhoneNumber - - 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:". - - System.String - - System.String - - - None - - - 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 - - - Notify - - Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - - - 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 - - - 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 - - - RemoveAll - - Unassigns the phone number from the user or resource account. - - - System.Management.Automation.SwitchParameter - - - False - - - Notify - - Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - HttpPipelinePrepend - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - - None - - - 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 - - - PhoneNumber - - 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:". - - System.String - - System.String - - - None - - - 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 - - - RemoveAll - - Unassigns the phone number from the user or resource account. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Notify - - Sends a best-effort email notification when a phone number is removed. Failures to send email are not reported. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - 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 telephone number +1 (206) 555-1234 from the user user1@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Remove-CsPhoneNumberAssignment -Identity user2@contoso.com -RemoveAll - - This example removes/unassigns all the telephone number from user2@contoso.com. - - - - -------------------------- Example 3 -------------------------- - Remove-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan -Notify - - 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/microsoftteams/remove-csphonenumberassignment - - - Set-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/set-csphonenumberassignment - - - Get-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment - - - - - - Remove-CsPhoneNumberTag - Remove - CsPhoneNumberTag - - This cmdlet allows admin to remove a tag from phone number. - - - - 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-CsPhoneNumberTag - - PhoneNumber - - Indicates the phone number for the the tag to be removed from - - String - - String - - - None - - - Tag - - Indicates the tag to be removed. - - String - - String - - - None - - - - - - PhoneNumber - - Indicates the phone number for the the tag to be removed from - - String - - String - - - None - - - Tag - - Indicates the tag to be removed. - - String - - String - - - None - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsPhoneNumberTag -PhoneNumber +123456789 -Tag "HR" - - This example shows how to remove the tag "HR" from telephone number +123456789. - - - - - - 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 - - > Applicable: Microsoft Teams - The Id parameter is the unique identifier assigned to the Shared Call Queue History template. - - System.String - - System.String - - - None - - - - - - Id - - > Applicable: Microsoft Teams - The Id parameter is the unique identifier assigned to the Shared Call Queue History template. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.OAA.Models.AutoAttendant - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsSharedCallQueueHistoryTemplate -Id 5e3a575e-1faa-49ff-83c2-5cf1c36c0e01 - - 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/microsoftteams/Remove-CsSharedCallQueueHistoryTemplate - - - New-CsSharedCallQueueHistoryTemplate - - - - Set-CsSharedCallQueueHistoryTemplate - - - - Get-CsSharedCallQueueHistoryTemplate - - - - Get-CsCallQueue - - - - New-CsCallQueue - - - - Set-CsCallQueue - - - - Remove-CsCallQueue - - - - - - - Remove-CsTagsTemplate - Remove - CsTagsTemplate - - Deletes a Tag templates from the tenant. - - - - 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-CsTagsTemplate - - Id - - The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. - - String - - String - - - None - - - Tenant - - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - - - - Id - - The unique identifier for the Tag template. This can be retrieved using the Get-CsTagsTemplate (Get-CsTagsTemplate.md)cmdlet. - - String - - String - - - 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/remove-cstagstemplate - - - New-CsTagsTemplate - - - - Get-CsTagsTemplate - - - - Set-CsTagsTemplate - - - - New-CsTag - - - - - - - Remove-CsTeamsAudioConferencingPolicy - Remove - CsTeamsAudioConferencingPolicy - - 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. - - - - 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-CsTeamsAudioConferencingPolicy - - 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>"`. - - String - - String - - - 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. 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 - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - 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>"`. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - String - - - - - - - - - - Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Remove-CsTeamsAudioCOnferencingPolicy -Identity "Emea Users" - - 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/microsoftteams/remove-csteamsaudioconferencingpolicy - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - Set-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy - - - Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - - - - - - Remove-CsTeamsCallParkPolicy - Remove - 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 Remove-CsTeamsCallParkPolicy cmdlet lets delete a custom policy that has been configured in 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 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-CsTeamsCallParkPolicy - - Identity - - > 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. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - > Applicable: Microsoft Teams - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - > 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. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - > Applicable: Microsoft Teams - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Rtc.Management.Xds.XdsIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsCallParkPolicy -Identity SalesPolicy - - Deletes a custom policy that has already been created in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamscallparkpolicy - - - - - - Remove-CsTeamsCortanaPolicy - Remove - CsTeamsCortanaPolicy - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - - - - 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-CsTeamsCortanaPolicy - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - 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/microsoftteams/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 - - - 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 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 - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTeamsEmergencyCallRoutingPolicy -Identity Test - - This example removes Teams Emergency Call Routing policy with identity Test. - - - - -------------------------- Example 2 -------------------------- - Remove-CsTeamsEmergencyCallRoutingPolicy -Identity Global - - This example resets the Teams Emergency Call Routing Global policy instance to its default values. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy - - - Set-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy - - - - - - Remove-CsTeamsEnhancedEncryptionPolicy - Remove - CsTeamsEnhancedEncryptionPolicy - - Use this cmdlet to remove an existing Teams enhanced encryption policy. - - - - Use this cmdlet to remove an existing Teams enhanced encryption policy. - The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for End-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. - - - - Remove-CsTeamsEnhancedEncryptionPolicy - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses all non-fatal errors. - - - 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 - - - Force - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier assigned to the Teams enhanced encryption policy. - - XdsIdentity - - XdsIdentity - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Object - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Remove-CsTeamsEnhancedEncryptionPolicy -Identity 'ContosoPartnerTeamsEnhancedEncryptionPolicy' - - The command shown in Example 1 deletes the Teams enhanced encryption policy ContosoPartnerTeamsEnhancedEncryptionPolicy. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Get-CsTeamsEnhancedEncryptionPolicy -Filter 'Tag:*' | Remove-CsTeamsEnhancedEncryptionPolicy - - In Example 2, all the Teams enhanced encryption policies configured at the per-user scope are removed. The Filter value "Tag:*" limits the returned data to Teams enhanced encryption policies configured at the per-user scope. Those per-user policies are then removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy - - - Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy - - - New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy - - - Set-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy - - - Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy - - - - - - Remove-CsTeamsEventsPolicy - Remove - CsTeamsEventsPolicy - - The CsTeamsEventsPolicy cmdlets removes a previously created TeamsEventsPolicy. Note that this policy is currently still in preview. - - - - Deletes a previously created TeamsEventsPolicy. 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-CsTeamsEventsPolicy - - Identity - - Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. - - 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 - - Unique identifier for the teams events policy to be removed. To remove the global policy, use this syntax: -Identity Global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy DisablePublicWebinars, use this syntax: -Identity DisablePublicWebinars. - - 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-CsTeamsEventsPolicy -Identity DisablePublicWebinars - - In this example, the command will delete the DisablePublicWebinars policy from the organization's list of policies. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamseventspolicy - - - - - - Remove-CsTeamsIPPhonePolicy - Remove - CsTeamsIPPhonePolicy - - Use the Remove-CsTeamsIPPhonePolicy cmdlet to remove a custom policy that's been created for controlling Teams phone experiences. - - - - Use the Remove-CsTeamsIPPhonePolicy cmdlet to remove a custom policy that's been created for controlling Teams IP Phones experiences. - Note: Ensure the policy is not assigned to any users or the policy deletion will fail. - - - - Remove-CsTeamsIPPhonePolicy - - Identity - - Specify the name of the TeamsIPPhonePolicy that you would like to remove. - - XdsIdentity - - XdsIdentity - - - 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 and suppresses the display of any non-fatal error message that might arise when running the command. - - - SwitchParameter - - - False - - - Tenant - - Internal Microsoft use only. - - Guid - - Guid - - - 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 - - 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 - - Specify the name of the TeamsIPPhonePolicy that you would like to remove. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - Internal Microsoft use only. - - Guid - - 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-CsTeamsIPPhonePolicy -Identity CommonAreaPhone - - This example shows the deletion of the policy CommonAreaPhone. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsipphonepolicy - - - - - - Remove-CsTeamsMeetingBroadcastPolicy - Remove - CsTeamsMeetingBroadcastPolicy - - 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. - - - - Remove-CsTeamsMeetingBroadcastPolicy - - Identity - - Unique identifier for the policy to be removed. Policies can be configured at the global 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 policy properties will be reset to their default values.) - To remove a per-user policy, use syntax similar to this: -Identity SalesPolicy. - Wildcards are not allowed when specifying an Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppress all non-fatal errors when running this command. - - - SwitchParameter - - - False - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - 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 - - Suppress all non-fatal errors when running this command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the policy to be removed. Policies can be configured at the global 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 policy properties will be reset to their default values.) - To remove a per-user policy, use syntax similar to this: -Identity SalesPolicy. - Wildcards are not allowed when specifying an Identity. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - Not applicable to online service. - - Guid - - 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 - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmeetingbroadcastpolicy - - - - - - Remove-CsTeamsMobilityPolicy - Remove - CsTeamsMobilityPolicy - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - - - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - The Remove-CsTeamsMobilityPolicy cmdlet lets an Admin delete a custom teams mobility policy that has been created. - - - - Remove-CsTeamsMobilityPolicy - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses all non-fatal errors. - - - 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 - - - Force - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - 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. - - XdsIdentity - - XdsIdentity - - - 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-CsTeamsMobilityPolicy -Identity SalesPolicy - - Deletes a custom policy that has already been created in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsmobilitypolicy - - - - - - Remove-CsTeamsNetworkRoamingPolicy - Remove - CsTeamsNetworkRoamingPolicy - - Remove-CsTeamsNetworkRoamingPolicy allows IT Admins to delete policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. - - - - Deletes the Teams Network Roaming Policies configured for use in your organization. - The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. - More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). - - - - Remove-CsTeamsNetworkRoamingPolicy - - Identity - - Unique identifier of the policy to be removed. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - Identity - - Unique identifier of the policy to be removed. - - XdsIdentity - - XdsIdentity - - - None - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsNetworkRoamingPolicy -Identity OfficePolicy - - In Example 1, Remove-CsTeamsNetworkRoamingPolicy is used to delete the network roaming policy that has an Identity OfficePolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsnetworkroamingpolicy - - - - - - Remove-CsTeamsRoomVideoTeleConferencingPolicy - Remove - CsTeamsRoomVideoTeleConferencingPolicy - - Deletes an existing TeamsRoomVideoTeleConferencingPolicy. - - - - The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). - - - - Remove-CsTeamsRoomVideoTeleConferencingPolicy - - Identity - - Unique identifier for the policy to be modified. - - 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 for the policy to be modified. - - 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 - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsroomvideoteleconferencingpolicy - - - - - - Remove-CsTeamsShiftsConnection - Remove - CsTeamsShiftsConnection - - This cmdlet deletes a Shifts connection. - - - - This cmdlet deletes a connection. All available connections can be found by running Get-CsTeamsShiftsConnection (https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection). - - - - Remove-CsTeamsShiftsConnection - - ConnectionId - - > Applicable: Microsoft Teams - The ID of the connection that you want to delete. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - - - - ConnectionId - - > Applicable: Microsoft Teams - The ID of the connection that you want to delete. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsShiftsConnection -ConnectionId 43cd0e23-b62d-44e8-9321-61cb5fcfae85 - - Deletes the connection with ID `43cd0e23-b62d-44e8-9321-61cb5fcfae85`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection - - - - - - Remove-CsTeamsShiftsConnectionInstance - Remove - CsTeamsShiftsConnectionInstance - - This cmdlet deletes a Shifts connection instance. - - - - 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). - - - - Remove-CsTeamsShiftsConnectionInstance - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - - - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b - - Deletes the connection instance with ID `WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b`. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - - - - Remove-CsTeamsShiftsConnectionTeamMap - Remove - CsTeamsShiftsConnectionTeamMap - - This cmdlet removes the mapping between the Microsoft Teams team and workforce management (WFM) team. - - - - 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). - - - - Remove-CsTeamsShiftsConnectionTeamMap - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - - SwitchParameter - - - False - - - TeamId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - - - - ConnectorInstanceId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - InputObject - - The identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Enables you to pass a user object through the pipeline that represents the user being assigned the policy. - - SwitchParameter - - SwitchParameter - - - False - - - TeamId - - > Applicable: Microsoft Teams - The ID of the connection instance that you want to delete. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsShiftsConnectionTeamMap -ConnectorInstanceId "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b" -TeamId "30b625bd-f0f7-4d5c-8793-9ccef5a63119" - - Unmaps the Teams team with ID "30b625bd-f0f7-4d5c-8793-9ccef5a63119" in the instance with ID "WCI-4c231dd2-4451-45bd-8eea-bd68b40bab8b". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectionteammap - - - Get-CsTeamsShiftsConnectionTeamMap - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectionteammap - - - New-CsTeamsShiftsConnectionBatchTeamMap - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectionbatchteammap - - - - - - Remove-CsTeamsShiftsScheduleRecord - Remove - CsTeamsShiftsScheduleRecord - - This cmdlet enqueues the clear schedule message. - - - - This cmdlet sends a request of removing Shifts schedule with specified time range. - - - - Remove-CsTeamsShiftsScheduleRecord - - Body - - The request body. - - IClearScheduleRequest - - IClearScheduleRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - ClearSchedulingGroup - - > Applicable: Microsoft Teams - A value indicating whether to clear schedule group. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DateRangeEndDate - - > Applicable: Microsoft Teams - The end date of removing schedule record. - - String - - String - - - None - - - DateRangeStartDate - - > Applicable: Microsoft Teams - The start date of removing schedule record. - - 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 - - Used to return an object that represents the item being modified. - - - SwitchParameter - - - False - - - 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 - - - - Remove-CsTeamsShiftsScheduleRecord - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - ClearSchedulingGroup - - > Applicable: Microsoft Teams - A value indicating whether to clear schedule group. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DateRangeEndDate - - > Applicable: Microsoft Teams - The end date of removing schedule record. - - String - - String - - - None - - - DateRangeStartDate - - > Applicable: Microsoft Teams - The start date of removing schedule record. - - String - - String - - - None - - - DesignatedActorId - - > Applicable: Microsoft Teams - The user ID of designated actor. - - String - - String - - - None - - - EntityType - - > Applicable: Microsoft Teams - The entity types. - - 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 - - Used to return an object that represents the item being modified. - - - SwitchParameter - - - False - - - 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 - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - SwitchParameter - - - 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 - - String - - - None - - - DateRangeStartDate - - > Applicable: Microsoft Teams - The start date of removing schedule record. - - String - - String - - - None - - - DesignatedActorId - - > Applicable: Microsoft Teams - The user ID of designated actor. - - String - - String - - - None - - - EntityType - - > Applicable: Microsoft Teams - The entity types. - - 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 - - Used to return an object that represents the item being modified. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - SwitchParameter - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - The parameters of start time, end time and designated actor ID are optional only when removing the schedule record of a linked team. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTeamsShiftsScheduleRecord -TeamId "eddc3b94-21d5-4ef0-a76a-2e4d632e50be" -DateRangeStartDate "2021-09-30T00:00:00" -DateRangeEndDate "2021-10-01T00:00:00" -ClearSchedulingGroup:$false -EntityType "swapRequest", "openShiftRequest" -DesignatedActorId "683af6f2-4f72-4770-b8e1-4ec31836156ad" - - Removes the Shifts schedule record of swapRequest and openShiftRequest scenarios in the team with ID `eddc3b94-21d5-4ef0-a76a-2e4d632e50be` from 09/30/2021 to 10/01/2021. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsschedulerecord - - - - - - Remove-CsTeamsSurvivableBranchAppliance - Remove - CsTeamsSurvivableBranchAppliance - - 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 - - Identity - - The Identity parameter is the unique identifier for the SBA. - - 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 - - The Identity parameter is the unique identifier for the SBA. - - 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 - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliance - - - - - - Remove-CsTeamsSurvivableBranchAppliancePolicy - Remove - CsTeamsSurvivableBranchAppliancePolicy - - 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 - - Identity - - Policy instance name. - - 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 - - Policy instance name. - - 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 - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamssurvivablebranchappliancepolicy - - - - - - Remove-CsTeamsTargetingPolicy - Remove - CsTeamsTargetingPolicy - - The CsTeamsTargetingPolicy cmdlets removes a previously created CsTeamsTargetingPolicy. - - - - Deletes a previously created TeamsTargetingPolicy. Any users with no explicitly assigned policies will then fall back to the default policy in the organization. - - - - Remove-CsTeamsTargetingPolicy - - Identity - - Unique identifier for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentTagPolicy. - - 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 for the teams meeting policy to be removed. To remove the global policy, use this syntax: -Identity global. (Note that the global policy cannot actually be removed. Instead, all the policy properties will be reset to their default values.) To remove a custom policy, use this syntax: -Identity StudentTagPolicy. - - 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-CsTeamsMeetingPolicy -Identity StudentTagPolicy - - In the example shown above, the command will delete the student tag policy from the organization's list of policies and remove all assignments of this policy from users who have had the policy assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy - - - Get-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy - - - Set-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy - - - - - - Remove-CsTeamsTranslationRule - Remove - CsTeamsTranslationRule - - Cmdlet to remove an existing number manipulation rule (or list of rules). - - - - You can use this cmdlet to remove an existing number manipulation rule (or list of rules). The rule can be used, for example, in the settings of your SBC (Set-CsOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System. - - - - Remove-CsTeamsTranslationRule - - Identity - - Identifier of the rule. This parameter is required. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Identifier of the rule. This parameter is required. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTeamsTranslationRule -Identity AddPlus1 - - This example removes the "AddPlus1" translation rule. As the rule can be used in some places, integrity check is preformed to ensure that the rule is not in use. If the rule is in use an error thrown with specifying which SBC use this rule. - - - - -------------------------- Example 2 -------------------------- - Get-CsTeamsTranslationRule -Filter 'tst*' | Remove-CsTeamsTranslationRule - - This example removes all translation rules with Identifier starting with tst. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule - - - New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule - - - Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule - - - Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule - - - Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule - - - - - - Remove-CsTeamsUnassignedNumberTreatment - Remove - CsTeamsUnassignedNumberTreatment - - Removes a treatment for how calls to an unassigned number range should be routed. - - - - This cmdlet removes a treatment for how calls to an unassigned number range should be routed. - - - - Remove-CsTeamsUnassignedNumberTreatment - - Identity - - The Id of the specific treatment to remove. - - System.String - - System.String - - - None - - - - - - Identity - - The Id of the specific treatment to remove. - - System.String - - System.String - - - None - - - - - - System.Object - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 2.5.1 or later. - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTeamsUnassignedNumberTreatment -Identity MainAA - - This example removes the treatment MainAA. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment - - - Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment - - - New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment - - - Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment - - - Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment - - - - - - Remove-CsTeamsWorkLoadPolicy - Remove - CsTeamsWorkLoadPolicy - - This cmdlet deletes a Teams Workload Policy instance. - - - - The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. - - - - Remove-CsTeamsWorkLoadPolicy - - Identity - - Identity of the Teams Workload Policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For Microsoft 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 - - Identity of the Teams Workload Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Microsoft 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-CsTeamsWorkLoadPolicy -Identity "Test" - - Deletes a Teams Workload policy instance with the identity of "Test". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy - - - Set-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy - - - Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy - - - New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy - - - Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy - - - - - - Remove-CsTeamTemplate - Remove - CsTeamTemplate - - 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 - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - 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 - - 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. - - - System.Management.Automation.SwitchParameter - - - False - - - - Remove-CsTeamTemplate - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - OdataId - - A composite URI of a template. - - System.String - - System.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. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.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 - - - 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 - - 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 - - SwitchParameter - - - False - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject - - - - - - - - - ALIASES - COMPLEX PARAMETER PROPERTIES - To 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 <IConfigApiBasedCmdletsIdentity>: Identity Parameter - - `[Bssid <String>]`: - - `[ChassisId <String>]`: - - `[CivicAddressId <String>]`: Civic address id. - - `[Country <String>]`: - - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. - - `[Id <String>]`: - - `[Identity <String>]`: - - `[Locale <String>]`: - - `[LocationId <String>]`: Location id. - - `[OdataId <String>]`: A composite URI of a template. - - `[OperationId <String>]`: The ID of a batch policy assignment operation. - - `[OrderId <String>]`: - - `[PackageName <String>]`: The name of a specific policy package - - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. - - `[Port <String>]`: - - `[PortInOrderId <String>]`: - - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. - - `[SubnetId <String>]`: - - `[TenantId <String>]`: - - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Remove-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/b24f8ba6-0949-452e-ad4b-a353f38ed8af/Tenant/en-US' - - Removes template with OData Id '/api/teamtemplates/v1.0/b24f8ba6-0949-452e-ad4b-a353f38ed8af/Tenant/en-US'. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> (Get-CsTeamTemplateList -PublicTemplateLocale en-US) | where Name -like 'test' | ForEach-Object {Remove-CsTeamTemplate -OdataId $_.OdataId} - - Removes template that meets the following specifications: 1) Locale set to en-US. 2) Name contains 'test'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate - - - Get-CsTeamTemplateList - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplatelist - - - Get-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamtemplate - - - New-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamtemplate - - - Update-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate - - - Remove-CsTeamTemplate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamtemplate - - - - - - Remove-CsTenantDialPlan - Remove - CsTenantDialPlan - - Use the `Remove-CsTenantDialPlan` cmdlet to remove a tenant dial plan. - - - - The `Remove-CsTenantDialPlan` cmdlet removes an existing tenant dial plan (also known as a location profile). Tenant dial plans provide required information to allow Enterprise Voice users to 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. - Removing a tenant dial plan also removes any associated normalization rules. If no tenant dial plan is assigned to an organization, the Global dial plan is used. - - - - Remove-CsTenantDialPlan - - Identity - - > Applicable: Microsoft Teams - 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 - - - False - - - WhatIf - - > Applicable: Microsoft Teams - The WhatIf parameter describes what would happen if you executed the command, without actually executing the command. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - The Confirm parameter prompts you for confirmation before the command is executed. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - - - - - The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. - - - - - -------------------------- Example 1 -------------------------- - Remove-CsTenantDialPlan -Identity Vt1TenantDialPlan2 - - This example removes the Vt1TenantDialPlan2. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan - - - Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan - - - New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Set-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - - - - Remove-CsTenantNetworkRegion - Remove - CsTenantNetworkRegion - - Use the `Remove-CsTenantNetworkRegion` cmdlet to remove a tenant network region. - - - - The `Remove-CsTenantNetworkRegion` cmdlet removes an existing tenant network region. - A network region contains a collection of network sites. - - - - Remove-CsTenantNetworkRegion - - Identity - - Unique identifier for the network region 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the network region to be removed. - - 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-CsTenantNetworkRegion -Identity "RedmondRegion" - - The command shown in Example 1 removes 'RedmondRegion'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion - - - New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion - - - Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion - - - Set-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion - - - - - - Remove-CsTenantNetworkSite - Remove - CsTenantNetworkSite - - Use the `Remove-CsTenantNetworkSite` cmdlet to remove a tenant network site. - - - - The `Remove-CsTenantNetworkSite` cmdlet removes an existing tenant 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. Network sites are defined as a collection of IP subnets. - - - - Remove-CsTenantNetworkSite - - Identity - - Unique identifier for the network site 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the network site to be removed. - - 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-CsTenantNetworkSite -Identity "site1" - - The command shown in Example 1 removes 'site1'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite - - - New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite - - - Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - Set-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite - - - - - - Remove-CsTenantNetworkSubnet - Remove - CsTenantNetworkSubnet - - Use the `Remove-CsTenantNetworkSubnet` cmdlet to remove a tenant network subnet. - - - - The `Remove-CsTenantNetworkSubnet` cmdlet removes an existing tenant 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. - - - - Remove-CsTenantNetworkSubnet - - Identity - - Unique identifier for the network subnet 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the network subnet to be removed. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTenantNetworkSubnet -Identity "192.168.0.1" - - The command shown in Example 1 removes '192.168.0.1'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet - - - New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet - - - Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet - - - Set-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet - - - - - - Remove-CsTenantTrustedIPAddress - Remove - CsTenantTrustedIPAddress - - Use the `Remove-CsTenantTrustedIPAddress` cmdlet to remove a tenant trusted IP address. - - - - The `Remove-CsTenantTrustedIPAddress` cmdlet removes an existing tenant trusted 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. - - - - Remove-CsTenantTrustedIPAddress - - Identity - - Unique identifier for the trusted IP address to be removed. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 trusted IP address are being removed. 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 - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - Unique identifier for the trusted IP address to be removed. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose trusted IP address are being removed. 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.XdsGlobalRelativeIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Remove-CsTenantTrustedIPAddress -Identity "192.168.0.1" - - The command shown in Example 1 removes '192.168.0.1'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenanttrustedipaddress - - - - - - Remove-CsUserCallingDelegate - Remove - CsUserCallingDelegate - - This cmdlet will remove a delegate for calling in Microsoft Teams. - - - - This cmdlet will remove a delegate for the specified user. - - - - Remove-CsUserCallingDelegate - - Delegate - - The Identity of the delegate to remove. Can be specified using the ObjectId or the SIP address. - - 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 remove a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - - - - Delegate - - The Identity of the delegate to remove. Can be specified using the ObjectId or the SIP address. - - 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 remove a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. - The specified user need to have the Microsoft Phone System license assigned. - You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. - - - - - -------------------------- Example 1 -------------------------- - Remove-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com - - This example shows removing the delegate user2@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate - - - Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings - - - New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate - - - Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate - - - - - - Remove-CsUserLicenseGracePeriod - Remove - CsUserLicenseGracePeriod - - The `CsUserLicenseGracePeriod` cmdlet expedites the delicensing operation for the assigned plan(s) of a user/resource account by removing the grace period, permanently deleting the assigned plan(s). Note that this cmdlet is to be used only by tenants with license resiliency enabled. (License resiliency is currently under private preview and not available for everyone.) - - - - The command removes the grace period of the assigned plan(s) against the specified user(s)/resource account(s), permanently deleting the plan(s). Permanently deletes all/specified plans belonging to the user, which has a grace period assosciated with it. Assigned plans with no subsequent grace period will see no change. - If you want to verify the grace period of any assigned plan against a user, you can return that information by using this command: - `Get-CsOnlineUser -Identity bf19b7db-6960-41e5-a139-2aa373474354` - - - - Remove-CsUserLicenseGracePeriod - - Identity - - Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. - - String - - String - - - None - - - Action - - Used to specify which action should be taken. - - String - - String - - - None - - - Body - - Specifies the body of the request. - - IUserDelicensingAccelerationPatch - - IUserDelicensingAccelerationPatch - - - None - - - Capability - - 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 - - - False - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Returns the results of the command. By default, this cmdlet does not generate any output. - - - SwitchParameter - - - False - - - - - - Action - - Used to specify which action should be taken. - - String - - String - - - None - - - Body - - Specifies the body of the request. - - IUserDelicensingAccelerationPatch - - IUserDelicensingAccelerationPatch - - - None - - - Capability - - 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 - - SwitchParameter - - - False - - - Identity - - Specifies the Identity (GUID) of the user account whose assigned plan grace period needs to be removed, permanently deleting the subsequent plan. - - String - - String - - - None - - - InputObject - - The Identity parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - PassThru - - Returns the results of the command. By default, this cmdlet does not generate any output. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Remove-CsUserLicenseGracePeriod -Identity bf19b7db-6960-41e5-a139-2aa373474354 - - In Example 1, the command removes the grace period of all assigned plan(s) against the specified user ID, marking the subsequent assigned plan(s) as deleted. Assigned plans with no subsequent grace period will see no change. - - - - -------------------------- Example 2 -------------------------- - Remove-CsUserLicenseGracePeriod -Identity bf19b7db-6960-41e5-a139-2aa373474354 -Capability 'MCOEV,MCOMEETADD' - - In Example 2, the capability specified refers to plans assigned to the user(s) under AssignedPlans. The command removes the grace period of the specified assigned plans, marking the subsequent plan(s) as deleted. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/skype/remove-csuserlicensegraceperiod - - - Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser - - - - - - Remove-CsVideoInteropServiceProvider - Remove - CsVideoInteropServiceProvider - - 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. - The only input is Identity - the provider you wish to remove. - - - - Remove-CsVideoInteropServiceProvider - - Identity - - Specify the VideoInteropServiceProvider to be removed. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - - - - Identity - - Specify the VideoInteropServiceProvider to be removed. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - - - - Microsoft.Rtc.Management.Xds.XdsGlobalRelativeIdentity - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csvideointeropserviceprovider - - - - - - Set-CsApplicationAccessPolicy - Set - CsApplicationAccessPolicy - - Modifies an existing application access policy. - - - - This cmdlet modifies an existing application access policy. - - - - Set-CsApplicationAccessPolicy - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - None - - - AppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Free format text. - - 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 - - - False - - - - - - AppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Free format text. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. - - XdsIdentity - - XdsIdentity - - - 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 - - - - - - - - - - - - ----------------- Add new app ID to the policy ----------------- - PS C:\> Set-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds @{Add="5817674c-81d9-4adb-bfb2-8f6a442e4622"} - - The command shown above adds a new app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" to the per-user application access policy ASimplePolicy. - - - - ---------------- Remove app IDs from the policy ---------------- - PS C:\> Set-CsApplicationAccessPolicy -Identity "ASimplePolicy" -AppIds @{Remove="5817674c-81d9-4adb-bfb2-8f6a442e4622"} - - The command shown above removes the app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" from the per-user application access policy ASimplePolicy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csapplicationaccesspolicy - - - New-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Grant-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Get-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - Remove-CsApplicationAccessPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csapplicationaccesspolicy - - - - - - Set-CsApplicationMeetingConfiguration - Set - CsApplicationMeetingConfiguration - - Modifies an existing application meeting configuration for the tenant. - - - - This cmdlet modifies an existing application meeting configuration for the tenant. - - - - Set-CsApplicationMeetingConfiguration - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - AllowRemoveParticipantAppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Confirm - - > Applicable: Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - False - - - Force - - > Applicable: Teams - Suppresses the display of any non-fatal error message that might occur when running the command. - - - SwitchParameter - - - False - - - Instance - - > Applicable: Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - WhatIf - - > Applicable: Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - AllowRemoveParticipantAppIds - - 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). - - PSListModifier - - PSListModifier - - - None - - - Confirm - - > Applicable: Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - > Applicable: Teams - Suppresses the display of any non-fatal error message that might occur when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - 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. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - > Applicable: Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - WhatIf - - > Applicable: Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Input types - - - None. The `Set-CsApplicationMeetingConfiguration` cmdlet does not accept pipelined input. - - - - - - - Output types - - - The `Set-CsApplicationMeetingConfiguration` cmdlet does not return any objects or values. - - - - - - - - - - - Add new app ID to the configuration to allow remove participant for the tenant - PS C:\> Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Add="5817674c-81d9-4adb-bfb2-8f6a442e4622"} - - The command shown above adds a new app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" to the application meeting configuration settings for the tenant to allow it to remove participant. - - - - Remove app IDs from the configuration to allow remove participant for the tenant - PS C:\> Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Remove="5817674c-81d9-4adb-bfb2-8f6a442e4622"} - - The command shown above removes the app ID "5817674c-81d9-4adb-bfb2-8f6a442e4622" from the application meeting configuration settings for the tenant to disallow it to remove participant. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-CsApplicationMeetingConfiguration - - - Get-CsApplicationMeetingConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-csapplicationmeetingconfiguration - - - - - - Set-CsAutoAttendant - Set - CsAutoAttendant - - Use the Set-CsAutoAttendant cmdlet to modify the properties of an existing Auto Attendant (AA). - - - - The Set-CsAutoAttendant cmdlet lets you modify the properties of an auto attendant. For example, you can change the operator, the greeting, or the menu prompts. - - - - Set-CsAutoAttendant - - 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - 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. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant - - - The Set-CsAutoAttendant cmdlet accepts a `Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant` object as the Instance parameter. - - - - - - - Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant - - - The modified instance of the `Microsoft.Rtc.Management.Hosted.OAA.Models.AutoAttendant` object. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" - -$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." -$christmasMenuOption = New-CsAutoAttendantMenuOption -Action DisconnectCall -DtmfResponse Automatic -$christmasMenu = New-CsAutoAttendantMenu -Name "Christmas Menu" -MenuOptions @($christmasMenuOption) -$christmasCallFlow = New-CsAutoAttendantCallFlow -Name "Christmas" -Greetings @($christmasGreetingPrompt) -Menu $christmasMenu - -$dtr = New-CsOnlineDateTimeRange -Start "24/12/2017" -End "26/12/2017" -$christmasSchedule = New-CsOnlineSchedule -Name "Christmas" -FixedSchedule -DateTimeRanges @($dtr) - -$christmasCallHandlingAssociation = New-CsAutoAttendantCallHandlingAssociation -Type Holiday -ScheduleId $christmasSchedule.Id -CallFlowId $christmasCallFlow.Id - -$autoAttendant.CallFlows += @($christmasCallFlow) -$autoAttendant.CallHandlingAssociations += @($christmasCallHandlingAssociation) - -Set-CsAutoAttendant -Instance $autoAttendant - - This example adds a Christmas holiday to an AA that has an Identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. - - - - -------------------------- Example 2 -------------------------- - $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" - -$autoAttendant.CallFlows - -# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1 -# Name : After hours -# Greetings : -# Menu : After Hours Menu - -# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f -# Name : Christmas CallFlow -# Greetings : -# Menu : Christmas Menu - -$autoAttendant.CallFlows[1].Greetings - -# ActiveType : TextToSpeech -# TextToSpeechPrompt : We are closed for Christmas. Please call back later. -# AudioFilePrompt : - -$christmasGreetingPrompt = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Our offices are closed for Christmas from December 24 to December 26. Please call back later." -$autoAttendant.CallFlows[1].Greetings = @($christmasGreetingPrompt) - -Set-CsAutoAttendant -Instance $autoAttendant - - This example modifies the Christmas holiday greeting for the AA that has an Identity of fa9081d6-b4f3-5c96-baec-0b00077709e5. - - - - -------------------------- Example 3 -------------------------- - $autoAttendant = Get-CsAutoAttendant -Identity "fa9081d6-b4f3-5c96-baec-0b00077709e5" -$autoAttendant.CallHandlingAssociations - -# Type : Holiday -# ScheduleId : 578745b2-1f94-4a38-844c-6bf6996463ee -# CallFlowId : a661e694-e2df-4aaa-a183-67bf819c3cac -# Enabled : True - -# Type : AfterHours -# ScheduleId : c2f160ca-119d-55d8-818c-def2bcb85515 -# CallFlowId : e7dd255b-ee20-57f0-8a2b-fc403321e284 -# Enabled : True - -$autoAttendant.CallHandlingAssociations = $autoAttendant.CallHandlingAssociations | where-object {$_.ScheduleId -ne "578745b2-1f94-4a38-844c-6bf6996463ee"} - -$autoAttendant.CallFlows - -# Id : e68dfc2f-587b-42ee-98c7-b9c9ebd46fd1 -# Name : After hours -# Greetings : -# Menu : After Hours Menu - -# Id : 8ab460f0-770c-4d30-a2ff-a6469718844f -# Name : Christmas CallFlow -# Greetings : -# Menu : Christmas Menu - -$autoAttendant.CallFlows = $autoAttendant.CallFlows | where-object {$_.Id -ne "8ab460f0-770c-4d30-a2ff-a6469718844f"} - -Set-CsAutoAttendant -Instance $autoAttendant - - This example modifies an existing AA, removing the Christmas holiday call handling. We removed the call handling association for Christmas holiday, along with the related call flow. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant - - - New-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/new-csautoattendant - - - Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus - - - Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant - - - Update-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant - - - - - - Set-CsCallingLineIdentity - Set - CsCallingLineIdentity - - Use the `Set-CsCallingLineIdentity` cmdlet to modify a Caller ID policy in your organization. - - - - You can either change or block the Caller ID (also called a Calling Line ID) for a user. By default, the Microsoft Teams or Skype for Business Online user's phone number can be seen when that user makes a call to a PSTN phone, or when a call comes in. You can modify a Caller ID policy to provide an alternate displayed number, or to block any number from being displayed. - Note: - Identity must be unique. - - If CallerIdSubstitute is given as "Resource", then ResourceAccount cannot be empty. - - - - Set-CsCallingLineIdentity - - Identity - - > Applicable: Microsoft Teams - 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 Teams user, then Caller ID for incoming calls is suppressed/anonymous. - - Boolean - - Boolean - - - None - - - CallingIDSubstitute - - > Applicable: Microsoft Teams - The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. - - CallingIDSubstituteType - - CallingIDSubstituteType - - - None - - - CompanyName - - > Applicable: Microsoft Teams - This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. - - String - - String - - - 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 - - String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - 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 - - 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 - - - - - - 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. - - Boolean - - Boolean - - - None - - - CallingIDSubstitute - - > Applicable: Microsoft Teams - The CallingIDSubstitute parameter lets you specify an alternate Caller ID. The possible values are Anonymous, LineUri and Resource. - - CallingIDSubstituteType - - CallingIDSubstituteType - - - None - - - CompanyName - - > Applicable: Microsoft Teams - This parameter sets the Calling party name (typically referred to as CNAM) on the outgoing PSTN call. - - String - - String - - - 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 - - String - - - None - - - 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. - - Boolean - - Boolean - - - False - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter identifies the Caller ID policy. - - String - - String - - - None - - - 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 - - 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 -------------------------- - PS C:\> Set-CsCallingLineIdentity -Identity "MyBlockingPolicy" -BlockIncomingPstnCallerID $true - - This example blocks the incoming caller ID. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsCallingLineIdentity -Identity Anonymous -Description "anonymous policy" -CallingIDSubstitute Anonymous -EnableUserOverride $false -BlockIncomingPstnCallerID $true - - This example modifies the new Anonymous Caller ID policy to block the incoming Caller ID. - - - - -------------------------- Example 3 -------------------------- - $ObjId = (Get-CsOnlineApplicationInstance -Identity dkcq@contoso.com).ObjectId -Set-CsCallingLineIdentity -Identity DKCQ -CallingIDSubstitute Resource -ResourceAccount $ObjId -CompanyName "Contoso" - - This example modifies the Caller ID policy that sets the Caller ID to the phone number of the specified resource account and sets the Calling party name to Contoso - - - - -------------------------- Example 4 -------------------------- - Set-CsCallingLineIdentity -Identity AllowAnonymousForUsers -EnableUserOverride $true - - This example modifies the Caller ID policy and allows Teams users to make anonymous calls. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cscallinglineidentity - - - Get-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/get-cscallinglineidentity - - - Grant-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cscallinglineidentity - - - New-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscallinglineidentity - - - Remove-CsCallingLineIdentity - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cscallinglineidentity - - - - - - Set-CsCallQueue - Set - CsCallQueue - - Updates a Call Queue in your Skype for Business Online or Teams organization. - - - - 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 > - -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 - - 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 - - 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 - - String - - - None - - - CallbackRequestDtmf - - 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 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`. - - Int16 - - Int16 - - - None - - - ChannelId - - > Applicable: Microsoft Teams - Id of the channel to connect a call queue to. - - String - - String - - - None - - - ChannelUserObjectId - - > 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. - - Guid - - Guid - - - None - - - ComplianceRecordingForCallQueueTemplateId - - 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. - - 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 - - List - - - None - - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Object - - Object - - - None - - - IsCallbackEnabled - - The IsCallbackEnabled parameter is used to turn on/off callback. - - Boolean - - Boolean - - - None - - - 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. - - String - - String - - - None - - - 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 - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter specifies a unique name for the Call Queue. - - String - - String - - - 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 - - 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 - - String - - - None - - - NoAgentApplyTo - - > 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 - - Guid - - - None - - - NoAgentDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentSharedVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - NumberOfCallsInQueueBeforeOfferingCallback - - 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`. - - Int16 - - Int16 - - - None - - - OboResourceAccountIds - - > 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 - - String - - - None - - - OverflowDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - 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 - - > 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 - - String - - - None - - - OverflowRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - OverflowSharedVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowThreshold - - > 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. - - Int16 - - Int16 - - - 50 - - - PresenceBasedRouting - - > 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 - - - RoutingMethod - - > 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 - - Object - - Object - - - Attendant - - - ServiceLevelThresholdResponseTimeInSecond - - 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. - - Int16 - - Int16 - - - None - - - SharedCallQueueHistoryTemplateId - - 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. - - String - - String - - - None - - - ShiftsSchedulingGroupId - - > Applicable: Microsoft Teams - Id of the Scheduling Group to connect a call queue to. - - String - - String - - - None - - - ShiftsTeamId - - > Applicable: Microsoft Teams - Id of the Team containing the Scheduling Group to connect a call queue to. - - String - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - TextAnnouncementForCR - - > 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 - - String - - - None - - - TextAnnouncementForCRFailure - - > 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. - - String - - String - - - None - - - TimeoutAction - - > 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 - - Object - - Object - - - Disconnect - - - TimeoutActionCallPriority - - > 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. - - Int16 - - Int16 - - - None - - - TimeoutActionTarget - - > 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 - - String - - - None - - - TimeoutDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoiceAppAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutSharedVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutThreshold - - > 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 - - - 1200 - - - UseDefaultMusicOnHold - - > 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. - - Boolean - - Boolean - - - None - - - Users - - > Applicable: Microsoft Teams - The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - - List - - List - - - 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 - - - WelcomeMusicAudioFileId - - > 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 - - Guid - - - None - - - WelcomeTextToSpeechPrompt - - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to 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. - - 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 - - String - - - None - - - CallbackRequestDtmf - - 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 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`. - - Int16 - - Int16 - - - None - - - ChannelId - - > Applicable: Microsoft Teams - Id of the channel to connect a call queue to. - - String - - String - - - None - - - ChannelUserObjectId - - > 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. - - Guid - - Guid - - - None - - - ComplianceRecordingForCallQueueTemplateId - - 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. - - 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 - - List - - - None - - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Object - - Object - - - None - - - IsCallbackEnabled - - The IsCallbackEnabled parameter is used to turn on/off callback. - - Boolean - - Boolean - - - None - - - 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. - - String - - String - - - None - - - 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 - - - None - - - Name - - > Applicable: Microsoft Teams - The Name parameter specifies a unique name for the Call Queue. - - String - - String - - - 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 - - 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 - - String - - - None - - - NoAgentApplyTo - - > 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 - - Guid - - - None - - - NoAgentDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentRedirectVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - NoAgentRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - NoAgentSharedVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - NumberOfCallsInQueueBeforeOfferingCallback - - 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`. - - Int16 - - Int16 - - - None - - - OboResourceAccountIds - - > 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 - - String - - - None - - - OverflowDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - 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 - - > 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 - - String - - - None - - - OverflowRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoiceAppAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowRedirectVoicemailAudioFilePrompt - - > 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 - - String - - - None - - - OverflowSharedVoicemailAudioFilePrompt - - > 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 - - Guid - - - None - - - OverflowSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - OverflowThreshold - - > 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. - - Int16 - - Int16 - - - 50 - - - PresenceBasedRouting - - > 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 - - - RoutingMethod - - > 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 - - Object - - Object - - - Attendant - - - ServiceLevelThresholdResponseTimeInSecond - - 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. - - Int16 - - Int16 - - - None - - - SharedCallQueueHistoryTemplateId - - 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. - - String - - String - - - None - - - ShiftsSchedulingGroupId - - > Applicable: Microsoft Teams - Id of the Scheduling Group to connect a call queue to. - - String - - String - - - None - - - ShiftsTeamId - - > Applicable: Microsoft Teams - Id of the Team containing the Scheduling Group to connect a call queue to. - - String - - 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 - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for Microsoft internal use only. - - Guid - - Guid - - - None - - - TextAnnouncementForCR - - > 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 - - String - - - None - - - TextAnnouncementForCRFailure - - > 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. - - String - - String - - - None - - - TimeoutAction - - > 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 - - Object - - Object - - - Disconnect - - - TimeoutActionCallPriority - - > 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. - - Int16 - - Int16 - - - None - - - TimeoutActionTarget - - > 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 - - String - - - None - - - TimeoutDisconnectAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutDisconnectTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPersonAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPersonTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectPhoneNumberAudioFilePrompt - - > 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 - - Guid - - - None - - - TimeoutRedirectPhoneNumberTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoiceAppAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoiceAppTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutRedirectVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutRedirectVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutSharedVoicemailAudioFilePrompt - - > 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. - - Guid - - Guid - - - None - - - TimeoutSharedVoicemailTextToSpeechPrompt - - > 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 - - String - - - None - - - TimeoutThreshold - - > 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 - - - 1200 - - - UseDefaultMusicOnHold - - > 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. - - Boolean - - Boolean - - - None - - - Users - - > Applicable: Microsoft Teams - The User parameter lets you add agents to the Call Queue. This parameter expects a list of user unique identifiers (GUID). - - List - - List - - - 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 - - - WelcomeMusicAudioFileId - - > 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 - - Guid - - - None - - - WelcomeTextToSpeechPrompt - - This parameter indicates which Text-to-Speech (TTS) prompt is played when callers are connected to the Call Queue. - - String - - String - - - None - - - - - - - Microsoft.Rtc.Management.Hosted.CallQueue.Models.CallQueue - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsCallQueue -Identity e7e00636-47da-449c-a36b-1b3d6ee04440 -UseDefaultMusicOnHold $true - - This example updates the Call Queue with identity e7e00636-47da-449c-a36b-1b3d6ee04440 by making it use the default music on hold. - - - - -------------------------- 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/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/microsoftteams/Set-CsComplianceRecordingForCallQueueTemplate - - - New-CsComplianceRecordingForCallQueueTemplate - - - - Set-CsComplianceRecordingForCallQueueTemplate - - - - Remove-CsComplianceRecordingForCallQueueTemplate - - - - Get-CsCallQueue - - - - New-CsCallQueue - - - - Set-CsCallQueue - - - - Remove-CsCallQuuee - - - - - - - Set-CsInboundBlockedNumberPattern - Set - CsInboundBlockedNumberPattern - - Modifies one or more parameters of a blocked number pattern in the tenant list. - - - - This cmdlet modifies one or more parameters of a blocked number pattern in the tenant list. - - - - Set-CsInboundBlockedNumberPattern - - Identity - - A unique identifier specifying the blocked number pattern to be modified. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description for the blocked number pattern to be modified. - - String - - String - - - None - - - Enabled - - If this parameter is set to True, the inbound calls matching the pattern will be blocked. - - Boolean - - Boolean - - - None - - - Pattern - - A regular expression that the calling number must match in order to be blocked. - - 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 - - - Description - - A friendly description for the blocked number pattern to be modified. - - String - - String - - - None - - - Enabled - - If this parameter is set to True, the inbound calls matching the pattern will be blocked. - - Boolean - - Boolean - - - None - - - Identity - - A unique identifier specifying the blocked number pattern to be modified. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be blocked. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS> Set-CsInboundBlockedNumberPattern -Identity "BlockAutomatic" -Pattern "^\+11234567890" - - This example modifies a blocked number pattern to block inbound calls from +11234567890 number. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundblockednumberpattern - - - New-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundblockednumberpattern - - - Get-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundblockednumberpattern - - - Remove-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundblockednumberpattern - - - - - - Set-CsInboundExemptNumberPattern - Set - CsInboundExemptNumberPattern - - Modifies one or more parameters of an exempt number pattern in the tenant list. - - - - This cmdlet modifies one or more parameters of an exempt number pattern in the tenant list. - - - - Set-CsInboundExemptNumberPattern - - Identity - - Unique identifier for the exempt number pattern to be changed. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Sets the description of the number pattern. - - String - - String - - - None - - - Enabled - - This parameter determines whether the number pattern is enabled for exemption or not. - - Boolean - - Boolean - - - True - - - Pattern - - A regular expression that the calling number must match in order to be exempt from blocking. 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. - - System.String - - System.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 - - - Description - - Sets the description of the number pattern. - - String - - String - - - None - - - Enabled - - This parameter determines whether the number pattern is enabled for exemption or not. - - Boolean - - Boolean - - - True - - - Identity - - Unique identifier for the exempt number pattern to be changed. - - String - - String - - - None - - - Pattern - - A regular expression that the calling number must match in order to be exempt from blocking. 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. - - System.String - - System.String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - You can use Test-CsInboundBlockedNumberPattern to test your block and exempt phone number ranges. - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS> Set-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Pattern "^\+?1312555888[2|3]$" - - Sets the inbound exempt number pattern for AllowContoso1 - - - - -------------------------- EXAMPLE 2 -------------------------- - PS> Set-CsInboundExemptNumberPattern -Identity "AllowContoso1" -Enabled $False - - Disables the exempt number pattern from usage in call blocking - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csinboundexemptnumberpattern - - - Get-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/get-csinboundexemptnumberpattern - - - New-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/new-csinboundexemptnumberpattern - - - Remove-CsInboundExemptNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csinboundexemptnumberpattern - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - - - - - - Set-CsMainlineAttendantAppointmentBookingFlow - Set - CsMainlineAttendantAppointmentBookingFlow - - Changes an existing Mainline Attendant appointment booking flow - - - - 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-CsMainlineAttendantAppointmentBookingFlow - - 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 - - - - - - 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 - - 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 - - - - - - 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 - - AcsResourceId - - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - - System.Guid - - System.Guid - - - None - - - 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 - - System.Guid - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DisplayName - - > Applicable: Microsoft Teams - The display name. - - System.String - - System.String - - - None - - - 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 - - - Identity - - > Applicable: Microsoft Teams - The URI or ID of the application instance to update. - - System.String - - System.String - - - None - - - OnpremPhoneNumber - - > 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 - - - False - - - - - - AcsResourceId - - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - - System.Guid - - System.Guid - - - None - - - 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 - - System.Guid - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - DisplayName - - > Applicable: Microsoft Teams - The display name. - - System.String - - System.String - - - None - - - 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 - - - Identity - - > Applicable: Microsoft Teams - The URI or ID of the application instance to update. - - System.String - - System.String - - - None - - - OnpremPhoneNumber - - > 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 - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineApplicationInstance -Identity appinstance01@contoso.com -ApplicationId ce933385-9390-45d1-9512-c8d228074e07 -DisplayName "AppInstance01" - - This example shows updated ApplicationId and DisplayName information for an existing Auto Attendant application instance with Identity "appinstance01@contoso.com". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineapplicationinstance - - - Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-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 - - - - - - Set-CsOnlineAudioConferencingRoutingPolicy - Set - CsOnlineAudioConferencingRoutingPolicy - - This cmdlet sets the Online Audio Conferencing Routing Policy for users in the tenant. - - - - Teams meeting dial-out calls are initiated from within a meeting in your organization to PSTN numbers, including call-me-at calls and calls to bring new participants to a meeting. - To enable Teams meeting dial-out routing through Direct Routing to on-network users, you need to create and assign an Audio Conferencing routing policy called "OnlineAudioConferencingRoutingPolicy." - The OnlineAudioConferencingRoutingPolicy policy is equivalent to the CsOnlineVoiceRoutingPolicy for 1:1 PSTN calls via Direct Routing. - Audio Conferencing voice routing policies determine the available routes for calls from meeting dial-out based on the destination number. Audio Conferencing voice routing policies link to PSTN usages, determining routes for meeting dial-out calls by associated organizers. - - - - Set-CsOnlineAudioConferencingRoutingPolicy - - Identity - - The identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - 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). - - Object - - Object - - - None - - - RouteType - - For internal use. - - 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 - - - Description - - Enables administrators to provide explanatory text about the Online Audio Conferencing Routing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Identity - - The identity of the Online Audio Conferencing Routing Policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - 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). - - Object - - Object - - - None - - - RouteType - - For internal use. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsOnlineAudioConferencingRoutingPolicy -Identity "Policy 1" -OnlinePstnUsages "US and Canada" - - Sets the Online Audio Conferencing Routing Policy "Policy 1" value of "OnlinePstnUsages" to "US and Canada". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineaudioconferencingroutingpolicy - - - New-CsOnlineAudioConferencingRoutingPolicy - - - - Remove-CsOnlineAudioConferencingRoutingPolicy - - - - Grant-CsOnlineAudioConferencingRoutingPolicy - - - - Get-CsOnlineAudioConferencingRoutingPolicy - - - - - - - Set-CsOnlineDialInConferencingBridge - Set - CsOnlineDialInConferencingBridge - - Use the `Set-CsOnlineDialInConferencingBridge` cmdlet to modify the settings of a Microsoft audio conferencing bridge. - - - - The `Set-CsOnlineDialInConferencingBridge` cmdlet can be used to set the default dial-in service phone number for a given audio conferencing bridge. - - - - Set-CsOnlineDialInConferencingBridge - - 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 - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - - - 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. - - String - - String - - - None - - - 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 - - Fqdn - - Fqdn - - - 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 - - - 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 - - - False - - - 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 - - - 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 - - - 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. - - String - - String - - - None - - - 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 - - Fqdn - - Fqdn - - - 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 - - - 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 - - SwitchParameter - - - False - - - 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 - - - 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 -------------------------- - Set-CsOnlineDialInConferencingBridge -Name "Conference Bridge" -DefaultServiceNumber 14255551234 - - This example sets the default dial-in phone number to 14255551234 for the audio conferencing bridge named "Conference Bridge". - - - - -------------------------- Example 2 -------------------------- - $bridge = Get-CsOnlineDialInConferencingBridge -Name "Conference Bridge" - -$Bridge.Name = "O365 Bridge" - -Set-CsOnlineDialInConferencingBridge -Instance $bridge - - This example changes the name of a conference bridge by creating a conference bridge instance, changing the instance's name and then setting the conference bridge to the instance. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingbridge - - - - - - Set-CsOnlineDialInConferencingServiceNumber - Set - CsOnlineDialInConferencingServiceNumber - - Use the `Set-CsOnlineDialInConferencingServiceNumber` cmdlet to modify the properties of a dial-in or audio conferencing service number that is used by callers when they dial in to a meeting. - - - - The `Set-CsOnlineDialInConferencingServiceNumber` cmdlet enables you to set the primary and secondary languages or restore the default languages for a given service number. The primary language will be used for the prompts that callers will listen to when they are entering a meeting. The secondary languages (up to 4) will be available as options in the case the caller wants the prompts read in a different language. The following languages are supported for PSTN conferencing: - Arabic - Chinese (Simplified) - Chinese (Traditional) - Danish - Dutch - English (Australia) - English (United Kingdom) - English (United States) - Finnish - French (Canada) - French (France) - German - Hebrew - Italian - Japanese - Korean - Norwegian (Bokmal) - Portuguese - Russian - Spanish (Mexico) - Spanish (Spain) - Swedish - Turkish - Ukrainian - - - - Set-CsOnlineDialInConferencingServiceNumber - - 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 - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - 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 - - Fqdn - - Fqdn - - - 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 - - - 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. - - String - - String - - - None - - - RestoreDefaultLanguages - - > Applicable: Microsoft Teams - Including this switch restores all of the default languages for the audio conferencing service number. - - - SwitchParameter - - - False - - - 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. - - String - - String - - - 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 - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - 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 - - Fqdn - - Fqdn - - - 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 - - - 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. - - String - - String - - - None - - - RestoreDefaultLanguages - - > Applicable: Microsoft Teams - Including this switch restores all of the default languages for the audio conferencing service number. - - SwitchParameter - - SwitchParameter - - - False - - - 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. - - String - - String - - - 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 -------------------------- - Set-CsOnlineDialInConferencingServiceNumber -Identity +14255551234 -PrimaryLanguage de-de -SecondaryLanguages en-us, ja-jp, en-gb - - This example sets the primary language to German (Germany) and the secondary languages to US English, Japanese, and UK English for the dial-in service number +14255551234. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingservicenumber - - - - - - Set-CsOnlineDialInConferencingTenantSettings - Set - CsOnlineDialInConferencingTenantSettings - - Use the `Set-CsOnlineDialInConferencingTenantSettings` to modify the tenant level settings of dial-in conferencing. Dial-in conferencing tenant settings control the conference experience of users and manage some conferencing administrative functions. - - - - Dial-in conferencing tenant settings control what functions are available during a conference call. For example, whether or not entries and exits from the call are announced. The settings also manage some of the administrative functions, such as when users get notification of administrative actions, like a PIN change. By contrast, the higher level dial-in conferencing configuration only maintains a flag for whether dial-in conferencing is enabled for your organization. For more information, see `Get-CsOnlineDialinConferencingTenantConfiguration`. - 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`. - The following parameters are not applicable to Teams: EnableDialOutJoinConfirmation, IncludeTollFreeNumberInMeetingInvites, MigrateServiceNumbersOnCrossForestMove, and UseUniqueConferenceIds - - - - Set-CsOnlineDialInConferencingTenantSettings - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - AllowedDialOutExternalDomains - - Used to specify which external domains are allowed for dial-out conferencing. - - Object - - Object - - - None - - - AllowFederatedUsersToDialOutToSelf - - Meeting participants can call themselves when they join a meeting. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - For more information on the "AllowPSTNOnlyMeetings" user setting, see `Set-CsOnlineDialInConferencingUser`. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - The dial-in conferencing PIN is reset by the tenant administrator. - Changes to either the user's conference ID, or the user's default dial-in conference number. - - Boolean - - Boolean - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - - - EnableDialOutJoinConfirmation - - Specifies if the callees need to confirm to join the conference call. If true, the callees will hear prompts to ask for confirmation to join the conference call, otherwise callees will join the conference call directly. - - Boolean - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - EntryExitAnnouncementsType - - > Applicable: Microsoft Teams - Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly - - EntryExitAnnouncementsType - - EntryExitAnnouncementsType - - - 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 - - - IncludeTollFreeNumberInMeetingInvites - - > Applicable: Microsoft Teams - This parameter is obsolete and not functional. - - Boolean - - Boolean - - - None - - - Instance - - > Applicable: Microsoft Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - Boolean - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - 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. - - UInt32 - - UInt32 - - - None - - - 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. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - Note: The parameter has been deprecated and may be removed in future versions. - - Boolean - - Boolean - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - None - - - UseUniqueConferenceIds - - > Applicable: Microsoft Teams - Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false - - Boolean - - Boolean - - - 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 - - - - - - AllowedDialOutExternalDomains - - Used to specify which external domains are allowed for dial-out conferencing. - - Object - - Object - - - None - - - AllowFederatedUsersToDialOutToSelf - - Meeting participants can call themselves when they join a meeting. Possible settings are [No|Yes|RequireSameEnterpriseUser]. This parameter is Microsoft internal use only. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - For more information on the "AllowPSTNOnlyMeetings" user setting, see `Set-CsOnlineDialInConferencingUser`. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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 - - Boolean - - - None - - - 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. - The dial-in conferencing PIN is reset by the tenant administrator. - Changes to either the user's conference ID, or the user's default dial-in conference number. - - Boolean - - Boolean - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - - - EnableDialOutJoinConfirmation - - Specifies if the callees need to confirm to join the conference call. If true, the callees will hear prompts to ask for confirmation to join the conference call, otherwise callees will join the conference call directly. - - Boolean - - Boolean - - - None - - - 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. - - Boolean - - Boolean - - - None - - - 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 - - Boolean - - - None - - - EntryExitAnnouncementsType - - > Applicable: Microsoft Teams - Specifies if the Entry and Exit Announcement Uses names or tones only. PARAMVALUE: UseNames | ToneOnly - - EntryExitAnnouncementsType - - EntryExitAnnouncementsType - - - 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 - - - Identity - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - XdsIdentity - - XdsIdentity - - - None - - - IncludeTollFreeNumberInMeetingInvites - - > Applicable: Microsoft Teams - This parameter is obsolete and not functional. - - Boolean - - Boolean - - - None - - - Instance - - > Applicable: Microsoft Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - Boolean - - - None - - - MsftInternalProcessingMode - - For Microsoft internal use only. - - String - - String - - - None - - - 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. - - UInt32 - - UInt32 - - - None - - - 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. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - Note: The parameter has been deprecated and may be removed in future versions. - - Boolean - - Boolean - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - None - - - UseUniqueConferenceIds - - > Applicable: Microsoft Teams - Specifies if Private Meetings are enabled for the users in this tenant. PARAMVALUE: $true | $false - - Boolean - - Boolean - - - 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 -------------------------- - Set-CsOnlineDialInConferencingTenantSettings -EnableEntryExitNotifications $True -EnableNameRecording $True -PinLength 7 - - This example sets the tenant's conferencing settings to enable entry and exit notifications supported by name recording. The PIN length is set to 7. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineDialInConferencingTenantSettings -SendEmailFromOverride $true -SendEmailFromAddress admin@contoso.com -SendEmailFromDisplayName "Conferencing Administrator" - - This example defines the contact information to be used in dial-in conferencing email notifications and enables the default address to be overridden. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencingtenantsettings - - - Get-CsOnlineDialInConferencingTenantSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinedialinconferencingtenantsettings - - - Remove-CsOnlineDialInConferencingTenantSettings - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinedialinconferencingtenantsettings - - - - - - Set-CsOnlineDialInConferencingUser - Set - CsOnlineDialInConferencingUser - - 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. - - - - Set-CsOnlineDialInConferencingUser - - 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 - - - AllowPSTNOnlyMeetings - - > 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. - - Boolean - - Boolean - - - None - - - AllowTollFreeDialIn - - > 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 - - Boolean - - - 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 - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - Specifies the name of the audio conferencing bridge. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - 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` - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - ResetLeaderPin - - > Applicable: Microsoft Teams - Specifies whether to reset the meeting organizer or leaders PIN for meetings. - - - SwitchParameter - - - False - - - SendEmail - - > Applicable: Microsoft Teams - Send an email to the user containing their Audio Conference information. - - - SwitchParameter - - - False - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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>. - - String - - String - - - None - - - 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. - - Guid - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - Specifies the domain name for the tenant or organization. - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - TollFreeServiceNumber - - > 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>. - - String - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - The WhatIf parameter is not implemented for this cmdlet. - - - SwitchParameter - - - False - - - - - - AllowPSTNOnlyMeetings - - > 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. - - Boolean - - Boolean - - - None - - - AllowTollFreeDialIn - - > 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 - - Boolean - - - None - - - AsJob - - The parameter is used to run commands as background jobs. - - SwitchParameter - - SwitchParameter - - - False - - - BridgeId - - > Applicable: Microsoft Teams - Specifies the globally-unique identifier (GUID) for the audio conferencing bridge. - - Guid - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - Specifies the name of the audio conferencing bridge. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - 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` - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - 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 - - SwitchParameter - - - False - - - SendEmail - - > Applicable: Microsoft Teams - Send an email to the user containing their Audio Conference information. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - 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>. - - String - - String - - - None - - - 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. - - Guid - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - Specifies the domain name for the tenant or organization. - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - TollFreeServiceNumber - - > 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>. - - String - - String - - - None - - - WhatIf - - > Applicable: Microsoft Teams - The WhatIf parameter is not implemented for this cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineDialInConferencingUser -Identity "Ken Meyers" -ResetLeaderPin -ServiceNumber 14255037265 - - This example shows how to reset the meeting leader's PIN and set the audio conferencing provider default meeting phone number. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineDialInConferencingUser -Identity "Ken Meyers" -BridgeName "Conference Bridge" - - This example sets a user's conference bridge assignment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinedialinconferencinguser - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy - - - - - - Set-CsOnlineEnhancedEmergencyServiceDisclaimer - Set - CsOnlineEnhancedEmergencyServiceDisclaimer - - 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 - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - 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 - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - ForceAccept - - This parameter is reserved for internal Microsoft use. - - - SwitchParameter - - - False - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Version - - 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. - - - SwitchParameter - - - False - - - - - - Confirm - - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - 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 - - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - ForceAccept - - This parameter is reserved for internal Microsoft use. - - SwitchParameter - - SwitchParameter - - - False - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Version - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineEnhancedEmergencyServiceDisclaimer -CountryOrRegion US - - This example accepts the U.S. version of the enhanced emergency service terms and conditions. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineenhancedemergencyservicedisclaimer - - - Get-CsOnlineEnhancedEmergencyServiceDisclaimer - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineenhancedemergencyservicedisclaimer - - - - - - Set-CsOnlineLisCivicAddress - Set - CsOnlineLisCivicAddress - - 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 - - City - - > Applicable: Microsoft Teams - Specifies a new city for the civic address. Publicly editable. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams - Short form of the city name. This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the unique identifier of the civic address to be modified. - - Guid - - Guid - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies a new company name for the civic address. Publicly editable. - - String - - String - - - None - - - CompanyTaxId - - > 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 - - String - - - 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 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies a new description for the civic address. Publicly editable. - - String - - String - - - 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 - - - False - - - HouseNumber - - > Applicable: Microsoft Teams - Specifies the new numeric portion of the civic address. Publicly editable. - - String - - String - - - None - - - 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. - - String - - String - - - 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 - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the new state or province of the civic address. Publicly editable. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the new street name of the civic address. Publicly editable. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Microsoft internal use only - - String - - String - - - 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 - - - - - - City - - > Applicable: Microsoft Teams - Specifies a new city for the civic address. Publicly editable. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams - Short form of the city name. This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - CivicAddressId - - > Applicable: Microsoft Teams - Specifies the unique identifier of the civic address to be modified. - - Guid - - Guid - - - None - - - CompanyName - - > Applicable: Microsoft Teams - Specifies a new company name for the civic address. Publicly editable. - - String - - String - - - None - - - CompanyTaxId - - > 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 - - String - - - 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 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies a new description for the civic address. Publicly editable. - - String - - String - - - 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 - - SwitchParameter - - - False - - - HouseNumber - - > Applicable: Microsoft Teams - Specifies the new numeric portion of the civic address. Publicly editable. - - String - - String - - - None - - - 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. - - String - - String - - - 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 - - String - - - None - - - 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. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the new state or province of the civic address. Publicly editable. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the new street name of the civic address. Publicly editable. - - String - - String - - - None - - - 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. - - String - - String - - - None - - - ValidationStatus - - > Applicable: Microsoft Teams - Microsoft internal use only - - String - - String - - - 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 -------------------------- - Set-CsOnlineLisCivicAddress -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 -Description "City Center" -CompanyName Contoso - - This example modifies the description and company name of the civic address with the identity a363a9b8-1acd-41de-916a-296c7998a024. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineLisCivicAddress -CivicAddressId a363a9b8-1acd-41de-916a-296c7998a024 -Latitude 47.63952 -Longitude -122.12781 -ELIN MICROSOFT_ELIN - - This example modifies the latitude, longitude and ELIN name of the civic address with the identity a363a9b8-1acd-41de-916a-296c7998a024. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliscivicaddress - - - Get-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliscivicaddress - - - New-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineliscivicaddress - - - Remove-CsOnlineLisCivicAddress - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliscivicaddress - - - - - - Set-CsOnlineLisLocation - Set - CsOnlineLisLocation - - Use the `Set-CsOnlineLisLocation` cmdlet to modify an existing emergency dispatch location. There can be multiple locations in a civic address. Typically the civic address designates the building, and locations are specific parts of that building such as a floor, office, or wing. - - - - - - - - Set-CsOnlineLisLocation - - City - - > Applicable: Microsoft Teams - Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. - - String - - String - - - 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 - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - The company tax ID. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - Confidence - - > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. - - String - - String - - - 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - 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 - - - False - - - HouseNumber - - > Applicable: Microsoft Teams - Specifies the numeric portion of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - String - - - 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 - - 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 will be deprecated. - - String - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - String - - - 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 - - - - Set-CsOnlineLisLocation - - CityAlias - - > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. - - String - - String - - - None - - - Confidence - - > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. - - String - - String - - - 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 - - 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 - - - False - - - 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 - - String - - - 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 - - - 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 - - - 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 - - String - - - 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 - - - - - - City - - > Applicable: Microsoft Teams - Specifies the city of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - CityAlias - - > Applicable: Microsoft Teams Note: This parameter has been deprecated from the Teams PowerShell Module version 3.0.0 or later. - - String - - String - - - 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 - - String - - - None - - - CompanyTaxId - - > Applicable: Microsoft Teams - The company tax ID. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - Confidence - - > Applicable: Microsoft Teams Note: This parameter is not supported and will be deprecated. - - String - - String - - - 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 - - String - - - None - - - Description - - > Applicable: Microsoft Teams - Specifies an administrator defined description of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - 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 - - 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 - - String - - - None - - - 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 - - String - - - 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 - - String - - - 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 - - - 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 - - - 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 - - String - - - None - - - PostalCode - - > Applicable: Microsoft Teams - Specifies the postal code of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - String - - - None - - - 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 - - String - - - None - - - StateOrProvince - - > Applicable: Microsoft Teams - Specifies the state or province of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - StreetName - - > Applicable: Microsoft Teams - Specifies the street name of the civic address. Note: This parameter is not supported and will be deprecated. - - String - - String - - - None - - - 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 - - String - - - 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 -------------------------- - Set-CsOnlineLisLocation -LocationId 5aa884e8-d548-4b8e-a289-52bfd5265a6e -Location "B5 2nd Floor" - - This example changes the location description of the location specified by its location identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelislocation - - - New-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinelislocation - - - Get-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelislocation - - - Remove-CsOnlineLisLocation - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelislocation - - - - - - Set-CsOnlineLisPort - Set - CsOnlineLisPort - - Creates a Location Information Server (LIS) port, creates an association between a port and a location, or modifies an existing port and its associated location. The association between a port and location 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 allows the administrator to map physical locations to the port through which the client is connected. - - - - Set-CsOnlineLisPort - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the port. - - 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 - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - String - - - None - - - PortID - - > 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 - - 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 - - - False - - - - - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the port. - - 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 - - SwitchParameter - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - String - - - None - - - PortID - - > 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 - - 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 - - SwitchParameter - - - False - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineLisPort -PortID 12174 -ChassisID 0B-23-CD-16-AA-CC -Description "LisPort 12174" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee - - Example 1 creates the association between port "12174" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineLisPort -PortID 0A-25-55-AB-CD-FF -ChassisID 0B-23-CD-16-AA-CC -Description "LisPort 0A-25-55-AB-CD-FF" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee - - Example 2 creates the association between port "0A-25-55-AB-CD-FF" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". - - - - -------------------------- Example 3 -------------------------- - Set-CsOnlineLisPort -PortID 12174 -ChassisID 55123 -Description "LisPort 12174" -LocationId efd7273e-3092-4a56-8541-f5c896bb6fee - - Example 3 creates the association between port "12174" and LocationId "efd7273e-3092-4a56-8541-f5c896bb6fee". (Note: in this example, ChassisID sub-type is InterfaceName) - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisport - - - Get-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisport - - - Remove-CsOnlineLisPort - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisport - - - - - - Set-CsOnlineLisSubnet - Set - CsOnlineLisSubnet - - Creates a Location Information Server (LIS) subnet, creates an association between a subnet and a location, or modifies an existing subnet and its associated location. The association between a subnet and location 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 allows the administrator to map physical locations to the subnet through which the client is connected. - The location ID which is associating with the subnet is not required to be the existing location. - LIS subnets must be defined by the Network ID matching the subnet IP range assigned to clients. For example, the network ID for a client IP/mask of 10.10.10.150/25 is 10.10.10.128. For more information, see Understand TCP/IP addressing and subnetting basics (https://learn.microsoft.com/troubleshoot/windows-client/networking/tcpip-addressing-and-subnetting). - - - - Set-CsOnlineLisSubnet - - TenantId - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - Subnet - - > Applicable: Microsoft Teams - The IP address of the subnet. This value can be either IPv4 or IPv6 format. - - String - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the Location Information Service subnet. - - 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 - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - 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 - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the Location Information Service subnet. - - 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 - - SwitchParameter - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - 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 - - String - - - None - - - Subnet - - > Applicable: Microsoft Teams - 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 - - String - - - None - - - TenantId - - > Applicable: Microsoft Teams - 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 - - SwitchParameter - - - False - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineLisSubnet -Subnet 10.10.10.128 -LocationId f037a9ad-4334-455a-a1c5-3838ec0f5d02 -Description "Subnet 10.10.10.128" - - Example 1 creates the Location Information Service subnet "10.10.10.128" associated to Location ID "f037a9ad-4334-455a-a1c5-3838ec0f5d02". - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineLisSubnet -Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e -LocationId f037a9ad-4334-455a-a1c5-3838ec0f5d02 -Description "Subnet 2001:4898:e8:6c:90d2:28d4:76a4:ec5e" - - Example 2 creates the Location Information Service subnet in IPv6 format "2001:4898:e8:6c:90d2:28d4:76a4:ec5e" associated to Location ID "f037a9ad-4334-455a-a1c5-3838ec0f5d02". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelissubnet - - - - - - Set-CsOnlineLisSwitch - Set - CsOnlineLisSwitch - - Creates a Location Information Server (LIS) switch, creates an association between a switch and a location, or modifies an existing switch and its associated location. The association between a switch and location 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 allows the administrator to map physical locations to the network switch through which the client is connected. - - - - Set-CsOnlineLisSwitch - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the switch. - - 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 - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - LocationId - - > Applicable: Microsoft Teams - The name for this location. - - Guid - - Guid - - - 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 - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the switch. - - 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 - - SwitchParameter - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - LocationId - - > Applicable: Microsoft Teams - The name for this location. - - Guid - - Guid - - - 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 - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Guid - - - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineLisSwitch -ChassisID B8-BE-BF-4A-A3-00 -Description "DKSwitch1" -LocationId 9905bca0-6fb0-11ec-84a4-25019013784a - - Example 1 creates a switch with Chassis ID "B8-BE-BF-4A-A3-00", and associates it with location ID 9905bca0-6fb0-11ec-84a4-25019013784a. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinelisswitch - - - Get-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinelisswitch - - - Remove-CsOnlineLisSwitch - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinelisswitch - - - - - - Set-CsOnlineLisWirelessAccessPoint - Set - CsOnlineLisWirelessAccessPoint - - Creates a Location Information Server (LIS) wireless access point (WAP), creates an association between a WAP and a location, or modifies an existing WAP and its associated location. The association between a WAP and location 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 allows the administrator to map physical locations to the WAP through which calls will be routed. - 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 share 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 existing, the request for adding one more new BSSID which is within this wildcard range and with the same location ID will not be accepted. - - - - Set-CsOnlineLisWirelessAccessPoint - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the WAP. - - 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 - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - LocationId - - > Applicable: Microsoft Teams - The name for this location. - - Guid - - Guid - - - 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 - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - 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 - - String - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - > Applicable: Microsoft Teams - Specifies the administrator defined description of the WAP. - - 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 - - SwitchParameter - - - False - - - IsDebug - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - LocationId - - > Applicable: Microsoft Teams - The name for this location. - - Guid - - Guid - - - 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 - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Guid - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-03-23 -Description "USWAP1" -LocationId d7714269-ee52-4635-97b0-d7c228801d24 - - Example 1 creates the wireless access point with BSSID "F0-6E-0B-C2-03-23", associated with location ID d7714269-ee52-4635-97b0-d7c228801d24. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineLisWirelessAccessPoint -BSSID F0-6E-0B-C2-04-* -LocationId b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a -Description 'SEWAPs' - - Example 2 creates the wireless access point with Chassis ID "F0-6E-0B-C2-04- ", associated with location ID b2804a1a-e4cf-47df-8964-3eaf6fe1ae3a. BSSID "F0-6E-0B-C2-04- " is in wildcard format which is equivalent to adding all BSSIDs with the same LocationID in the range "F0-6E-0B-C2-04-[0-9A-F][0-9A-F]". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineliswirelessaccesspoint - - - Get-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineliswirelessaccesspoint - - - Remove-CsOnlineLisWirelessAccessPoint - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineliswirelessaccesspoint - - - - - - Set-CsOnlinePSTNGateway - Set - CsOnlinePSTNGateway - - Modifies the previously defined Session Border Controller (SBC) Configuration that describes the settings for the peer entity. This cmdlet was introduced with Microsoft Phone System Direct Routing. - - - - Use this cmdlet to modify the configuration of the previously created Session Border Controller (SBC) configuration. Each configuration contains specific settings for an SBC. These settings configure such entities as SIP signaling port, whether media bypass is enabled on this SBC, will the SBC send SIP options, specify the limit of maximum concurrent sessions, The cmdlet also let drain the SBC by setting parameter -Enabled to true or false state. When the Enabled parameter set to $false, the SBC will continue existing calls, but all new calls routed to another SBC in a route (if exists). - - - - Set-CsOnlinePSTNGateway - - Identity - - > Applicable: Microsoft Teams - The parameter is mandatory when modifying an existing SBC. - - String - - String - - - 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 - - String - - - None - - - 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 - - Boolean - - - $false - - - 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. - - String - - String - - - 408, 503, 504 - - - 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 - - Int32 - - - 10 - - - 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 - - Boolean - - - $false - - - 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 - - Boolean - - - $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 - - String - - - 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 - - Boolean - - - $false - - - InboundPSTNNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - - Object - - Object - - - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None - - - IPAddressVersion - - 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 - - - None - - - MaxConcurrentSessions - - > 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. - - System.Int32 - - System.Int32 - - - None - - - MediaBypass - - > Applicable: Microsoft Teams - Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. - - Boolean - - Boolean - - - $false - - - MediaRelayRoutingLocationOverride - - > 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 - - - $false - - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - - - OutboundTeamsNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to Teams 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 - - Boolean - - - $false - - - ProxySbc - - > Applicable: Microsoft Teams - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - - String - - String - - - None - - - SendSipOptions - - > 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 - - - $true - - - SipSignalingPort - - > 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 - - - 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 - - String - - - None - - - 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 - - Boolean - - - $false - - - 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. - - String - - String - - - 408, 503, 504 - - - 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 - - Int32 - - - 10 - - - 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 - - Boolean - - - $false - - - 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 - - Boolean - - - $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 - - String - - - 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 - - Boolean - - - $false - - - Identity - - > Applicable: Microsoft Teams - The parameter is mandatory when modifying an existing SBC. - - String - - String - - - None - - - InboundPSTNNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to PSTN number on inbound direction. - - Object - - Object - - - None - - - InboundTeamsNumberTranslationRules - - This parameter assigns an ordered list of Teams translation rules, that apply to Teams numbers on inbound direction. - - Object - - Object - - - None - - - IPAddressVersion - - 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 - - - None - - - MaxConcurrentSessions - - > 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. - - System.Int32 - - System.Int32 - - - None - - - MediaBypass - - > Applicable: Microsoft Teams - Parameter indicated of the SBC supports Media Bypass and the administrator wants to use it for this SBC. - - Boolean - - Boolean - - - $false - - - MediaRelayRoutingLocationOverride - - > 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 - - - $false - - - OutboundPSTNNumberTranslationRules - - Assigns an ordered list of Teams translation rules, that apply to PSTN number on outbound direction. - - Object - - Object - - - None - - - OutboundTeamsNumberTranslationRules - - Creates an ordered list of Teams translation rules, that apply to Teams 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 - - Boolean - - - $false - - - ProxySbc - - > Applicable: Microsoft Teams - The FQDN of the proxy SBC. Used in Local Media Optimization configurations. - - String - - String - - - None - - - SendSipOptions - - > 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 - - - $true - - - SipSignalingPort - - > 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 - - SwitchParameter - - - False - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsOnlinePSTNGateway -Identity sbc.contoso.com -Enabled $true - - This example enables previously created SBC with Identity (and FQDN) sbc.contoso.com. All others parameters will stay default. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsOnlinePSTNGateway -Identity sbc.contoso.com -SIPSignalingPort 5064 -ForwardPAI $true -Enabled $true - - This example modifies the configuration of an SBC with identity (and FQDN) sbc.contoso.com. It changes the SIPSignalingPort to 5064 and enabled P-Asserted-Identity field on outbound connections (outbound from Direct Routing to SBC). For each outbound to SBC session, the Direct Routing interface will report in P-Asserted-Identity fields the TEL URI and SIP address of the user who made a call. This is useful when a tenant administrator set identity of the caller as "Anonymous" or a general number of the company, but for the billing purposes the real identity of the user should be reported. - - - - - - Online Version: - 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-CsOnlinePSTNGateway - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinepstngateway - - - - - - Set-CsOnlinePstnUsage - Set - CsOnlinePstnUsage - - Modifies a set of strings that identify the allowed online public switched telephone network (PSTN) usages. This cmdlet can be used to add usages to the list of online PSTN usages or remove usages from the list. - - - - Online PSTN usages are string values that are used for call authorization. An online PSTN usage links an online voice policy to a route. The `Set-CsOnlinePstnUsage` cmdlet is used to add or remove phone usages to or from the usage list. This list is global so it can be used by policies and routes throughout the tenant. - This cmdlet is used when configuring Microsoft Phone System Direct Routing. - - - - Set-CsOnlinePstnUsage - - Identity - - The scope at which these settings are applied. The Identity for this cmdlet is always Global. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Usage - - Contains a list of allowable usage strings. These entries can be any string value. - - Object - - Object - - - 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 - - The scope at which these settings are applied. The Identity for this cmdlet is always Global. - - String - - String - - - None - - - Usage - - Contains a list of allowable usage strings. These entries can be any string value. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsOnlinePstnUsage -Identity global -Usage @{add="International"} - - This command adds the string "International" to the current list of available PSTN usages. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsOnlinePstnUsage -Identity global -Usage @{remove="Local"} - - This command removes the string "Local" from the list of available PSTN usages. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsOnlinePstnUsage -Usage @{remove="Local"} - - The command in this example performs the exact same action as the command in Example 2: it removes the "Local" PSTN usage. This example shows the command without the Identity parameter specified. The only Identity available to the Set-CsOnlinePstnUsage cmdlet is the Global identity; omitting the Identity parameter defaults to Global. - - - - -------------------------- Example 4 -------------------------- - PS C:\> Set-CsOnlinePstnUsage -Usage @{replace="International","Restricted"} - - This command replaces everything in the usage list with the values International and Restricted. All previously existing usages are removed. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinepstnusage - - - Get-CsOnlinePstnUsage - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinepstnusage - - - - - - Set-CsOnlineSchedule - Set - CsOnlineSchedule - - Use the Set-CsOnlineSchedule cmdlet to update a schedule. - - - - The Set-CsOnlineSchedule cmdlet lets you modify the properties of a schedule. - - - - Set-CsOnlineSchedule - - Instance - - > Applicable: Microsoft Teams - The Instance parameter is the object reference to the schedule to be modified. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Instance - - > Applicable: Microsoft Teams - The Instance parameter is the object reference to the schedule to be modified. - - Object - - Object - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - Microsoft.Rtc.Management.Hosted.Online.Models.Schedule - - - The modified instance of the `Microsoft.Rtc.Management.Hosted.Online.Models.Schedule` object. - - - - - - - System.Void - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $schedule = Get-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" -$schedule.Name = "Christmas Holiday" -Set-CsOnlineSchedule -Instance $schedule - - This example modifies the name of the schedule that has a Id of fa9081d6-b4f3-5c96-baec-0b00077709e5. - - - - -------------------------- Example 2 -------------------------- - $schedule = Get-CsOnlineSchedule -Id "fa9081d6-b4f3-5c96-baec-0b00077709e5" - -$schedule - - Id : 5d3e0315-533b-473d-8524-36c954d1fc93 - Name : Thanksgiving - Type : Fixed - WeeklyRecurrentSchedule : - FixedSchedule : 22/11/2018 00:00 - 23/11/2018 00:00, 28/11/2019 00:00 - 29/11/2019 00:00, 26/11/2020 00:00 - 27/11/2020 00:00 - -# Add a new Date Time Range -$schedule.FixedSchedule.DateTimeRanges += New-CsOnlineDateTimeRange -Start "25/11/2021" -End "26/11/2021" - -Set-CsOnlineSchedule -Instance $schedule - - This example updates an existing holiday schedule, adding a new date/time range to it. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlineschedule - - - New-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineschedule - - - Remove-CsOnlineSchedule - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlineschedule - - - - - - Set-CsOnlineVoiceApplicationInstance - Set - CsOnlineVoiceApplicationInstance - - The cmdlet modifies 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. - - - - Set-CsOnlineVoiceApplicationInstance - - Identity - - The user principal name (UPN) of the resource account in Microsoft Entra ID. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - 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 - - - TelephoneNumber - - The phone number to be assigned to the resource account. - - Object - - Object - - - 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` - 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. - - Object - - Object - - - 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 - - - DomainController - - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - 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 - - - Identity - - The user principal name (UPN) of the resource account in Microsoft Entra ID. - - Object - - Object - - - None - - - TelephoneNumber - - The phone number to be assigned to the resource account. - - Object - - Object - - - 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` - 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. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineVoiceApplicationInstance -Identity testra1@contoso.com -TelephoneNumber +14255550100 - - This example sets a phone number to the resource account testra1@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceapplicationinstance - - - New-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlineapplicationinstance - - - - - - Set-CsOnlineVoicemailUserSettings - Set - CsOnlineVoicemailUserSettings - - Use the Set-CsOnlineVoicemailUserSettings cmdlet to modify the online voicemail user settings of a specific user. New online voicemail user settings of the user would be returned after executing. - - - - The Set-CsOnlineVoicemailUserSettings cmdlet lets tenant admin modify the online voicemail user settings of a specific user in the organization. New online voicemail user settings of the user would be returned after executing. For example, tenant admin could enable/disable voicemail, change voicemail prompt language, modify out-of-office voicemail greeting settings, or setup simple call answer rules. Only those properties that tenant admin have actually provided with be modified. If an online voicemail user setting was not set by tenant admin, it would remain the old value after this cmdlet has been executed. - - - - Set-CsOnlineVoicemailUserSettings - - CallAnswerRule - - > Applicable: Microsoft Teams - The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: - - DeclineCall - - PromptOnly - - PromptOnlyWithTransfer - - RegularVoicemail - - VoicemailWithTransferOption - - Object - - Object - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - Force - - 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 - - - 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 - - System.Boolean - - - None - - - 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 - - System.Boolean - - - None - - - 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) - - "ar-SA" (Arabic - Saudi Arabia) - - "bg-BG" (Bulgarian - Bulgaria) - - "ca-ES" (Catalan - Catalan) - - "cy-GB" (Welsh - United Kingdom) - - "cs-CZ" (Czech - Czech Republic) - - "da-DK" (Danish - Denmark) - - "de-AT" (German - Austria) - - "de-CH" (German - Switzerland) - - "de-DE" (German - Germany) - - "el-GR" (Greek - Greece) - - "en-AU" (English - Australia) - - "en-CA" (English - Canada) - - "en-GB" (English - United Kingdom) - - "en-IE" (English - Ireland) - - "en-IN" (English - India) - - "en-PH" (English - Philippines) - - "en-US" (English - United States) - - "en-ZA" (English - South Africa) - - "es-ES" (Spanish - Spain) - - "es-MX" (Spanish - Mexico) - - "et-EE" (Estonian - Estonia) - - "fi-FI" (Finnish - Finland) - - "fr-BE" (French - Belgium) - - "fr-CA" (French - Canada) - - "fr-CH" (French - Switzerland) - - "fr-FR" (French - France) - - "he-IL" (Hebrew - Israel) - - "hi-IN" (Hindi - India) - - "hr-HR" (Croatian - Croatia) - - "hu-HU" (Hungarian - Hungary) - - "id-ID" (Indonesian - Indonesia) - - "it-IT" (Italian - Italy) - - "ja-JP" (Japanese - Japan) - - "ko-KR" (Korean - Korea) - - "lt-LT" (Lithuanian - Lithuania) - - "lv-LV" (Latvian - Latvia) - - "nl-BE" (Dutch - Belgium) - - "nl-NL" (Dutch - Netherlands) - - "nb-NO" (Norwegian, Bokmål - Norway) - - "pl-PL" (Polish - Poland) - - "pt-BR" (Portuguese - Brazil) - - "pt-PT" (Portuguese - Portugal) - - "ro-RO" (Romanian - Romania) - - "ru-RU" (Russian - Russia) - - "sk-SK" (Slovak - Slovakia) - - "sl-SI" (Slovenian - Slovenia) - - "sv-SE" (Swedish - Sweden) - - "th-TH" (Thai - Thailand) - - "tr-TR" (Turkish - Turkey) - - "vi-VN" (Vietnamese - Viet Nam) - - "zh-CN" (Chinese - Simplified, PRC) - - "zh-TW" (Chinese - Traditional, Taiwan) - - "zh-HK" (Chinese - Traditional, Hong Kong S.A.R.) - - System.String - - System.String - - - None - - - ShareData - - > Applicable: Microsoft Teams - Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. - - System.Boolean - - System.Boolean - - - None - - - 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 - - System.String - - - None - - - 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 - - System.Boolean - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - CallAnswerRule - - > Applicable: Microsoft Teams - The CallAnswerRule parameter represents the value of the call answer rule, which can be any of the following: - - DeclineCall - - PromptOnly - - PromptOnlyWithTransfer - - RegularVoicemail - - VoicemailWithTransferOption - - Object - - Object - - - 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 - - System.String - - - None - - - 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 - - System.String - - - None - - - Force - - 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 - 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 - - System.Boolean - - - None - - - 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 - - System.Boolean - - - None - - - 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) - - "ar-SA" (Arabic - Saudi Arabia) - - "bg-BG" (Bulgarian - Bulgaria) - - "ca-ES" (Catalan - Catalan) - - "cy-GB" (Welsh - United Kingdom) - - "cs-CZ" (Czech - Czech Republic) - - "da-DK" (Danish - Denmark) - - "de-AT" (German - Austria) - - "de-CH" (German - Switzerland) - - "de-DE" (German - Germany) - - "el-GR" (Greek - Greece) - - "en-AU" (English - Australia) - - "en-CA" (English - Canada) - - "en-GB" (English - United Kingdom) - - "en-IE" (English - Ireland) - - "en-IN" (English - India) - - "en-PH" (English - Philippines) - - "en-US" (English - United States) - - "en-ZA" (English - South Africa) - - "es-ES" (Spanish - Spain) - - "es-MX" (Spanish - Mexico) - - "et-EE" (Estonian - Estonia) - - "fi-FI" (Finnish - Finland) - - "fr-BE" (French - Belgium) - - "fr-CA" (French - Canada) - - "fr-CH" (French - Switzerland) - - "fr-FR" (French - France) - - "he-IL" (Hebrew - Israel) - - "hi-IN" (Hindi - India) - - "hr-HR" (Croatian - Croatia) - - "hu-HU" (Hungarian - Hungary) - - "id-ID" (Indonesian - Indonesia) - - "it-IT" (Italian - Italy) - - "ja-JP" (Japanese - Japan) - - "ko-KR" (Korean - Korea) - - "lt-LT" (Lithuanian - Lithuania) - - "lv-LV" (Latvian - Latvia) - - "nl-BE" (Dutch - Belgium) - - "nl-NL" (Dutch - Netherlands) - - "nb-NO" (Norwegian, Bokmål - Norway) - - "pl-PL" (Polish - Poland) - - "pt-BR" (Portuguese - Brazil) - - "pt-PT" (Portuguese - Portugal) - - "ro-RO" (Romanian - Romania) - - "ru-RU" (Russian - Russia) - - "sk-SK" (Slovak - Slovakia) - - "sl-SI" (Slovenian - Slovenia) - - "sv-SE" (Swedish - Sweden) - - "th-TH" (Thai - Thailand) - - "tr-TR" (Turkish - Turkey) - - "vi-VN" (Vietnamese - Viet Nam) - - "zh-CN" (Chinese - Simplified, PRC) - - "zh-TW" (Chinese - Traditional, Taiwan) - - "zh-HK" (Chinese - Traditional, Hong Kong S.A.R.) - - System.String - - System.String - - - None - - - ShareData - - > Applicable: Microsoft Teams - Specifies whether voicemail and transcription data is shared with the service for training and improving accuracy. - - System.Boolean - - System.Boolean - - - None - - - 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 - - System.String - - - None - - - 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 - - System.Boolean - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - Microsoft.Rtc.Management.Hosted.Voicemail.Models.VoicemailUserSettings - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsOnlineVoicemailUserSettings -Identity sip:user1@contoso.com -VoicemailEnabled $true - - This example changes VoicemailEnabled setting to true for the user with SIP URI sip:user1@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Set-CsOnlineVoicemailUserSettings -Identity user2@contoso.com -PromptLanguage "en-US" -OofGreetingFollowCalendarEnabled $false - - This example changes PromptLanguage setting to "en-US" and OofGreetingFollowCalendarEnabled setting to false for user2@contoso.com. - - - - -------------------------- Example 3 -------------------------- - Set-CsOnlineVoicemailUserSettings -Identity user3@contoso.com -CallAnswerRule PromptOnlyWithTransfer -TransferTarget sip:user4@contoso.com - - This example changes CallAnswerRule setting to PromptOnlyWithTransfer and set TransferTarget to "sip:user4@contoso.com" for user3@contoso.com. - - - - -------------------------- Example 4 -------------------------- - Set-CsOnlineVoicemailUserSettings -Identity user5@contoso.com -CallAnswerRule VoicemailWithTransferOption -TransferTarget "+14255551234" - - This example changes CallAnswerRule setting to VoicemailWithTransferOption and set TransferTarget to "+14255551234" for user5@contoso.com.. - - - - -------------------------- Example 5 -------------------------- - Set-CsOnlineVoicemailUserSettings -Identity user6@contoso.com -DefaultGreetingPromptOverwrite "Hi, I am currently not available." - - This example changes DefaultGreetingPromptOverwrite setting to "Hi, I am currently not available." for user6@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoicemailusersettings - - - Get-CsOnlineVoicemailUserSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoicemailusersettings - - - - - - Set-CsOnlineVoiceRoute - Set - CsOnlineVoiceRoute - - Modifies an online voice route. Online voice routes contain instructions that tell Microsoft Teams how to route calls from Microsoft or Office 365 users to phone numbers on the public switched telephone network (PSTN) or a private branch exchange (PBX). - - - - Use this cmdlet to modify an existing online voice route. Online voice routes are associated with online voice policies through online public switched telephone network (PSTN) usages. A online 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. - - - - Set-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.) - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - BridgeSourcePhoneNumber - - BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. - When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. - For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A description of what this phone route is for. - - String - - String - - - None - - - NumberPattern - - A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. For example, the default number pattern, [0-9]{10}, specifies a 10-digit number containing any digits 0 through 9. - - String - - String - - - None - - - OnlinePstnGatewayList - - This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. - By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - Priority - - A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - BridgeSourcePhoneNumber - - BridgeSourcePhoneNumber is an E.164 formatted Operator Connect Conferencing phone number assigned to your Audio Conferencing Bridge. Using BridgeSourcePhoneNumber in an online voice route is mutually exclusive with using OnlinePstnGatewayList in the same online voice route. - When using BridgeSourcePhoneNumber in an online voice route, the OnlinePstnUsages used in the online voice route should only be used in a corresponding OnlineAudioConferencingRoutingPolicy. The same OnlinePstnUsages should not be used in online voice routes that are not using BridgeSourcePhoneNumber. - For more information about Operator Connect Conferencing, please see Configure Operator Connect Conferencing (https://learn.microsoft.com/microsoftteams/operator-connect-conferencing-configure). - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - A description of what this phone route is for. - - String - - String - - - 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.) - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - NumberPattern - - A regular expression that specifies the phone numbers to which this route applies. Numbers matching this pattern will be routed according to the rest of the routing settings. For example, the default number pattern, [0-9]{10}, specifies a 10-digit number containing any digits 0 through 9. - - String - - String - - - None - - - OnlinePstnGatewayList - - This parameter contains a list of online gateways associated with this online voice route. Each member of this list must be the service Identity of the online PSTN gateway. The service Identity is the fully qualified domain name (FQDN) of the pool or the IP address of the server. For example, redmondpool.litwareinc.com. - By default this list is empty. However, if you leave this parameter blank when creating a new voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local, Long Distance, etc.) that can be applied to this online voice route. The PSTN usage must be an existing usage (PSTN usages can be retrieved by calling the Get-CsOnlinePstnUsage cmdlet). - By default this list is empty. However, if you leave this parameter blank when creating a new online voice route, you'll receive a warning message. - - PSListModifier - - PSListModifier - - - None - - - Priority - - A number could resolve to multiple online voice routes. The priority determines the order in which the routes will be applied if more than one route is possible. The lowest priority will be applied first and then in ascendant order. - - Int32 - - Int32 - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -Description "Test Route" - - This command sets the Description of the Route1 online voice route to "Test Route." - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{add="Long Distance"} - - The command in this example modifies the online voice route with the identity Route1 to add the online PSTN usage Long Distance to the list of usages for this voice route. Long Distance must be in the list of global online PSTN usages (which can be retrieved with a call to the `Get-CsOnlinePstnUsage` cmdlet). - - - - -------------------------- Example 3 -------------------------- - PS C:\> $x = (Get-CsOnlinePstnUsage).Usage - -PS C:\> Set-CsOnlineVoiceRoute -Identity Route1 -OnlinePstnUsages @{replace=$x} - - This example modifies the online voice route named Route1 to populate that route's list of online PSTN usages with all the existing usages for the organization. The first command in this example retrieves the list of global online PSTN usages. Notice that the call to the `Get-CsOnlinePstnUsage` cmdlet is in parentheses; this means that we first retrieve an object containing PSTN usage information. (Because there is only one--global--PSTN usage, only one object will be retrieved.) The command then retrieves the Usage property of this object. That property, which contains a list of online PSTN usages, is assigned to the variable $x. In the second line of this example, the Set-CsOnlineVoiceRoute cmdlet is called to modify the online voice route with the identity Route1. Notice the value passed to the OnlinePstnUsages parameter: @{replace=$x}. This value says to replace everything in the OnlinePstnUsages list for this route with the contents of $x, which contain the online PSTN usages list retrieved in line 1. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroute - - - Get-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroute - - - New-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroute - - - Remove-CsOnlineVoiceRoute - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroute - - - - - - Set-CsOnlineVoiceRoutingPolicy - Set - CsOnlineVoiceRoutingPolicy - - Modifies 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. - - - - Set-CsOnlineVoiceRoutingPolicy - - Identity - - Unique identifier assigned to the policy when it was created. Online voice routing 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 "RedmondOnlineVoiceRoutingPolicy" - If you do not specify an Identity, then the `Set-CsOnlineVoiceRoutingPolicy` cmdlet will modify the global policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage. (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet.) - - Object - - Object - - - None - - - RouteType - - This parameter is reserved for internal Microsoft use. - - 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 - - - Description - - Enables administrators to provide explanatory text to accompany an online voice routing policy. For example, the Description might include information about the users the policy should be assigned to. - - String - - String - - - None - - - Identity - - Unique identifier assigned to the policy when it was created. Online voice routing 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 "RedmondOnlineVoiceRoutingPolicy" - If you do not specify an Identity, then the `Set-CsOnlineVoiceRoutingPolicy` cmdlet will modify the global policy. - - String - - String - - - None - - - OnlinePstnUsages - - A list of online PSTN usages (such as Local or Long Distance) that can be applied to this online voice routing policy. The online PSTN usage must be an existing usage. (PSTN usages can be retrieved by calling the `Get-CsOnlinePstnUsage` cmdlet.) - - Object - - Object - - - None - - - RouteType - - This parameter is reserved for internal Microsoft use. - - 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:\> Set-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages @{Add="Long Distance"} - - The command shown in Example 1 adds the online PSTN usage "Long Distance" to the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsOnlineVoiceRoutingPolicy -Identity "RedmondOnlineVoiceRoutingPolicy" -OnlinePstnUsages @{Remove="Local"} - - In Example 2, the online PSTN usage "Local" is removed from the per-user online voice routing policy RedmondOnlineVoiceRoutingPolicy. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsOnlineVoiceRoutingPolicy | Where-Object {$_.OnlinePstnUsages -contains "Local"} | Set-CsOnlineVoiceRoutingPolicy -OnlinePstnUsages @{Remove="Local"} - - Example 3 removes the online PSTN usage "Local" from all the online voice routing policies that include that usage. In order to do this, the command first calls the `Get-CsOnlineVoiceRoutingPolicy` cmdlet 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 "Local" usage. Those policies are then piped to the `Set-CsOnlineVoiceRoutingPolicy` cmdlet, which deletes the Local usage from each policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csonlinevoiceroutingpolicy - - - New-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csonlinevoiceroutingpolicy - - - Get-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlinevoiceroutingpolicy - - - Grant-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csonlinevoiceroutingpolicy - - - Remove-CsOnlineVoiceRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csonlinevoiceroutingpolicy - - - - - - Set-CsOnlineVoiceUser - 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/microsoftteams/set-csphonenumberassignment)and Remove-CsPhoneNumberAssignment (https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment)cmdlets instead. - - - - Set-CsOnlineVoiceUser - - 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 - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - - SwitchParameter - - - False - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - 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. - - Guid - - Guid - - - None - - - 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 - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - The WhatIf parameter is not implemented for this cmdlet. - - - SwitchParameter - - - False - - - - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - - - DomainController - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Fqdn - - Fqdn - - - 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 - - - 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. - - Guid - - Guid - - - None - - - 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 - - String - - - None - - - Tenant - - > Applicable: Microsoft Teams - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - The WhatIf parameter is not implemented for this cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- 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 shows how to set up personal attendant for a user, who has call forwarding enabled. - - - - -------------------------- 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 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/microsoftteams/set-cspersonalattendantsettings - - - Get-CsPersonalAttendantSettings - - - - - - - Set-CsPhoneNumberAssignment - Set - CsPhoneNumberAssignment - - This cmdlet will assign a phone number to a user or a resource account (online application instance). - - - - 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/microsoftteams/remove-csphonenumberassignment)cmdlet. - - - - Set-CsPhoneNumberAssignment - - 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 - - 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 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 - - - 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. - - System.String - - System.String - - - 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 - - The type of phone number to assign to the user or resource account. The supported values are DirectRouting, CallingPlan, and OperatorConnect. When you acquire a phone number you will typically know which type it is. - - System.String - - System.String - - - None - - - - Set-CsPhoneNumberAssignment - - EnterpriseVoiceEnabled - - > Applicable: Microsoft Teams - Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. - This parameter is mutual exclusive with PhoneNumber. - - System.Boolean - - System.Boolean - - - 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 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 - - - - Set-CsPhoneNumberAssignment - - HttpPipelinePrepend - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - - None - - - LocationId - - 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. - - System.String - - System.String - - - None - - - 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 - - - - Set-CsPhoneNumberAssignment - - HttpPipelinePrepend - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - - None - - - NetworkSiteId - - This parameter is reserved for internal Microsoft use. - - System.String - - System.String - - - None - - - 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 - - - - Set-CsPhoneNumberAssignment - - HttpPipelinePrepend - - {{ Fill HttpPipelinePrepend Description }} - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[] - - - None - - - 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 - - - ReverseNumberLookup - - 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. - - System.String - - System.String - - - None - - - - - - 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 - - System.String - - - None - - - EnterpriseVoiceEnabled - - > Applicable: Microsoft Teams - Flag indicating if the user or resource account should be EnterpriseVoiceEnabled. - This parameter is mutual exclusive with PhoneNumber. - - System.Boolean - - System.Boolean - - - 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 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 - - - LocationId - - 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. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - None - - - Notify - - Sends an email to Teams phone user about new telephone number assignment. - - System.Management.Automation.SwitchParameter - - 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 - - The type of phone number to assign to the user or resource account. The supported values are DirectRouting, CallingPlan, and OperatorConnect. When you acquire a phone number you will typically know which type it is. - - System.String - - System.String - - - None - - - ReverseNumberLookup - - 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. - - System.String - - System.String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 3.0.0 or later. The parameter set LocationUpdate was introduced in Teams PowerShell module 5.3.1-preview. The parameter NetworkSiteId was introduced in Teams PowerShell module 5.5.0. The parameter set NetworkSiteUpdate was introduced in Teams PowerShell module 5.5.1-preview. - The cmdlet is only available in commercial and GCC cloud instances. - If a user or resource account has a phone number set in Active Directory on-premises and synched into Microsoft 365, you can't use Set-CsPhoneNumberAssignment to set the phone number. You will have to clear the phone number from the on-premises Active Directory and let that change sync into Microsoft 365 first. - The previous command for assigning phone numbers to users Set-CsUser had the parameter HostedVoiceMail. Setting HostedVoiceMail for Microsoft Teams users is no longer necessary and that is why the parameter is not available on Set-CsPhoneNumberAssignment. - - - - - -------------------------- Example 1 -------------------------- - Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber +12065551234 -PhoneNumberType CallingPlan - - This example assigns the Microsoft Calling Plan phone number +1 (206) 555-1234 to the user user1@contoso.com. - - - - -------------------------- Example 2 -------------------------- - $loc=Get-CsOnlineLisLocation -City Vancouver -Set-CsPhoneNumberAssignment -Identity user2@contoso.com -PhoneNumber +12065551224 -PhoneNumberType CallingPlan -LocationId $loc.LocationId - - This example finds the emergency location defined for the corporate location Vancouver and assigns the Microsoft Calling Plan phone number +1 (206) 555-1224 and location to the user user2@contoso.com. - - - - -------------------------- Example 3 -------------------------- - Set-CsPhoneNumberAssignment -Identity user3@contoso.com -EnterpriseVoiceEnabled $true - - This example sets the EnterpriseVoiceEnabled flag on the user user3@contoso.com. - - - - -------------------------- Example 4 -------------------------- - Set-CsPhoneNumberAssignment -Identity user3@contoso.com -LocationId 'null' -PhoneNumber +12065551226 -PhoneNumberType OperatorConnect - - This example removes the emergency location from the phone number for user user3@contoso.com. - - - - -------------------------- Example 5 -------------------------- - Set-CsPhoneNumberAssignment -Identity cq1@contoso.com -PhoneNumber +14255551225 -PhoneNumberType DirectRouting - - This example assigns the Direct Routing phone number +1 (425) 555-1225 to the resource account cq1@contoso.com. - - - - -------------------------- Example 6 -------------------------- - Set-CsPhoneNumberAssignment -Identity user4@contoso.com -PhoneNumber "+14255551000;ext=1234" -PhoneNumberType DirectRouting - - This example assigns the Direct Routing phone number +1 (425) 555-1000;ext=1234 to the user user4@contoso.com. - - - - -------------------------- Example 7 -------------------------- - Try { Set-CsPhoneNumberAssignment -Identity user5@contoso.com -PhoneNumber "+14255551000;ext=1234" -PhoneNumberType DirectRouting -ErrorAction Stop } Catch { Write-Host An error occurred } - - This example shows how to use Try/Catch and ErrorAction to perform error checking on the assignment cmdlet failing. - - - - -------------------------- Example 8 -------------------------- - $TempUser = "tempuser@contoso.com" -$OldLoc=Get-CsOnlineLisLocation -City Vancouver -$NewLoc=Get-CsOnlineLisLocation -City Seattle -$Numbers=Get-CsPhoneNumberAssignment -LocationId $OldLoc.LocationId -PstnAssignmentStatus Unassigned -NumberType CallingPlan -CapabilitiesContain UserAssignment -foreach ($No in $Numbers) { - Set-CsPhoneNumberAssignment -Identity $TempUser -PhoneNumberType CallingPlan -PhoneNumber $No.TelephoneNumber -LocationId $NewLoc.LocationId - Remove-CsPhoneNumberAssignment -Identity $TempUser -PhoneNumberType CallingPlan -PhoneNumber $No.TelephoneNumber -} - - This example shows how to change the location for unassigned Calling Plan subscriber phone numbers by looping through all the phone numbers, assigning each phone number temporarily with the new location to a user, and then unassigning the phone number again from the user. - - - - -------------------------- Example 9 -------------------------- - $loc=Get-CsOnlineLisLocation -City Toronto -Set-CsPhoneNumberAssignment -PhoneNumber +12065551224 -LocationId $loc.LocationId - - This example shows how to set the location on a phone number. - - - - -------------------------- Example 10 -------------------------- - $OldLocationId = "7fda0c0b-6a3d-48b8-854b-3fbe9dcf6513" -$NewLocationId = "951fac72-955e-4734-ab74-cc4c0f761c0b" -# Get all phone numbers in old location -$pns = Get-CsPhoneNumberAssignment -LocationId $OldLocationId -Write-Host $pns.count numbers found in old location $OldLocationId -# Move all those phone numbers to the new location -foreach ($pn in $pns) { - Try { - Set-CsPhoneNumberAssignment -PhoneNumber $pn.TelephoneNumber -LocationId $NewLocationId -ErrorAction Stop - Write-Host $pn.TelephoneNumber was updated to have location $NewLocationId - } - Catch { - Write-Host Could not update $pn.TelephoneNumber with location $NewLocationId - } -} -Write-Host (Get-CsPhoneNumberAssignment -LocationId $OldLocationId).Count numbers found in old location $OldLocationId -Write-Host (Get-CsPhoneNumberAssignment -LocationId $NewLocationId).Count numbers found in new location $NewLocationId - - This Example shows how to update the LocationID from an old location to a new location for a set of phone numbers. - - - - -------------------------- Example 11 -------------------------- - Set-CsPhoneNumberAssignment -Identity user3@contoso.com -PhoneNumber +12065551226 -ReverseNumberLookup 'SkipInternalVoip' - - This example shows how to turn off reverse number lookup (RNL) on 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. This example is only applicable for Direct Routing phone numbers. - - - - -------------------------- Example 12 -------------------------- - Set-CsPhoneNumberAssignment -Identity user1@contoso.com -PhoneNumber '+14255551234' -PhoneNumberType CallingPlan -AssignmentCategory Private - - 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/microsoftteams/set-csphonenumberassignment - - - Remove-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csphonenumberassignment - - - Get-CsPhoneNumberAssignment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csphonenumberassignment - - - - - - Set-CsPhoneNumberPolicyAssignment - Set - CsPhoneNumberPolicyAssignment - - This cmdlet assigns a policy to a specific telephone number in Microsoft Teams. - - - - 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-CsPhoneNumberPolicyAssignment - - TelephoneNumber - - Specifies the telephone number to which the policy will be assigned. - - System.String - - System.String - - - None - - - PolicyType - - Indicates the type of policy being assigned. - - System.String - - System.String - - - None - - - PolicyName - - 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 - - - - - - TelephoneNumber - - Specifies the telephone number to which the policy will be assigned. - - System.String - - System.String - - - None - - - PolicyType - - Indicates the type of policy being assigned. - - System.String - - System.String - - - None - - - PolicyName - - 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 - - String - - - None - - - - - - None - - - - - - - - - - System.Boolean - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - 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 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/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 - - - New-CsTagsTemplate - - - - Get-CsTagsTemplate - - - - Remove-CsTagsTemplate - - - - New-CsTag - - - - - - - Set-CsTeamsAudioConferencingPolicy - Set - CsTeamsAudioConferencingPolicy - - Audio conferencing policies can be used to manage audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. - - - - The Set-CsTeamsAudioConferencingPolicy cmdlet enables administrators to control audio conferencing toll- and toll-free numbers to be displayed in meeting invites created by users within your organization. The Set-CsTeamsAudioConferencingPolicy can be used to update an audio-conferencing policy that has been configured for use in your organization. - - - - Set-CsTeamsAudioConferencingPolicy - - Identity - - Unique identifier for the policy to be Set. To set the global policy, use this syntax: -Identity global. To set a per-user policy use syntax similar to this: -Identity "Emea Users". If this parameter is not included, the Set-CsTeamsAudioConferencingPolicy cmdlet will modify the Global policy. - - String - - String - - - None - - - AllowTollFreeDialin - - Determines if users of this Policy can have Toll free numbers. 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. - - Boolean - - Boolean - - - True - - - 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 - - - MeetingInvitePhoneNumbers - - Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsAudioConferencingPolicy - - AllowTollFreeDialin - - Determines if users of this Policy can have Toll free numbers. 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. - - Boolean - - Boolean - - - True - - - 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 - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - MeetingInvitePhoneNumbers - - Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowTollFreeDialin - - Determines if users of this Policy can have Toll free numbers. 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. - - Boolean - - Boolean - - - True - - - 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 - - - Identity - - Unique identifier for the policy to be Set. To set the global policy, use this syntax: -Identity global. To set a per-user policy use syntax similar to this: -Identity "Emea Users". If this parameter is not included, the Set-CsTeamsAudioConferencingPolicy cmdlet will modify the Global policy. - - String - - String - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - MeetingInvitePhoneNumbers - - Determines the list of audio-conferencing Toll- and Toll-free telephone numbers that will be included in meetings invites created by users of this policy. If no phone numbers are specified, then the phone number that is displayed in meeting invites created by users would be based on the location of the users. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - PSObject - - - - - - - - - - Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Set-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $False - - In this example, AllowTollFreeDialin is set to false. All other policy properties will be left as previously assigned. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Set-CsTeamsAudioConferencingPolicy -Identity "EMEA Users" -AllowTollFreeDialin $True -MeetingInvitePhoneNumbers "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" - - In this example, two different property values are configured: AllowTollFreeDialIn is set to True and -MeetingInvitePhoneNumbers is set to include the following Toll and Toll free numbers - "+49695095XXXXX","+353156YYYYY","+1800856ZZZZZ" other policy properties will be left as previously assigned. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsaudioconferencingpolicy - - - Get-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsaudioconferencingpolicy - - - New-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsaudioconferencingpolicy - - - Grant-CsTeamsAudioConferencingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsaudioconferencingpolicy - - - - - - Set-CsTeamsCallParkPolicy - Set - CsTeamsCallParkPolicy - - 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. - - - - Set-CsTeamsCallParkPolicy - - - Set-CsTeamsCallParkPolicy - - - Set-CsTeamsCallParkPolicy - - Identity - - The unique identifier of the policy being updated. - - XdsIdentity - - XdsIdentity - - - None - - - AllowCallPark - - If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Description of the policy. - - String - - String - - - None - - - Force - - Suppress all non-fatal errors - - - SwitchParameter - - - False - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - ParkTimeoutSeconds - - 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 - - - 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 - - Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. - - Integer - - Integer - - - 10 - - - 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 - - - - Set-CsTeamsCallParkPolicy - - AllowCallPark - - If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Description of the policy. - - String - - String - - - None - - - Force - - Suppress all non-fatal errors - - - SwitchParameter - - - False - - - Instance - - This parameter is used when piping a specific policy retrieved from Get-CsTeamsCallParkPolicy that you then want to update. - - PSObject - - PSObject - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - ParkTimeoutSeconds - - 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 - - - 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 - - Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. - - Integer - - Integer - - - 10 - - - 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 - - - - - - AllowCallPark - - If set to true, customers will be able to leverage the call park feature to place calls on hold and then decide how the call should be handled - transferred to another department, retrieved using the same phone, or retrieved using a different phone. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Description of the policy. - - String - - String - - - None - - - Force - - Suppress all non-fatal errors - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The unique identifier of the policy being updated. - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - This parameter is used when piping a specific policy retrieved from Get-CsTeamsCallParkPolicy that you then want to update. - - PSObject - - PSObject - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - ParkTimeoutSeconds - - 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 - - - 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 - - Specify the minimum value that a rendered pickup code can take. Value can be from 10 to 9999. - Note: PickupRangeStart must be smaller than PickupRangeEnd. - - Integer - - Integer - - - 10 - - - 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 - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsCallParkPolicy -Identity SalesPolicy -AllowCallPark $true - - Update the existing policy "SalesPolicy" to enable the call park feature. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTeamsCallParkPolicy -Identity "SalesPolicy" -PickupRangeStart 500 -PickupRangeEnd 1500 - - Update the existing policy "SalesPolicy" to generate pickup numbers starting from 500 and up until 1500. - - - - -------------------------- Example 3 -------------------------- - PS C:\> New-CsTeamsCallParkPolicy -Identity "SalesPolicy" -ParkTimeoutSeconds 600 - - Update the existing policy "SalesPolicy" to ring back the parker after 600 seconds if the parked call is unanswered - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamscallparkpolicy - - - - - - Set-CsTeamsCortanaPolicy - Set - CsTeamsCortanaPolicy - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. - - - - The CsTeamsCortanaPolicy cmdlets enable administrators to control settings for Cortana voice assistant in Microsoft Teams. Specifically, these specify if a user can use Cortana voice assistant in Microsoft Teams and Cortana invocation behavior via CortanaVoiceInvocationMode parameter - * Disabled - Cortana voice assistant is disabled - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - - - Set-CsTeamsCortanaPolicy - - 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 - - - AllowCortanaAmbientListening - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaInContextSuggestions - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaVoiceInvocation - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CortanaVoiceInvocationMode - - The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - String - - String - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - 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 - - - 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 - - - False - - - - Set-CsTeamsCortanaPolicy - - AllowCortanaAmbientListening - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaInContextSuggestions - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaVoiceInvocation - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CortanaVoiceInvocationMode - - The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - String - - String - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - 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 - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - - False - - - - - - AllowCortanaAmbientListening - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaInContextSuggestions - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - AllowCortanaVoiceInvocation - - This parameter is reserved for internal Microsoft use. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - CortanaVoiceInvocationMode - - The value of this field indicates if Cortana is enabled and mode of invocation. * Disabled - Cortana voice assistant is turned off and cannot be used. - * PushToTalkUserOverride - Cortana voice assistant is enabled but without wake-word ("Hey Cortana") invocation - * WakeWordPushToTalkUserOverride - Cortana voice assistant is enabled with wake-word ("Hey Cortana") invocation on devices where wake-word is supported - - String - - String - - - None - - - Description - - Provide a description of your policy to identify purpose of creating it. - - 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 - - - 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 - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsCortanaPolicy -Identity MyCortanaPolicy -CortanaVoiceInvocationMode Disabled - - In this example, Cortana voice assistant is set to disabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamscortanapolicy - - - - - - Set-CsTeamsEmergencyCallRoutingPolicy - Set - CsTeamsEmergencyCallRoutingPolicy - - This cmdlet modifies an existing Teams Emergency Call Routing Policy. - - - - This cmdlet modifies an existing Teams Emergency Call Routing Policy. Teams Emergency Call Routing policy is used for the life cycle of emergency call routing - emergency numbers and routing configuration - - - - Set-CsTeamsEmergencyCallRoutingPolicy - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy. - - String - - String - - - None - - - AllowEnhancedEmergencyServices - - Flag to enable Enhanced Emergency Services. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provides a description of the Teams Emergency Call Routing policy to identify the purpose of setting it. - - String - - String - - - None - - - EmergencyNumbers - - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowEnhancedEmergencyServices - - Flag to enable Enhanced Emergency Services. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Provides a description of the Teams Emergency Call Routing policy to identify the purpose of setting it. - - String - - String - - - None - - - EmergencyNumbers - - One or more emergency number objects obtained from the New-CsTeamsEmergencyNumber (https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber)cmdlet. - - Object - - Object - - - None - - - Identity - - The Identity parameter is a unique identifier that designates the name of the policy. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -AllowEnhancedEmergencyServices:$false -Description "test" - - This example modifies an existing Teams Emergency Call Routing Policy. - - - - -------------------------- Example 2 -------------------------- - $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "911" -EmergencyDialMask "933" -OnlinePSTNUsage "USE911" -$en2 = New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "9112" -OnlinePSTNUsage "DKE911" -Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{add=$en1,$en2} - - This example first creates new Teams emergency number objects and then adds these Teams emergency numbers to an existing Teams Emergency Call Routing policy. - - - - -------------------------- Example 3 -------------------------- - $en1 = New-CsTeamsEmergencyNumber -EmergencyDialString "112" -EmergencyDialMask "9112" -OnlinePSTNUsage "DKE911" -Set-CsTeamsEmergencyCallRoutingPolicy -Identity "Test" -EmergencyNumbers @{remove=$en1} - - This example first creates a new Teams emergency number object and then removes that Teams emergency number from an existing Teams Emergency Call Routing policy. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencycallroutingpolicy - - - Grant-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsemergencycallroutingpolicy - - - Remove-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsemergencycallroutingpolicy - - - Get-CsTeamsEmergencyCallRoutingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsemergencycallroutingpolicy - - - New-CsTeamsEmergencyNumber - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsemergencynumber - - - - - - Set-CsTeamsEnhancedEncryptionPolicy - Set - CsTeamsEnhancedEncryptionPolicy - - Use this cmdlet to update values in existing Teams enhanced encryption policy. - - - - Use this cmdlet to update values in existing Teams enhanced encryption policy. - The TeamsEnhancedEncryptionPolicy enables administrators to determine which users in your organization can use the enhanced encryption settings in Teams, setting for end-to-end encryption in ad-hoc 1-to-1 VOIP calls is the parameter supported by this policy currently. - - - - Set-CsTeamsEnhancedEncryptionPolicy - - 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 - - - CallingEndtoEndEncryptionEnabledType - - 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. - - Enum - - Enum - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - Instance - - Use this to pipe a specific enhanced encryption policy to be set. You can only modify the global policy, so can only pass the global instance of the enhanced encryption policy. - - Object - - Object - - - None - - - MeetingEndToEndEncryption - - 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 - - - False - - - - - - CallingEndtoEndEncryptionEnabledType - - 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. - - Enum - - Enum - - - Disabled - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - 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 - - - Force - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - 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 - - Use this to pipe a specific enhanced encryption policy to be set. You can only modify the global policy, so can only pass the global instance of the enhanced encryption policy. - - Object - - Object - - - None - - - MeetingEndToEndEncryption - - 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 - - SwitchParameter - - - False - - - - - - System.Object - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -CallingEndtoEndEncryptionEnabledType DisabledUserOverride - - The command shown in Example 1 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. - This policy is re-assigned CallingEndtoEndEncryptionEnabledType to be DisabledUserOverride. - Any Microsoft Teams users who are assigned this policy will have their enhanced encryption policy customized such that the user can use the enhanced encryption setting in Teams. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -MeetingEndToEndEncryption DisabledUserOverride - - The command shown in Example 2 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. - This policy has re-assigned MeetingEndToEndEncryption to be DisabledUserOverride. - Any Microsoft Teams users who are assigned this policy and have a Teams Premium license will have the option to create end-to-end encrypted meetings. Learn more about end-to-end encryption for Teams meetings (https://support.microsoft.com/en-us/office/use-end-to-end-encryption-for-teams-meetings-a8326d15-d187-49c4-ac99-14c17dbd617c). - - - - -------------------------- EXAMPLE 3 -------------------------- - PS C:\> Set-CsTeamsEnhancedEncryptionPolicy -Identity "ContosoPartnerTeamsEnhancedEncryptionPolicy" -Description "allow useroverride" - - The command shown in Example 2 modifies an existing per-user Teams enhanced encryption policy with the Identity ContosoPartnerTeamsEnhancedEncryptionPolicy. - This policy is re-assigned the description from its existing value to "allow useroverride". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsenhancedencryptionpolicy - - - Get-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsenhancedencryptionpolicy - - - New-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsenhancedencryptionpolicy - - - Remove-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsenhancedencryptionpolicy - - - Grant-CsTeamsEnhancedEncryptionPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsenhancedencryptionpolicy - - - - - - Set-CsTeamsEventsPolicy - Set - CsTeamsEventsPolicy - - This cmdlet allows you to configure options for customizing Teams events experiences. Note that this policy is currently still in preview. - - - - User-level policy for tenant admin to configure options for customizing Teams events experiences. Use this cmdlet to update an existing policy. - - - - Set-CsTeamsEventsPolicy - - Identity - - Unique identifier assigned to the Teams Events policy. - - String - - String - - - None - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - None - - - AllowedWebinarTypesForRecordingPublish - - 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. - - String - - String - - - 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 - - - None - - - AllowEventIntegrations - - 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 - - - None - - - 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 - - - None - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - SwitchParameter - - - False - - - Confirm - - The Confirm switch does not work with this cmdlet. - - - 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 - - Enables administrators to provide explanatory text to accompany a Teams Events policy. - - String - - String - - - None - - - EventAccessType - - > [!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 - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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. - - Boolean - - Boolean - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowedQuestionTypesInRegistrationForm - - 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 - - - None - - - AllowedTownhallTypesForRecordingPublish - - 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 - - String - - - None - - - AllowedWebinarTypesForRecordingPublish - - 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. - - String - - String - - - 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 - - - None - - - AllowEventIntegrations - - 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 - - - None - - - 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 - - - None - - - BroadcastPremiumApps - - 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 - - - Enabled - - - Confirm - - The Confirm switch does not work with this cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - Enables administrators to provide explanatory text to accompany a Teams Events policy. - - String - - String - - - None - - - EventAccessType - - > [!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 - - String - - - None - - - 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 - - String - - - Enabled - - - RecordingForTownhall - - 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 - - - Enabled - - - RecordingForWebinar - - 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 - - - Enabled - - - TownhallChatExperience - - This setting governs whether the user can enable the Comment Stream chat experience for Town Halls. - Possible values are: Optimized, None. - - String - - String - - - None - - - 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 - - - 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 - - String - - - Enabled - - - TranscriptionForWebinar - - 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. - - Boolean - - Boolean - - - 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 - - The WhatIf switch does not work with this cmdlet. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsEventsPolicy -Identity Global -AllowWebinars Disabled - - The command shown in Example 1 sets the value of the Default (Global) Events Policy in the organization to disable webinars, and leaves all other parameters the same. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamseventspolicy - - - - - - Set-CsTeamsGuestCallingConfiguration - Set - CsTeamsGuestCallingConfiguration - - Allows admins to set values in the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. - - - - Allows admins to set values in the GuestCallingConfiguration, which specifies what options guest users have for calling within Teams. This policy primarily allows admins to disable calling for guest users within Teams. - - - - Set-CsTeamsGuestCallingConfiguration - - Identity - - The only option is Global - - XdsIdentity - - XdsIdentity - - - None - - - AllowPrivateCalling - - Designates whether guests who have been enabled for Teams can use calling functionality. If $false, guests cannot call. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass confirmation - - - SwitchParameter - - - False - - - Instance - - Internal Microsoft use - - PSObject - - PSObject - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowPrivateCalling - - Designates whether guests who have been enabled for Teams can use calling functionality. If $false, guests cannot call. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Bypass confirmation - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The only option is Global - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Internal Microsoft use - - PSObject - - PSObject - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsGuestCallingConfiguration -Identity Global -AllowPrivateCalling $false - - In this example, the admin has disabled private calling for guests in his organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestcallingconfiguration - - - - - - Set-CsTeamsGuestMeetingConfiguration - Set - CsTeamsGuestMeetingConfiguration - - Designates what meeting features guests using Microsoft Teams will have available. Use this cmdlet to set the configuration. - - - - The TeamsGuestMeetingConfiguration designates which meeting features guests leveraging Microsoft Teams will have available. This configuration will apply to all guests utilizing Microsoft Teams. Use the Set-CsTeamsGuestMeetingConfiguration cmdlet to designate what values are set for your organization. - - - - Set-CsTeamsGuestMeetingConfiguration - - Identity - - The only input allowed is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow guests to share their video. Set this to FALSE to prohibit guests from sharing their video - - Boolean - - Boolean - - - None - - - AllowMeetNow - - Determines whether guests can start ad-hoc meetings. Set this to TRUE to allow guests to start ad-hoc meetings. Set this to FALSE to prohibit guests from starting ad-hoc meetings. - - Boolean - - Boolean - - - 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 - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses all non fatal errors. - - - SwitchParameter - - - False - - - Instance - - Pipe the existing configuration from a Get- call. - - PSObject - - PSObject - - - None - - - LiveCaptionsEnabledType - - Determines whether real-time captions are available for guests in Teams meetings. Set this to DisabledUserOverride to allow guests to turn on live captions. Set this to Disabled to prohibit. - - String - - String - - - DisabledUserOverride - - - ScreenSharingMode - - Determines the mode in which guests can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens - - String - - String - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow guests to share their video. Set this to FALSE to prohibit guests from sharing their video - - Boolean - - Boolean - - - None - - - AllowMeetNow - - Determines whether guests can start ad-hoc meetings. Set this to TRUE to allow guests to start ad-hoc meetings. Set this to FALSE to prohibit guests from starting ad-hoc meetings. - - Boolean - - Boolean - - - 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 - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses all non fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The only input allowed is "Global" - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - Pipe the existing configuration from a Get- call. - - PSObject - - PSObject - - - None - - - LiveCaptionsEnabledType - - Determines whether real-time captions are available for guests in Teams meetings. Set this to DisabledUserOverride to allow guests to turn on live captions. Set this to Disabled to prohibit. - - String - - String - - - DisabledUserOverride - - - ScreenSharingMode - - Determines the mode in which guests can share a screen in calls or meetings. Set this to SingleApplication to allow the user to share an application at a given point in time. Set this to EntireScreen to allow the user to share anything on their screens. Set this to Disabled to prohibit the user from sharing their screens - - String - - String - - - None - - - Tenant - - Internal Microsoft use - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsGuestMeetingConfiguration -Identity Global -AllowMeetNow $false -AllowIPVideo $false - - Disables Guests' usage of MeetNow and Video calling in the organization; all other values of the configuration are left as is. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmeetingconfiguration - - - - - - Set-CsTeamsGuestMessagingConfiguration - Set - CsTeamsGuestMessagingConfiguration - - TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. - - - - TeamsGuestMessagingConfiguration determines the messaging settings for the guest users. This cmdlet lets you update the guest messaging options you'd like to enable in your organization. - - - - Set-CsTeamsGuestMessagingConfiguration - - Identity - - {{ Fill Identity Description }} - - XdsIdentity - - XdsIdentity - - - None - - - AllowGiphy - - Determines if Giphy images are available. - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines if immersive reader for viewing messages is enabled. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines if memes are available for use. - - Boolean - - Boolean - - - None - - - AllowStickers - - Determines if stickers are available for use. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines if a user is allowed to chat. - - Boolean - - Boolean - - - 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 - - Determines if a user is allowed to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines if a user is allowed to edit their own messages. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppresses all non-fatal errors. - - - SwitchParameter - - - False - - - GiphyRatingType - - Determines Giphy content restrictions. Default value is "Moderate", other options are "NoRestriction" and "Strict" - - String - - String - - - None - - - Instance - - {{ Fill Instance Description }} - - PSObject - - PSObject - - - None - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowGiphy - - Determines if Giphy images are available. - - Boolean - - Boolean - - - None - - - AllowImmersiveReader - - Determines if immersive reader for viewing messages is enabled. - - Boolean - - Boolean - - - None - - - AllowMemes - - Determines if memes are available for use. - - Boolean - - Boolean - - - None - - - AllowStickers - - Determines if stickers are available for use. - - Boolean - - Boolean - - - None - - - AllowUserChat - - Determines if a user is allowed to chat. - - Boolean - - Boolean - - - 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 - - Determines if a user is allowed to delete their own messages. - - Boolean - - Boolean - - - None - - - AllowUserEditMessage - - Determines if a user is allowed to edit their own messages. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppresses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - GiphyRatingType - - Determines Giphy content restrictions. Default value is "Moderate", other options are "NoRestriction" and "Strict" - - String - - String - - - None - - - Identity - - {{ Fill Identity Description }} - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - {{ Fill Instance Description }} - - PSObject - - PSObject - - - None - - - Tenant - - {{ Fill Tenant Description }} - - Guid - - Guid - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsGuestMessagingConfiguration -AllowMemes $False - - The command shown in Example 1 disables memes usage by guests within Teams. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsguestmessagingconfiguration - - - - - - Set-CsTeamsIPPhonePolicy - Set - CsTeamsIPPhonePolicy - - Set-CsTeamsIPPhonePolicy enables you to modify the properties of an existing Teams phone policy settings. - - - - Set-CsTeamsIPPhonePolicy enables you to modify the properties of an existing TeamsIPPhonePolicy. - - - - Set-CsTeamsIPPhonePolicy - - Identity - - The identity of the policy. To specify the global policy for the organization, use "global". To specify any other policy provide the name of that policy. - - XdsIdentity - - XdsIdentity - - - None - - - AllowBetterTogether - - Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: - - Enabled - - Disabled - - String - - String - - - Enabled - - - AllowHomeScreen - - Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: - - Enabled - - EnabledUserOverride - - Disabled - - String - - String - - - EnabledUserOverride - - - AllowHotDesking - - Determines if the hot desking feature is enabled or not. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Free form text that can be used by administrators as desired. - - String - - 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 - - - HotDeskingIdleTimeoutInMinutes - - Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. - - Int - - Int - - - None - - - SearchOnCommonAreaPhoneMode - - Determines whether a user can look up contacts from the tenant's global address book when the phone is signed into the Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. - - String - - String - - - None - - - SignInMode - - Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' - - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' - - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowBetterTogether - - Determines whether Better Together mode is enabled, phones can lock and unlock in an integrated fashion when connected to their Windows PC running a 64-bit Teams desktop client. Possible values this parameter can take: - - Enabled - - Disabled - - String - - String - - - Enabled - - - AllowHomeScreen - - Determines whether the Home Screen feature of the Teams IP Phones is enabled. Possible values this parameter can take: - - Enabled - - EnabledUserOverride - - Disabled - - String - - String - - - EnabledUserOverride - - - AllowHotDesking - - Determines if the hot desking feature is enabled or not. Set this to TRUE to enable. Set this to FALSE to disable hot desking mode. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Free form text that can be used by administrators as desired. - - String - - 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 - - SwitchParameter - - - False - - - HotDeskingIdleTimeoutInMinutes - - Determines the idle timeout value in minutes for the signed in user account. When the timeout is reached, the account is logged out. - - Int - - Int - - - None - - - Identity - - The identity of the policy. To specify the global policy for the organization, use "global". To specify any other policy provide the name of that policy. - - XdsIdentity - - XdsIdentity - - - None - - - SearchOnCommonAreaPhoneMode - - Determines whether a user can look up contacts from the tenant's global address book when the phone is signed into the Common Area Phone Mode. Set this to ENABLED to enable the feature. Set this to DISABLED to disable the feature. - - String - - String - - - None - - - SignInMode - - Determines the sign in mode for the device when signing in to Teams. Possible Values: - 'UserSignIn: Enables the individual user's Teams experience on the phone' - - 'CommonAreaPhoneSignIn: Enables a Common Area Phone experience on the phone' - - 'MeetingSignIn: Enables the meeting/conference room experience on the phone' - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsIPPhonePolicy -Identity CommonAreaPhone -SignInMode CommonAreaPhoneSignin - - This example shows the SignInMode "CommonAreaPhoneSignIn" being set against the policy named "CommonAreaPhone". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsipphonepolicy - - - - - - Set-CsTeamsMeetingBroadcastConfiguration - Set - CsTeamsMeetingBroadcastConfiguration - - Changes the Teams meeting broadcast configuration settings for the specified tenant. - - - - Tenant level configuration for broadcast events in Teams - - - - Set-CsTeamsMeetingBroadcastConfiguration - - Identity - - You can only have one configuration - "Global" - - XdsIdentity - - XdsIdentity - - - None - - - AllowSdnProviderForBroadcastMeeting - - If set to $true, Teams meeting broadcast streams are enabled to take advantage of the network and bandwidth management capabilities of your Software Defined Network (SDN) provider. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Suppress all non-fatal errors - - - SwitchParameter - - - False - - - Instance - - You can pass in the output from Get-CsTeamsMeetingBroadcastConfiguration as input to this cmdlet (instead of Identity) - - PSObject - - PSObject - - - None - - - SdnApiTemplateUrl - - Specifies the Software Defined Network (SDN) provider's HTTP API endpoint. This information is provided to you by the SDN provider. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnApiToken - - Specifies the Software Defined Network (SDN) provider's authentication token which is required to use their SDN license. This is required by some SDN providers who will give you the required token. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnLicenseId - - Specifies the Software Defined Network (SDN) license identifier. This is required and provided by some SDN providers. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnProviderName - - Specifies the Software Defined Network (SDN) provider's name. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnRuntimeConfiguration - - Specifies connection parameters used to connect with a 3rd party eCDN provider. These parameters should be obtained from the SDN provider to be used. - - String - - String - - - None - - - SupportURL - - Specifies a URL where broadcast event attendees can find support information or FAQs specific to that event. The URL will be displayed to the attendees during the broadcast. - - String - - String - - - None - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowSdnProviderForBroadcastMeeting - - If set to $true, Teams meeting broadcast streams are enabled to take advantage of the network and bandwidth management capabilities of your Software Defined Network (SDN) provider. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Suppress all non-fatal errors - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - You can only have one configuration - "Global" - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - You can pass in the output from Get-CsTeamsMeetingBroadcastConfiguration as input to this cmdlet (instead of Identity) - - PSObject - - PSObject - - - None - - - SdnApiTemplateUrl - - Specifies the Software Defined Network (SDN) provider's HTTP API endpoint. This information is provided to you by the SDN provider. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnApiToken - - Specifies the Software Defined Network (SDN) provider's authentication token which is required to use their SDN license. This is required by some SDN providers who will give you the required token. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnLicenseId - - Specifies the Software Defined Network (SDN) license identifier. This is required and provided by some SDN providers. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnProviderName - - Specifies the Software Defined Network (SDN) provider's name. This parameter is only required if AllowSdnProviderForBroadcastMeeting is set to $true. - - String - - String - - - None - - - SdnRuntimeConfiguration - - Specifies connection parameters used to connect with a 3rd party eCDN provider. These parameters should be obtained from the SDN provider to be used. - - String - - String - - - None - - - SupportURL - - Specifies a URL where broadcast event attendees can find support information or FAQs specific to that event. The URL will be displayed to the attendees during the broadcast. - - String - - String - - - None - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastconfiguration - - - - - - Set-CsTeamsMeetingBroadcastPolicy - Set - CsTeamsMeetingBroadcastPolicy - - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. - - - - User-level policy for tenant admin to configure meeting broadcast behavior for the broadcast event organizer. Use this cmdlet to update an existing policy. - - - - Set-CsTeamsMeetingBroadcastPolicy - - Identity - - Unique identifier for the policy to be modified. Policies can be configured at the global or per-user scopes. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity SalesPolicy. - Note that wildcards are not allowed when specifying an Identity. If you do not specify an Identity the cmdlet will automatically modify the global policy. - - XdsIdentity - - XdsIdentity - - - None - - - AllowBroadcastScheduling - - Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. - - Boolean - - Boolean - - - None - - - AllowBroadcastTranscription - - Specifies whether real-time transcription and translation can be enabled in the broadcast event. - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - Boolean - - Boolean - - - None - - - BroadcastAttendeeVisibilityMode - - Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - Possible values: - Everyone - - EveryoneInCompany - - InvitedUsersInCompany - - EveryoneInCompanyAndExternal - - InvitedUsersInCompanyAndExternal - - String - - String - - - None - - - BroadcastRecordingMode - - Specifies whether broadcast events created by this user are always recorded (AlwaysEnabled), never recorded (AlwaysDisabled) or user can choose whether to record or not (UserOverride). - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - Possible values: - AlwaysEnabled - - AlwaysDisabled - - UserOverride - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Enables administrators to provide additional text about the conferencing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - - SwitchParameter - - - False - - - Instance - - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - None - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AllowBroadcastScheduling - - Specifies whether this user can create broadcast events in Teams. This setting impacts broadcasts that use both self-service and external encoder production methods. - - Boolean - - Boolean - - - None - - - AllowBroadcastTranscription - - Specifies whether real-time transcription and translation can be enabled in the broadcast event. - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - - Boolean - - Boolean - - - None - - - BroadcastAttendeeVisibilityMode - - Specifies the attendee visibility mode of the broadcast events created by this user. This setting controls who can watch the broadcast event - e.g. anyone can watch this event including anonymous users or only authenticated users in my company can watch the event. - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - Possible values: - Everyone - - EveryoneInCompany - - InvitedUsersInCompany - - EveryoneInCompanyAndExternal - - InvitedUsersInCompanyAndExternal - - String - - String - - - None - - - BroadcastRecordingMode - - Specifies whether broadcast events created by this user are always recorded (AlwaysEnabled), never recorded (AlwaysDisabled) or user can choose whether to record or not (UserOverride). - > [!NOTE] > This setting is applicable to broadcast events that use Teams Meeting production only and does not apply when external encoder is used as production method. - Possible values: - AlwaysEnabled - - AlwaysDisabled - - UserOverride - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Enables administrators to provide additional text about the conferencing policy. For example, the Description might indicate the users the policy should be assigned to. - - String - - String - - - None - - - Force - - Suppresses the display of any non-fatal error message that might occur when running the command. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Unique identifier for the policy to be modified. Policies can be configured at the global or per-user scopes. To modify the global policy, use this syntax: -Identity global. To modify a per-user policy, use syntax similar to this: -Identity SalesPolicy. - Note that wildcards are not allowed when specifying an Identity. If you do not specify an Identity the 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 - - - Tenant - - Not applicable to online service. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMeetingBroadcastPolicy -Identity Global -AllowBroadcastScheduling $false - - Sets the value of the Default (Global) Broadcast Policy in the organization to disable broadcast scheduling, and leaves all other parameters the same. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmeetingbroadcastpolicy - - - - - - Set-CsTeamsMobilityPolicy - Set - CsTeamsMobilityPolicy - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - - - - The TeamsMobilityPolicy allows Admins to control Teams mobile usage for users. - The Set-CsTeamsMobilityPolicy cmdlet allows administrators to update teams mobility policies. - - - - Set-CsTeamsMobilityPolicy - - Identity - - Specify the name of the policy that you are creating. - - XdsIdentity - - XdsIdentity - - - 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 - - - Force - - Bypasses all non-fatal errors. - - - SwitchParameter - - - False - - - IPAudioMobileMode - - 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 - - String - - - None - - - IPVideoMobileMode - - 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. - - String - - String - - - None - - - 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 - - - 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 - - - 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 - - Bypasses all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Specify the name of the policy that you are creating. - - XdsIdentity - - XdsIdentity - - - None - - - IPAudioMobileMode - - 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 - - String - - - None - - - IPVideoMobileMode - - 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. - - String - - String - - - None - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsMobilityPolicy -Identity SalesPolicy -IPVideoMobileMode "WifiOnly - - The command shown in Example 1 uses the Set-CsTeamsMobilityPolicy cmdlet to update an existing teams mobility policy with the Identity SalesPolicy. This SalesPolicy will not have IPVideoMobileMode equal to "WifiOnly". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsmobilitypolicy - - - - - - Set-CsTeamsNetworkRoamingPolicy - Set - CsTeamsNetworkRoamingPolicy - - Set-CsTeamsNetworkRoamingPolicy allows IT Admins to create or update policies for Network Roaming and Bandwidth Control experiences in Microsoft Teams. - - - - Updates or creates new Teams Network Roaming Policies configured for use in your organization. - The TeamsNetworkRoamingPolicy cmdlets enable administrators to provide specific settings from the TeamsMeetingPolicy to be rendered dynamically based upon the location of the Teams client. The TeamsNetworkRoamingPolicy cannot be granted to a user but instead can be assigned to a network site. The settings from the TeamsMeetingPolicy included are AllowIPVideo and MediaBitRateKb. When a Teams client is connected to a network site where a CsTeamRoamingPolicy is assigned, these two settings from the TeamsRoamingPolicy will be used instead of the settings from the TeamsMeetingPolicy. - More on the impact of bit rate setting on bandwidth can be found here (https://learn.microsoft.com/microsoftteams/prepare-network). - To enable the network roaming policy for users who are not Enterprise Voice enabled, you must also enable the AllowNetworkConfigurationSettingsLookup setting in TeamsMeetingPolicy. This setting is off by default. See Set-TeamsMeetingPolicy for more information on how to enable AllowNetworkConfigurationSettingsLookup for users who are not Enterprise Voice enabled. - - - - Set-CsTeamsNetworkRoamingPolicy - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - True - - - Description - - Description of the policy to be edited. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be modified. - - XdsIdentity - - XdsIdentity - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - Integer - - Integer - - - 50000 - - - - - - AllowIPVideo - - Determines whether video is enabled in a user's meetings or calls. Set this to TRUE to allow the user to share their video. Set this to FALSE to prohibit the user from sharing their video. - - Boolean - - Boolean - - - True - - - Description - - Description of the policy to be edited. - - String - - String - - - None - - - Identity - - Unique identifier of the policy to be modified. - - XdsIdentity - - XdsIdentity - - - None - - - MediaBitRateKb - - Determines the media bit rate for audio/video/app sharing transmissions in meetings. - - Integer - - Integer - - - 50000 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsNetworkRoamingPolicy -Identity "RedmondRoaming" -AllowIPVideo $true -MediaBitRateKb 2000 -Description "Redmond campus roaming policy" - - The command shown in Example 1 updates the teams network roaming policy with Identity "RedmondRoaming" with IP Video feature enabled, and the maximum media bit rate is capped at 2000 Kbps. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsnetworkroamingpolicy - - - - - - Set-CsTeamsRoomVideoTeleConferencingPolicy - Set - CsTeamsRoomVideoTeleConferencingPolicy - - Modifies the property of an existing TeamsRoomVideoTeleConferencingPolicy. - - - - The Teams Room Video Teleconferencing Policy enables administrators to configure and manage video teleconferencing behavior for Microsoft Teams Rooms (meeting room devices). - - - - Set-CsTeamsRoomVideoTeleConferencingPolicy - - Identity - - Unique identifier for the policy to be modified. - - String - - String - - - None - - - AreaCode - - GUID provided by the CVI partner that the customer signed the agreement with - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Enabled - - The policy can exist for the tenant but it can be enabled or disabled. - - Boolean - - Boolean - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PlaceExternalCalls - - The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - PlaceInternalCalls - - The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveExternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveInternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant Value: Enabled, Disabled - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AreaCode - - GUID provided by the CVI partner that the customer signed the agreement with - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - 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 - - String - - - None - - - Enabled - - The policy can exist for the tenant but it can be enabled or disabled. - - Boolean - - Boolean - - - None - - - Identity - - Unique identifier for the policy to be modified. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - PlaceExternalCalls - - The IT admin can configure that their Teams rooms are enabled to place external calls or not, meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - PlaceInternalCalls - - The IT admin can configure that their Teams rooms are enabled to place internal calls or not. Meaning calls from the Microsoft Teams Rooms to Video teleconferencing devices that are within their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveExternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not, meaning calls from Video teleconferencing devices that are outside their own tenant. Value: Enabled, Disabled - - String - - String - - - None - - - ReceiveInternalCalls - - The IT admin can configure that their Teams rooms are enabled to receive external calls or not. Meaning calls from Video Teleconferencing devices from their own tenant Value: Enabled, Disabled - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsroomvideoteleconferencingpolicy - - - - - - Set-CsTeamsSettingsCustomApp - Set - CsTeamsSettingsCustomApp - - Set the Custom Apps Setting's value of Teams Admin Center. - - - - There is a switch for managing Custom Apps in the Org-wide App Settings page of Teams Admin Center. The command can set the value of this switch. If the isSideloadedAppsInteractionEnabled is set to true, the switch is enabled. So that the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. - - - - Set-CsTeamsSettingsCustomApp - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - isSideloadedAppsInteractionEnabled - - The value to Custom Apps Setting. If the value is true, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. - - Boolean - - Boolean - - - 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 - - - isSideloadedAppsInteractionEnabled - - The value to Custom Apps Setting. If the value is true, the custom apps can be uploaded as app packages and available in the organization's app store, vice versa. - - Boolean - - Boolean - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsSettingsCustomApp -isSideloadedAppsInteractionEnabled $True - - Set the value of Custom Apps Setting to true. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssettingscustomapp - - - Get-CsTeamsSettingsCustomApp - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamssettingscustomapp - - - - - - Set-CsTeamsShiftsAppPolicy - Set - CsTeamsShiftsAppPolicy - - Allows you to set or update properties of a Teams Shifts App Policy instance. - - - - The Teams Shifts app is designed to help frontline workers and their managers manage schedules and communicate effectively. - - - - Set-CsTeamsShiftsAppPolicy - - Identity - - Policy instance name. - - String - - String - - - None - - - AllowTimeClockLocationDetection - - Turns on the location detection. The time report will indicate whether workers are "on location" when they clocked in and out. Workers are considered as "on location" if they clock in or out within a 200-meter radius of the set location. - - Boolean - - Boolean - - - 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 - - - - - - AllowTimeClockLocationDetection - - Turns on the location detection. The time report will indicate whether workers are "on location" when they clocked in and out. Workers are considered as "on location" if they clock in or out within a 200-meter radius of the set location. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Policy instance name. - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsShiftsAppPolicy 'Default' -AllowTimeClockLocationDetection $False - - Change Settings on a Teams Shift App Policy (only works on Global policy) - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsapppolicy - - - - - - Set-CsTeamsShiftsConnection - Set - CsTeamsShiftsConnection - - This cmdlet sets an existing workforce management (WFM) connection. - - - - This cmdlet updates a Shifts WFM connection. It allows the admin to make changes to the settings such as the name and WFM URLs. Note that the update allows for, but does not require, the -ConnectorSpecificSettings.LoginPwd and ConnectorSpecificSettings.LoginUserName to be included. This cmdlet can update every input field except -ConnectorId and -ConnectionId. - - - - 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 - - The request body. - - IUpdateWfmConnectionRequest - - IUpdateWfmConnectionRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - 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 - - - - 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 - - The request body. - - IUpdateWfmConnectionRequest - - IUpdateWfmConnectionRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - 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 - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - Name - - The connection 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. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - - Break - - Wait for .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - Name - - The connection 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. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - - - 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 - - - Body - - The request body. - - IUpdateWfmConnectionRequest - - IUpdateWfmConnectionRequest - - - None - - - Break - - Wait for .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - None - - - Name - - The connection 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 - - SwitchParameter - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -PS C:\> $result = Set-CsTeamsShiftsConnection ` - -connectionId $connection.Id ` - -IfMatch $connection.Etag ` - -connectorId "6A51B888-FF44-4FEA-82E1-839401E00000" ` - -name "Cmdlet test connection - updated" ` - -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest ` - -Property @{ - adminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta2" - siteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta2" - essApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta1" - retailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1" - cookieAuthUrl = "https://contoso.com/retail/data/login" - federatedAuthUrl = "https://contoso.com/retail/data/login" - LoginUserName = "PlaceholderForUsername" - LoginPwd = "PlaceholderForPassword" - }) ` - -state "Active" - -PS C:\> $result | Format-List - -ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 -ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 -ConnectorSpecificSettingApiUrl : -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : -ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 -ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 -ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 -ConnectorSpecificSettingSsoUrl : -CreatedDateTime : 24/03/2023 04:58:23 -Etag : "5b00dd1b-0000-0400-0000-641d2df00000" -Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -LastModifiedDateTime : 24/03/2023 04:58:23 -Name : Cmdlet test connection - updated -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 - - Updates the instance with the specified -ConnectionId. Returns the object of the updated connection. - In case of an error, you can capture the error response as follows: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - -------------------------- Example 2 -------------------------- - PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 79964000-286a-4216-ac60-c795a426d61a -PS C:\> $result = Set-CsTeamsShiftsConnection ` - -connectionId $connection.Id ` - -IfMatch $connection.Etag ` - -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` - -name "Cmdlet test connection - updated" ` - -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` - -Property @{ - apiUrl = "https://www.contoso.com/api" - ssoUrl = "https://www.contoso.com/sso" - appKey = "PlaceholderForAppKey" - clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" - clientSecret = "PlaceholderForClientSecret" - LoginUserName = "PlaceholderForUsername" - LoginPwd = "PlaceholderForPassword" - }) ` - -state "Active" -PS C:\> $result | Format-List - -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -ConnectorSpecificSettingAdminApiUrl : -ConnectorSpecificSettingApiUrl : https://www.contoso.com/api -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W -ConnectorSpecificSettingCookieAuthUrl : -ConnectorSpecificSettingEssApiUrl : -ConnectorSpecificSettingFederatedAuthUrl : -ConnectorSpecificSettingRetailWebApiUrl : -ConnectorSpecificSettingSiteManagerUrl : -ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso -CreatedDateTime : 06/04/2023 11:05:39 -Etag : "3100fd6e-0000-0400-0000-642ea7840000" -Id : a2d1b091-5140-4dd2-987a-98a8b5338744 -LastModifiedDateTime : 06/04/2023 11:05:39 -Name : Cmdlet test connection - updated -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 - - Updates the instance with the specified -ConnectionId. Returns the object of the updated connection. - In case of an error, you can capture the error response as follows: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - Update-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - Set-CsTeamsShiftsConnectionInstance - Set - CsTeamsShiftsConnectionInstance - - This cmdlet updates a Shifts connection instance. - - - - This cmdlet updates a Shifts connection instance. It allows the admin to make changes to the settings in the instance such as name, enabled scenarios, and sync frequency. This cmdlet can update every input field except -ConnectorId and -ConnectorInstanceId. - - - - Set-CsTeamsShiftsConnectionInstance - - Body - - The request body - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ConnectorInstanceId - - The Id of the connector instance to be updated. - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - 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 - - - - Set-CsTeamsShiftsConnectionInstance - - Body - - The request body - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - - Set-CsTeamsShiftsConnectionInstance - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - DesignatedActorId - - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. - - 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 - - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - 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 - - - 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". - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsTeamsShiftsConnectionInstance - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - DesignatedActorId - - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. - - 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 - - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - 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". - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Body - - The request body - - IConnectorInstanceRequest - - IConnectorInstanceRequest - - - None - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - - DesignatedActorId - - Gets or sets the designated actor ID that App acts as for Shifts Graph API calls. - - 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 - - - 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 - - - IfMatch - - The value of the etag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter. - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - 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 - - - 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". - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $connectionInstance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 -PS C:\> $result = Set-CsTeamsShiftsConnectionInstance ` - -connectorInstanceId "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1" - -IfMatch $connectionInstance.Etag ` - -connectionId "79964000-286a-4216-ac60-c795a426d61a" ` - -name "Cmdlet test instance - updated" ` - -connectorAdminEmail @() ` - -designatedActorId "93f85765-47db-412d-8f06-9844718762a1" ` - -State "Active" ` - -syncFrequencyInMin "10" ` - -SyncScenarioOfferShiftRequest "FromWfmToShifts" ` - -SyncScenarioOpenShift "FromWfmToShifts" ` - -SyncScenarioOpenShiftRequest "FromWfmToShifts" ` - -SyncScenarioShift "FromWfmToShifts" ` - -SyncScenarioSwapRequest "FromWfmToShifts" ` - -SyncScenarioTimeCard "FromWfmToShifts" ` - -SyncScenarioTimeOff "FromWfmToShifts" ` - -SyncScenarioTimeOffRequest "FromWfmToShifts" ` - -SyncScenarioUserShiftPreference "Disabled" - -PS C:\> $result.ToJsonString() - -{ - "syncScenarios": { - "offerShiftRequest": "FromWfmToShifts", - "openShift": "FromWfmToShifts", - "openShiftRequest": "FromWfmToShifts", - "shift": "FromWfmToShifts", - "swapRequest": "FromWfmToShifts", - "timeCard": "FromWfmToShifts", - "timeOff": "FromWfmToShifts", - "timeOffRequest": "FromWfmToShifts", - "userShiftPreferences": "Disabled" - }, - "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", - "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", - "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", - "connectorAdminEmails": [ ], - "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", - "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", - "name": "Cmdlet test instance - updated", - "syncFrequencyInMin": 10, - "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", - "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", - "createdDateTime": "2023-04-07T10:54:01.8170000Z", - "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", - "state": "Active" -} - - Updates the instance with the specified -ConnectorInstanceId. Returns the object of the updated connector instance. - In case of error, we can capture the error response as following: - * Hold the cmdlet output in a variable: `$result=<CMDLET>` - * To get the entire error message in Json: `$result.ToJsonString()` - * To get the error object and object details: `$result, $result.Detail` - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Update-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance - - - Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - Set-CsTeamsSurvivableBranchAppliance - Set - CsTeamsSurvivableBranchAppliance - - 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 - - Identity - - The identity of the policy. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Description of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - Site - - The TenantNetworkSite where the SBA is located. - - 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 - - - Description - - Description of the policy. - - String - - String - - - None - - - Identity - - The identity of the policy. - - String - - String - - - None - - - MsftInternalProcessingMode - - For internal use only. - - String - - String - - - None - - - Site - - The TenantNetworkSite where the SBA is located. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliance - - - - - - Set-CsTeamsSurvivableBranchAppliancePolicy - Set - CsTeamsSurvivableBranchAppliancePolicy - - 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 - - Identity - - The identity of the policy. - - String - - String - - - None - - - BranchApplianceFqdns - - The FQDN of the SBA(s) in the site. - - Object - - Object - - - 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 - - - - - - BranchApplianceFqdns - - The FQDN of the SBA(s) in the site. - - Object - - Object - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The identity of the policy. - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamssurvivablebranchappliancepolicy - - - - - - Set-CsTeamsTargetingPolicy - Set - CsTeamsTargetingPolicy - - 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. - - - - Set-CsTeamsTargetingPolicy - - Identity - - Name of the policy instance to be updated. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - CustomTagsMode - - Determine whether Teams users can create tags in team. Set this to Enabled to allow users to create new tags. Set this to Disabled to prohibit them from creating new tags. - - String - - String - - - None - - - Description - - Pass in a new description if that field needs to be updated. - - String - - String - - - None - - - ManageTagsPermissionMode - - Determine whether team users can manage tag settings in Teams. Set this to EnabledTeamOwner to only allow Teams owners to manage tag settings in current Teams. Set this to EnabledTeamOwnerMember to allow Teams owners and Teams members to manage tag settings in current Teams. Set this to EnabledTeamOwnerMemberGuest to allow Teams owners, Teams members and guest users to manage tag settings in current Teams. Set this to MicrosoftDefault to user default setting in current Teams, which will be the same as EnabledTeamOwner. Set this to Disabled to prohibit all users from managing tag settings in current Teams. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - ShiftBackedTagsMode - - Determine whether Teams can have tags created by Shift App. Set this to Enabled to allow tags created by Shift App. Set this to Disabled to prohibit tags from Shift App. - - String - - String - - - None - - - TeamOwnersEditWhoCanManageTagsMode - - Determine whether Teams owners can change Tenant tag settings. Set this to Enabled to allow Teams owners to change Tenant tag settings for current Teams. Set this to Disabled to prohibit them from changing Tenant tag settings. - - 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 - - - CustomTagsMode - - Determine whether Teams users can create tags in team. Set this to Enabled to allow users to create new tags. Set this to Disabled to prohibit them from creating new tags. - - String - - String - - - None - - - Description - - Pass in a new description if that field needs to be updated. - - String - - String - - - None - - - Identity - - Name of the policy instance to be updated. - - String - - String - - - None - - - ManageTagsPermissionMode - - Determine whether team users can manage tag settings in Teams. Set this to EnabledTeamOwner to only allow Teams owners to manage tag settings in current Teams. Set this to EnabledTeamOwnerMember to allow Teams owners and Teams members to manage tag settings in current Teams. Set this to EnabledTeamOwnerMemberGuest to allow Teams owners, Teams members and guest users to manage tag settings in current Teams. Set this to MicrosoftDefault to user default setting in current Teams, which will be the same as EnabledTeamOwner. Set this to Disabled to prohibit all users from managing tag settings in current Teams. - - String - - String - - - None - - - MsftInternalProcessingMode - - For Internal use only. - - String - - String - - - None - - - ShiftBackedTagsMode - - Determine whether Teams can have tags created by Shift App. Set this to Enabled to allow tags created by Shift App. Set this to Disabled to prohibit tags from Shift App. - - String - - String - - - None - - - TeamOwnersEditWhoCanManageTagsMode - - Determine whether Teams owners can change Tenant tag settings. Set this to Enabled to allow Teams owners to change Tenant tag settings for current Teams. Set this to Disabled to prohibit them from changing Tenant tag settings. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsTargetingPolicy -Identity NewTagPolicy -CustomTagsMode Enabled - - The command shown in Example 1 uses the Set-CsTeamsTargetingPolicy cmdlet to update an existing Tenant tag setting with the CustomTagsMode Enabled. This flag will enable Teams users to create tags. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstargetingpolicy - - - Get-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstargetingpolicy - - - Remove-CsTargetingPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstargetingpolicy - - - - - - Set-CsTeamsTranslationRule - Set - CsTeamsTranslationRule - - Cmdlet to modify an existing normalization rule. - - - - You can use this cmdlet to modify an existing number manipulation rule. The rule can be used, for example, in the settings of your SBC (Set-CsOnlinePSTNGateway) to convert a callee or caller number to a desired format before entering or leaving Microsoft Phone System - - - - Set-CsTeamsTranslationRule - - 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 - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - A friendly description of the normalization rule. - - String - - String - - - None - - - Pattern - - A regular expression that caller or callee number must match in order for this rule to be applied. - - String - - String - - - None - - - Translation - - The regular expression pattern that will be applied to the number to convert it. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - A friendly description of the normalization rule. - - String - - String - - - 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 - - A regular expression that caller or callee number must match in order for this rule to be applied. - - String - - String - - - None - - - Translation - - The regular expression pattern that will be applied to the number to convert it. - - String - - String - - - None - - - WhatIf - - Describes what would happen if you executed the command without actually executing the command. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTeamsTranslationRule -Identity StripE164SeattleAreaCode -Pattern ^+12065555(\d{3})$ -Translation $1 - - This example modifies the rule that initially configured to strip +1206555 from any E.164 ten digits number. For example, +12065555555 translated to 5555 to a new pattern. Modified rule now only applies to three digit number (initially to four digits number) and adds one more number in prefix (+120655555 instead of +1206555) - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule - - - New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule - - - Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule - - - Test-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule - - - Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule - - - - - - Set-CsTeamsUnassignedNumberTreatment - Set - CsTeamsUnassignedNumberTreatment - - Changes a treatment for how calls to an unassigned number range should be routed. The call can be routed to a user, an application or to an announcement service where a custom message will be played to the caller. - - - - This cmdlet changes a treatment for how calls to an unassigned number range should be routed. - - - - Set-CsTeamsUnassignedNumberTreatment - - Identity - - The Id of the specific treatment. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Free format description of this treatment. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - 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.String - - System.String - - - None - - - TargetType - - The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. - - System.String - - System.String - - - 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.Int32 - - 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 - - Free format description of this treatment. - - System.String - - System.String - - - None - - - Identity - - The Id of the specific treatment. - - System.String - - System.String - - - 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. - - System.String - - System.String - - - 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.String - - System.String - - - None - - - TargetType - - The type of target used for the treatment. Allowed values are User, ResourceAccount and Announcement. - - System.String - - System.String - - - 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.Int32 - - 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 - - - - - - System.Object - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 2.5.1 or later. - Both inbound calls to Microsoft Teams and outbound calls from Microsoft Teams will have the called number checked against the unassigned number range. - To route calls to unassigned Microsoft Calling Plan subscriber numbers, your tenant needs to have available Communications Credits. - To route calls to unassigned Microsoft Calling Plan service numbers, your tenant needs to have at least one Microsoft Teams Phone Resource Account license. - If a specified pattern/range contains phone numbers that are assigned to a user or resource account in the tenant, calls to these phone numbers will be routed to the appropriate target and not routed to the specified unassigned number treatment. There are no other checks of the numbers in the range. If the range contains a valid external phone number, outbound calls from Microsoft Teams to that phone number will be routed according to the treatment. - - - - - -------------------------- Example 1 -------------------------- - $RAObjectId = (Get-CsOnlineApplicationInstance -Identity aa2@contoso.com).ObjectId -Set-CsTeamsUnassignedNumberTreatment -Identity MainAA -Target $RAObjectId - - This example changes the treatment MainAA to route the calls to the resource account aa2@contoso.com. - - - - -------------------------- Example 2 -------------------------- - $UserObjectId = (Get-CsOnlineUser -Identity user2@contoso.com).Identity -Set-CsTeamsUnassignedNumberTreatment -Identity User2PSTN -TargetType User -Target $UserObjectId - - This example changes the treatment User2PSTN to route the calls to the user user2@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment - - - Import-CsOnlineAudioFile - https://learn.microsoft.com/powershell/module/microsoftteams/import-csonlineaudiofile - - - Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment - - - Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment - - - New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment - - - Test-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment - - - - - - Set-CsTeamsWorkLoadPolicy - Set - CsTeamsWorkLoadPolicy - - This cmdlet sets the Teams Workload Policy value for current tenant. - - - - The TeamsWorkLoadPolicy determines the workloads like meeting, messaging, calling that are enabled and/or pinned for the user. - - - - Set-CsTeamsWorkLoadPolicy - - Identity - - The identity of the Teams Work Load Policy. - - String - - String - - - None - - - AllowCalling - - Determines if calling workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowCallingPinned - - Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeeting - - Determines if meetings workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeetingPinned - - Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessaging - - Determines if messaging workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessagingPinned - - Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - The description of the policy. - - 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 - - - False - - - - - - AllowCalling - - Determines if calling workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowCallingPinned - - Determines if calling workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeeting - - Determines if meetings workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMeetingPinned - - Determines if meetings workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessaging - - Determines if messaging workload is enabled in the Teams App. Possible values are True and False. - - Boolean - - Boolean - - - None - - - AllowMessagingPinned - - Determines if messaging workload is pinned to the teams navigation bar. Possible values are True and False. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - The description of the policy. - - String - - String - - - None - - - Identity - - The identity of the Teams Work Load Policy. - - 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 - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTeamsWorkLoadPolicy -Identity Global -AllowCalling Disabled - - This sets the Teams Workload Policy Global value of AllowCalling to disabled. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsworkloadpolicy - - - Remove-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsworkloadpolicy - - - Get-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsworkloadpolicy - - - New-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsworkloadpolicy - - - Grant-CsTeamsWorkLoadPolicy - https://learn.microsoft.com/powershell/module/microsoftteams/grant-csteamsworkloadpolicy - - - - - - Set-CsTenantBlockedCallingNumbers - Set - CsTenantBlockedCallingNumbers - - Use the Set-CsTenantBlockedCallingNumbers cmdlet to set tenant blocked calling numbers setting. - - - - Microsoft Direct Routing, Operator Connect and Calling Plans supports blocking of inbound calls from the public switched telephone network (PSTN). This feature allows a tenant-global list of number patterns to be defined so that the caller ID of every incoming PSTN call to the tenant can be checked against the list for a match. If a match is made, an incoming call is rejected. - The tenant blocked calling numbers includes a list of inbound blocked number patterns. Number patterns are managed through the CsInboundBlockedNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. - The tenant blocked calling numbers also includes a list of number patterns exempt from call blocking. Exempt number patterns are managed through the CsInboundExemptNumberPattern commands New, Get, Set, and Remove. You can manage a given pattern by using these cmdlets, including the ability to toggle the activation of a given pattern. - You can test your number blocking by using the Test-CsInboundBlockedNumberPattern command. - The scope of tenant blocked calling numbers is global across the given tenant. This command-let can also turn on/off the blocked calling numbers setting at the tenant level. - To get the current tenant blocked calling numbers setting, use Get-CsTenantBlockedCallingNumbers - - - - Set-CsTenantBlockedCallingNumbers - - Identity - - The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Enabled - - The switch to turn on or turn off the blocked calling numbers setting. - - Object - - Object - - - None - - - Force - - The Force switch overrides the confirmation prompt displayed. - - - SwitchParameter - - - False - - - InboundBlockedNumberPatterns - - The InboundBlockedNumberPatterns parameter contains the list of InboundBlockedNumberPatterns. - - Object - - Object - - - None - - - InboundExemptNumberPatterns - - The InboundExemptNumberPatterns parameter contains the list of InboundExemptNumberPatterns. - - Object - - Object - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet. - - Object - - Object - - - None - - - Name - - This parameter allows you to provide a name to the TenantBlockedCallingNumbers setting. - - Object - - Object - - - None - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - 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 - - - Enabled - - The switch to turn on or turn off the blocked calling numbers setting. - - Object - - Object - - - None - - - Force - - The Force switch overrides the confirmation prompt displayed. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - The Identity parameter is a unique identifier which identifies the TenantBlockedCallingNumbers to set. - - String - - String - - - None - - - InboundBlockedNumberPatterns - - The InboundBlockedNumberPatterns parameter contains the list of InboundBlockedNumberPatterns. - - Object - - Object - - - None - - - InboundExemptNumberPatterns - - The InboundExemptNumberPatterns parameter contains the list of InboundExemptNumberPatterns. - - Object - - Object - - - None - - - Instance - - Allows you to pass a reference to an object to the cmdlet. - - Object - - Object - - - None - - - Name - - This parameter allows you to provide a name to the TenantBlockedCallingNumbers setting. - - Object - - Object - - - None - - - Tenant - - This parameter is reserved for internal Microsoft use. - - Object - - Object - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTenantBlockedCallingNumbers -Enabled $false - - This example turns off the tenant blocked calling numbers setting. No inbound number will be blocked from this feature. - - - - -------------------------- Example 2 -------------------------- - Set-CsTenantBlockedCallingNumbers -Enabled $true - - This example turns on the tenant blocked calling numbers setting. Inbound calls will be blocked based on the list of blocked number patterns. - - - - -------------------------- Example 3 -------------------------- - Set-CsTenantBlockedCallingNumbers -Name "MyCustomBlockedCallingNumbersName" - - This example renames the current blocked calling numbers with "MyCustomBlockedCallingNumbersName". No change is made besides the Name field change. - - - - -------------------------- Example 4 -------------------------- - Set-CsTenantBlockedCallingNumbers -InboundBlockedNumberPatterns @((New-CsInboundBlockedNumberPattern -Name "AnonymousBlockedPattern" -Enabled $true -Pattern "^(?!)Anonymous")) - - This example sets the tenant blocked calling numbers with a new list of inbound blocked number patterns. There is a new InboundBlockedNumberPattern being created. The pattern name is "AnonymousBlockedPattern". The pattern is turned on. The pattern is a normalization rule which contains "Anonymous". - Note that if the current InboundBlockedNumberPatterns already contains a list of patterns while a new pattern needs to be created, this example will wipe out the existing patterns and only add the new one. Please save the current InboundBlockedNumberPatterns list before adding new patterns. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantblockedcallingnumbers - - - Get-CsTenantBlockedCallingNumbers - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantblockedcallingnumbers - - - Test-CsInboundBlockedNumberPattern - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - - - - Set-CsTenantDialPlan - Set - CsTenantDialPlan - - Use the `Set-CsTenantDialPlan` cmdlet to modify an existing tenant dial plan. - - - - The `Set-CsTenantDialPlan` cmdlet modifies an existing tenant dial plan. A tenant dial plan determines such things as which normalization rules are applied. 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. - - - - Set-CsTenantDialPlan - - Identity - - > Applicable: Microsoft Teams - The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. - - String - - String - - - 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 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 - - String - - - None - - - NormalizationRules - - > 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 - - List - - - None - - - 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 (()). - - 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 - - - False - - - - - - 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 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 - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The Identity parameter is a unique identifier that designates the name of the tenant dial plan to modify. - - String - - String - - - None - - - NormalizationRules - - > 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 - - List - - - None - - - 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 (()). - - 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 - - SwitchParameter - - - False - - - - - - - The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan cmdlet since they are no longer used. External access dialing is now handled implicitly using normalization rules of the dial plans. The Get-CsTenantDialPlan will still show the external access prefix in the form of a normalization rule of the dial plan. - - - - - -------------------------- Example 1 -------------------------- - $nr2 = Get-CsVoiceNormalizationRule -Identity "US/US Long Distance" -Set-CsTenantDialPlan -Identity vt1tenantDialPlan9 -NormalizationRules @{Add=$nr2} - - This example updates the vt1tenantDialPlan9 tenant dial plan to use the US/US Long Distance normalization rules. - - - - -------------------------- Example 2 -------------------------- - $DP = Get-CsTenantDialPlan -Identity Global -$NR = $DP.NormalizationRules | Where Name -eq "RedmondFourDigit") -$NR.Name = "RedmondRule" -Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules - - This example changes the name of a normalization rule. Keep in mind that changing the name also changes the name portion of the Identity. The `Set-CsVoiceNormalizationRule` cmdlet doesn't have a Name parameter, so in order to change the name, we first call the `Get-CsTenantDialPlan` cmdlet to retrieve the Dial Plan with the Identity Global and assign the returned object to the variable $DP. Then we filter the NormalizationRules Object for the rule RedmondFourDigit and assign the returned object to the variable $NR. We then assign the string RedmondRule to the Name property of the object. Finally, we pass the variable back to the NormalizationRules parameter of the `Set-CsTenantDialPlan` cmdlet to make the change permanent. - - - - -------------------------- Example 3 -------------------------- - $DP = Get-CsTenantDialPlan -Identity Global -$NR = $DP.NormalizationRules | Where Name -eq "RedmondFourDigit") -$DP.NormalizationRules.Remove($NR) -Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules - - This example removes a normalization rule. We utilize the same functionality as for Example 3 to manipulate the Normalization Rule Object and update it with the `Set-CsTenantDialPlan` cmdlet. We first call the `Get-CsTenantDialPlan` cmdlet to retrieve the Dial Plan with the Identity Global and assign the returned object to the variable $DP. Then we filter the NormalizationRules Object for the rule RedmondFourDigit and assign it to the variable $NR. Next, we remove this Object with the Remove Method from $DP.NormalizationRules. Finally, we pass the variable back to the NormalizationRules parameter of the `Set-CsTenantDialPlan` cmdlet to make the change permanent. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantdialplan - - - Grant-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/grant-cstenantdialplan - - - New-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantdialplan - - - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - Remove-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantdialplan - - - - - - Set-CsTenantFederationConfiguration - Set - CsTenantFederationConfiguration - - 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. - Administrators can use the `Set-CsTenantFederationConfiguration` cmdlet to enable and disable federation with other domains and federation with public providers. In addition, this cmdlet can be used to expressly indicate the domains that users can communicate with and/or the domains that users are not allowed to communicate with. However, administrators must use the `Set-CsTenantPublicProvider` cmdlet in order to indicate the public IM and presence providers that users can and cannot communicate with. - - - - Set-CsTenantFederationConfiguration - - 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"` - - XdsIdentity - - XdsIdentity - - - None - - - 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. - > [!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 - - Boolean - - - None - - - AllowedDomainsAsAList - - > 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. - - List - - List - - - None - - - 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 - - > 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 - - Boolean - - - None - - - AllowTeamsConsumer - - Allows federation with people using Teams with an account that's not managed by an organization. - - Boolean - - Boolean - - - True - - - AllowTeamsConsumerInbound - - Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization. When -AllowTeamsConsumer is enabled and this parameter is disabled, only the users in your organization will be able to discover and start communication with people using Teams with an account that's not managed by an organization, but they will not discover and start communications with users in your organization. - - Boolean - - Boolean - - - True - - - BlockAllSubdomains - - > 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. - - - SwitchParameter - - - False - - - BlockedDomains - - > 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 - - List - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - - SwitchParameter - - - 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 - - - False - - - Instance - - > Applicable: Microsoft Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - Boolean - - - None - - - 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: - `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. - - Guid - - Guid - - - None - - - 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 - - Boolean - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - - SwitchParameter - - - False - - - - - - 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. - > [!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 - - Boolean - - - None - - - AllowedDomainsAsAList - - > 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. - - List - - List - - - None - - - 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 - - > 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 - - Boolean - - - None - - - AllowTeamsConsumer - - Allows federation with people using Teams with an account that's not managed by an organization. - - Boolean - - Boolean - - - True - - - AllowTeamsConsumerInbound - - Allows people using Teams with an account that's not managed by an organization, to discover and start communication with users in your organization. When -AllowTeamsConsumer is enabled and this parameter is disabled, only the users in your organization will be able to discover and start communication with people using Teams with an account that's not managed by an organization, but they will not discover and start communications with users in your organization. - - Boolean - - Boolean - - - True - - - BlockAllSubdomains - - > 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. - - SwitchParameter - - SwitchParameter - - - False - - - BlockedDomains - - > 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 - - List - - - None - - - Confirm - - > Applicable: Microsoft Teams - Prompts you for confirmation before executing the command. - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - 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"` - - XdsIdentity - - XdsIdentity - - - None - - - Instance - - > Applicable: Microsoft Teams - Allows you to pass a reference to an object to the cmdlet rather than set individual parameter values. - - PSObject - - PSObject - - - 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 - - Boolean - - - None - - - 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: - `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. - - Guid - - Guid - - - None - - - 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 - - Boolean - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Describes what would happen if you executed the command without actually executing the command. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Input types - - - The `Set-CsTenantFederationConfiguration` cmdlet accepts pipelined instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings object. - - - - - - - Output types - - - None. Instead, the `Set-CsTenantFederationConfiguration` cmdlet modifies existing instances of the Microsoft.Rtc.Management.WritableConfig.Settings.Edge.TenantFederationSettings object. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -Set-CsTenantFederationConfiguration -BlockedDomains @{Replace=$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. - - - - -------------------------- Example 3 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -Set-CsTenantFederationConfiguration -BlockedDomains @{Remove=$x} - - The commands shown in Example 3 remove fabrikam.com from the list of domains blocked by the current tenant. To do this, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com. The resulting domain object is then stored in a variable named $x. - The second command in the example then uses the `Set-CsTenantFederationConfiguration` cmdlet and the Remove method to remove fabrikam.com from the blocked domains list for the specified tenant. - - - - -------------------------- Example 4 -------------------------- - $x = New-CsEdgeDomainPattern -Domain "fabrikam.com" - -Set-CsTenantFederationConfiguration -BlockedDomains @{Add=$x} - - The commands shown in Example 4 add the domain fabrikam.com to the list of domains blocked by the current tenant. To add a new blocked domain, the first command in the example uses the `New-CsEdgeDomainPattern` cmdlet to create a domain object for fabrikam.com. This object is stored in a variable named $x. - After the domain object has been created, the second command then uses the `Set-CsTenantFederationConfiguration` cmdlet and the Add method to add fabrikam.com to any domains already on the blocked domains list. - - - - -------------------------- Example 5 -------------------------- - Set-CsTenantFederationConfiguration -BlockedDomains $Null - - Example 5 shows how you can remove all the domains assigned to the blocked domains list for the current tenant. To do this, simply include the BlockedDomains parameter and set the parameter value to null ($Null). When this command completes, the blocked domain list will be cleared. - - - - -------------------------- 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 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 8 -------------------------- - $list = New-Object Collections.Generic.List[String] -$list.add("contoso.com") -$list.add("fabrikam.com") -Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Add=$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 9 -------------------------- - $list = New-Object Collections.Generic.List[String] -$list.add("contoso.com") -$list.add("fabrikam.com") -Set-CsTenantFederationConfiguration -AllowedDomainsAsAList @{Remove=$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 10 -------------------------- - Set-CsTenantFederationConfiguration -AllowTeamsConsumer $True -AllowTeamsConsumerInbound $False - - 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 11 -------------------------- - $list = New-Object Collections.Generic.List[String] -$list.add("contoso.com") -$list.add("fabrikam.com") -Set-CsTenantFederationConfiguration -BlockedDomains $list - -Set-CsTenantFederationConfiguration -BlockAllSubdomains $True - - 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 12 -------------------------- - Set-CsTenantFederationConfiguration -ExternalAccessWithTrialTenants "Allowed" - - Example 12 shows how you can allow users to communicate with users in tenants that contain only trial licenses (default value is Blocked). - - - - -------------------------- 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 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 14 -------------------------- - Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @("contoso.com", "fabrikam.com") - - 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 15 -------------------------- - $list = New-Object Collections.Generic.List[String] -$list.add("contoso.com") - -Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Add=$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 16 -------------------------- - $list = New-Object Collections.Generic.List[String] -$list.add("contoso.com") - -Set-CsTenantFederationConfiguration -AllowedTrialTenantDomains @{Remove=$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 17 -------------------------- - Set-CsTenantFederationConfiguration -DomainBlockingForMDOAdminsInTeams "Enabled" - - - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantfederationconfiguration - - - Get-CsTenantFederationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantfederationconfiguration - - - - - - Set-CsTenantMigrationConfiguration - Set - CsTenantMigrationConfiguration - - Used to enable or disable Meeting Migration Service (MMS). - - - - Used to enable or disable Meeting Migration Service (MMS). For more information, see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). - - - - Set-CsTenantMigrationConfiguration - - Identity - - > Applicable: Microsoft Teams - Unique identifier for the Migration Configuration. - - String - - 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. - - - SwitchParameter - - - False - - - MeetingMigrationEnabled - - > Applicable: Microsoft Teams - Set this to false to disable the Meeting Migration Service. - - Boolean - - Boolean - - - None - - - 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: - Get-CsTenant | Select-Object DisplayName, TenantID - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. - - - SwitchParameter - - - False - - - - Set-CsTenantMigrationConfiguration - - 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. - - - SwitchParameter - - - 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 - - Boolean - - - None - - - 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: - Get-CsTenant | Select-Object DisplayName, TenantID - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. - - - SwitchParameter - - - False - - - - - - 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 - - - Identity - - > Applicable: Microsoft Teams - Unique identifier for the Migration Configuration. - - String - - String - - - None - - - 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 - - Boolean - - - None - - - 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: - Get-CsTenant | Select-Object DisplayName, TenantID - - Guid - - Guid - - - None - - - WhatIf - - > Applicable: Microsoft Teams - Shows what would happen if the cmdlet runs. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsTenantMigrationConfiguration -MeetingMigrationEnabled $false - - This example disables MMS in the organization. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration - - - - - - Set-CsTenantNetworkRegion - Set - CsTenantNetworkRegion - - 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 - - CentralSite - - This parameter is not used. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network region to identify purpose of setting it. - - String - - String - - - None - - - Identity - - Unique identifier for the network region to be set. - - String - - String - - - None - - - NetworkRegionID - - The name of the network region. Not required in this PowerShell command. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - CentralSite - - This parameter is not used. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Provide a description of the network region to identify purpose of setting it. - - String - - String - - - None - - - Identity - - Unique identifier for the network region to be set. - - String - - String - - - None - - - NetworkRegionID - - The name of the network region. Not required in this PowerShell command. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTenantNetworkRegion -Identity "RegionA" -Description "Region A" - - The command shown in Example 1 sets the network region 'RegionA' with the description 'Region A'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworkregion - - - New-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworkregion - - - Remove-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworkregion - - - Get-CsTenantNetworkRegion - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworkregion - - - - - - Set-CsTenantNetworkSite - Set - CsTenantNetworkSite - - Changes the definition of network sites. - - - - A network site represents a location where your organization has a physical venue, such as offices, a set of buildings, or a campus. Network sites are defined as a collection of IP subnets. Each network site must be associated with a network region. - A best practice for Location Based Routing (LBR) is to create a separate site for each location which has unique PSTN connectivity. Sites may be created as LBR or non-LBR enabled. A non-LBR enabled site may be created to allow LBR enabled users to make PSTN calls when they roam to that site. Note that network sites may also be used for emergency calling enablement and configuration. In addition, network sites can also be used for configuring Network Roaming Policy capabilities. - - - - Set-CsTenantNetworkSite - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of setting it. - - String - - String - - - None - - - EmergencyCallingPolicy - - 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 - - String - - - None - - - EmergencyCallRoutingPolicy - - 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 - - String - - - None - - - EnableLocationBasedRouting - - This parameter determines whether the current site is enabled for Location-Based Routing. - - Boolean - - Boolean - - - None - - - Identity - - Unique identifier for the network site to be set. - - String - - String - - - None - - - LocationPolicy - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - NetworkRegionID - - NetworkRegionID is the identifier for the network region which the current network site is associating to. - - String - - String - - - None - - - NetworkRoamingPolicy - - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - - 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 - - - Description - - Provide a description of the network site to identify purpose of setting it. - - String - - String - - - None - - - EmergencyCallingPolicy - - 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 - - String - - - None - - - EmergencyCallRoutingPolicy - - 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 - - String - - - None - - - EnableLocationBasedRouting - - This parameter determines whether the current site is enabled for Location-Based Routing. - - Boolean - - Boolean - - - None - - - Identity - - Unique identifier for the network site to be set. - - String - - String - - - None - - - LocationPolicy - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - NetworkRegionID - - NetworkRegionID is the identifier for the network region which the current network site is associating to. - - String - - String - - - None - - - NetworkRoamingPolicy - - NetworkRoamingPolicy is the identifier for the network roaming policy to which the network site will associate to. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTenantNetworkSite -Identity "MicrosoftSite1" -NetworkRegionID "RegionRedmond" -Description "Microsoft site 1" - - The command shown in Example 1 set the network site 'MicrosoftSite1' with description 'Microsoft site 1'. - The network region 'RegionRedmond' is created beforehand and 'MicrosoftSite1' will be associated with 'RegionRedmond'. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTenantNetworkSite -Identity "site2" -Description "site 2" -NetworkRegionID "RedmondRegion" -EnableLocationBasedRouting $true - - The command shown in Example 2 sets the network site 'site2' with description 'site 2'. This site is enabled for LBR. The example associates the site with network region 'RedmondRegion'. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsTenantNetworkSite -Identity "site3" -Description "site 3" -NetworkRegionID "RedmondRegion" -NetworkRoamingPolicy "TestNetworkRoamingPolicy" - - The command shown in Example 3 sets the network site 'site3' with description 'site 3'. This site is enabled for network roaming capabilities. The example associates the site with network region 'RedmondRegion' and network roaming policy 'TestNetworkRoamingPolicy'. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksite - - - New-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksite - - - Remove-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksite - - - Get-CsTenantNetworkSite - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksite - - - - - - Set-CsTenantNetworkSubnet - Set - CsTenantNetworkSubnet - - Changes the definition of network subnets. - - - - 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. - - - - Set-CsTenantNetworkSubnet - - Identity - - Unique identifier for the network subnet to be set. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network subnet to identify purpose of setting it. - - String - - String - - - 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 - - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. - - 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 - - - Description - - Provide a description of the network subnet to identify purpose of setting it. - - String - - String - - - None - - - Identity - - Unique identifier for the network subnet to be set. - - String - - String - - - 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 - - NetworkSiteID is the identifier for the network site which the current network subnet is associating to. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTenantNetworkSubnet -Identity "192.168.0.1" -MaskBits "24" -NetworkSiteID "site1" - - The command shown in Example 1 set the network subnet '192.168.0.1'. The subnet is in IPv4 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 24. - IPv4 format subnet accepts maskbits from 0 to 32 inclusive. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTenantNetworkSubnet -Identity "2001:4898:e8:25:844e:926f:85ad:dd8e" -MaskBits "120" -NetworkSiteID "site1" -Description "Subnet 2001:4898:e8:25:844e:926f:85ad:dd8e" - - The command shown in Example 2 set the network subnet '2001:4898:e8:25:844e:926f:85ad:dd8e' with description 'Subnet 2001:4898:e8:25:844e:926f:85ad:dd8e'. The subnet is in IPv6 format, and the subnet is assigned to network site 'site1'. The maskbits is set to 120. - IPv6 format subnet accepts maskbits from 0 to 128 inclusive. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantnetworksubnet - - - New-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/new-cstenantnetworksubnet - - - Remove-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/remove-cstenantnetworksubnet - - - Get-CsTenantNetworkSubnet - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantnetworksubnet - - - - - - Set-CsTenantTrustedIPAddress - Set - CsTenantTrustedIPAddress - - Changes the definition of network IP addresses. - - - - 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. - When the client is sending the trusted IP address, 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. - - - - Set-CsTenantTrustedIPAddress - - Identity - - Unique identifier for the IP address to be set. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of creating it. - - 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 - - - MaskBits - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - False - - - - Set-CsTenantTrustedIPAddress - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of creating it. - - 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 - - - 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-CsTenantTrustedIPAddress` cmdlet. - - PSObject - - PSObject - - - None - - - MaskBits - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - False - - - - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Description - - Provide a description of the network site to identify purpose of creating it. - - 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 - - - Identity - - Unique identifier for the IP address to be set. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - 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-CsTenantTrustedIPAddress` cmdlet. - - PSObject - - PSObject - - - None - - - MaskBits - - This parameter determines the length of bits to mask to the subnet. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. IPv6 format IP address accepts maskbits from 0 to 128 inclusive. - - System.Int32 - - System.Int32 - - - None - - - Tenant - - Globally unique identifier (GUID) of the tenant account whose IP addresses 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 - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsTenantTrustedIPAddress -Identity "192.168.0.1" -Description "External IP 192.168.0.1" - - The command shown in Example 1 created the IP address '192.168.0.1' with description 'External IP 192.168.0.1'. - - - - -------------------------- Example 2 -------------------------- - PS C:\> Set-CsTenantTrustedIPAddress -Identity "192.168.0.2" -MaskBits "24" - - The command shown in Example 2 set the IP address '192.168.0.2'. The IP address is in IPv4 format, and the maskbits is set to 24. - IPv4 format IP address accepts maskbits from 0 to 32 inclusive. - - - - -------------------------- Example 3 -------------------------- - PS C:\> Set-CsTenantTrustedIPAddress -Identity "2001:4898:e8:25:844e:926f:85ad:dd8e" -Description "IPv6 IP address" - - The command shown in Example 3 set the IP address '2001:4898:e8:25:844e:926f:85ad:dd8e' with description 'IPv6 IP address'. - IPv6 format IP address accepts maskbits from 0 to 128 inclusive. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenanttrustedipaddress - - - - - - Set-CsUser - 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/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. - - - - Set-CsUser - - 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". - - UserIdParameter - - UserIdParameter - - - 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. - - Boolean - - Boolean - - - None - - - Confirm - - > 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. - - - SwitchParameter - - - 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 - - Fqdn - - - None - - - Enabled - - > 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 - - Boolean - - - None - - - EnterpriseVoiceEnabled - - > 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 - - Boolean - - - None - - - ExchangeArchivingPolicy - - > 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 - - ExchangeArchivingPolicyOptionsEnum - - ExchangeArchivingPolicyOptionsEnum - - - None - - - HostedVoiceMail - - > 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. - - Boolean - - Boolean - - - None - - - 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 - - String - - String - - - None - - - LineURI - - > 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 - - String - - - None - - - OnPremLineURI - - > 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 - - String - - - None - - - 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. - - - SwitchParameter - - - False - - - PrivateLine - - > 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 - - String - - - None - - - RemoteCallControlTelephonyEnabled - - > 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. - - Boolean - - Boolean - - - None - - - SipAddress - - > 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`. - - String - - String - - - None - - - WhatIf - - > 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. - - - SwitchParameter - - - False - - - - - - 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. - - Boolean - - Boolean - - - None - - - Confirm - - > 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. - - SwitchParameter - - SwitchParameter - - - 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 - - Fqdn - - - None - - - Enabled - - > 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 - - Boolean - - - None - - - EnterpriseVoiceEnabled - - > 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 - - Boolean - - - None - - - ExchangeArchivingPolicy - - > 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 - - ExchangeArchivingPolicyOptionsEnum - - ExchangeArchivingPolicyOptionsEnum - - - None - - - HostedVoiceMail - - > 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. - - Boolean - - Boolean - - - None - - - 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". - - UserIdParameter - - UserIdParameter - - - None - - - 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 - - String - - String - - - None - - - LineURI - - > 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 - - String - - - None - - - OnPremLineURI - - > 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 - - String - - - None - - - 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. - - SwitchParameter - - SwitchParameter - - - False - - - PrivateLine - - > 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 - - String - - - None - - - RemoteCallControlTelephonyEnabled - - > 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. - - Boolean - - Boolean - - - None - - - SipAddress - - > 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`. - - String - - String - - - None - - - WhatIf - - > 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. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Input types - - - String or Microsoft.Rtc.Management.ADConnect.Schema.ADUser object. The `Set-CsUser` cmdlet accepts a pipelined string value representing the Identity of a user account that has been enabled for Skype for Business Server. The cmdlet also accepts pipelined instances of the Active Directory user object. - - - - - - - Output types - - - The `Set-CsUser` cmdlet does not return any objects. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Set-CsUser -Identity "Pilar Ackerman" -EnterpriseVoiceEnabled $True - - In Example 1, the `Set-CsUser` cmdlet is used to modify the user account with the Identity Pilar Ackerman. In this case, the account is modified to enable Enterprise Voice, the Microsoft implementation of VoIP. This task is carried out by adding the EnterpriseVoiceEnabled parameter, and then setting the parameter value to $True. - - - - -------------------------- Example 2 -------------------------- - Get-CsUser -LdapFilter "Department=Finance" | Set-CsUser -EnterpriseVoiceEnabled $True - - In Example 2, all the users in the Finance department have their accounts enabled for Enterprise Voice. In this command, the `Get-CsUser` cmdlet and the LdapFilter parameter are first used to return a collection of all the users who work in the Finance department. That information is then piped to the `Set-CsUser` cmdlet, which enables Enterprise Voice for each account in the collection. - - - - -------------------------- Example 3 -------------------------- - Set-CsUser -Identity "Pilar Ackerman" -LineUri "tel:+123456789" - - In Example 3, the `Set-CsUser` cmdlet is used to modify the user account with the Identity Pilar Ackerman. In this case, the account is modified to set the phone number assigned to the user settings its LineUri property. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csuser - - - Get-CsOnlineUser - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineuser - - - - - - Set-CsUserCallingDelegate - Set - CsUserCallingDelegate - - This cmdlet will change permissions for a delegate for calling in Microsoft Teams. - - - - This cmdlet can change the permissions assigned to a delegate for the specified user. - - - - Set-CsUserCallingDelegate - - Delegate - - The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. - A user can have up to 25 delegates. - - 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 add a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - MakeCalls - - Specifies whether delegate is allowed to make calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - ManageSettings - - Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. - - System.Boolean - - System.Boolean - - - False - - - ReceiveCalls - - Specifies whether delegate is allowed to receive calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - - - - Delegate - - The Identity of the delegate to add. Can be specified using the ObjectId or the SIP address. - A user can have up to 25 delegates. - - 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 add a delegate for. Can be specified using the ObjectId or the SIP address. - - System.String - - System.String - - - None - - - MakeCalls - - Specifies whether delegate is allowed to make calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - ManageSettings - - Specifies whether delegate is allowed to change the delegate and calling settings for the specified user. - - System.Boolean - - System.Boolean - - - False - - - ReceiveCalls - - Specifies whether delegate is allowed to receive calls on behalf of the specified user. - - System.Boolean - - System.Boolean - - - False - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. - The specified user need to have the Microsoft Phone System license assigned. - You can see the delegate of a user by using the Get-CsUserCallingSettings cmdlet. - - - - - -------------------------- Example 1 -------------------------- - Set-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $false -ReceiveCalls $true -ManageSettings $false - - This example shows setting the permissions for user1@contoso.com's delegate user2@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Set-CsUserCallingDelegate -Identity user1@contoso.com -Delegate user2@contoso.com -MakeCalls $true - - This example shows setting the MakeCalls permissions to True for user1@contoso.com's delegate user2@contoso.com. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate - - - Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings - - - New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate - - - Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate - - - - - - Set-CsUserCallingSettings - Set - CsUserCallingSettings - - This cmdlet will set the call forwarding, simultaneous ringing and call group settings for the specified user. - - - - This cmdlet sets the call forwarding, simultaneous ringing and call group settings for the specified user. - When specifying settings you need to specify all settings with a settings grouping, for instance, you can't just change a forwarding target. Instead, you need to start by getting the current settings, making the necessary changes, and then setting/writing all settings within the settings group. - - - - Set-CsUserCallingSettings - - CallGroupOrder - - The order in which to call members of the Call Group. The supported values are Simultaneous and InOrder. - You can only use InOrder, if the call group has 5 or less members. - - System.String - - System.String - - - None - - - CallGroupTargets - - 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 - - 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[] - - 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 - - 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 - - - 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 - - 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 - - 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 - - - IsUnansweredEnabled - - This parameter controls whether forwarding for unanswered calls is enabled or not. - - System.Boolean - - System.Boolean - - - None - - - 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 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 - - System.String - - - None - - - UnansweredTarget - - 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.String - - System.String - - - None - - - UnansweredTargetType - - 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 - - System.String - - - None - - - - Set-CsUserCallingSettings - - 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 - - - IsUnansweredEnabled - - This parameter controls whether forwarding for unanswered calls is enabled or not. - - System.Boolean - - System.Boolean - - - None - - - - - - CallGroupOrder - - The order in which to call members of the Call Group. The supported values are Simultaneous and InOrder. - You can only use InOrder, if the call group has 5 or less members. - - System.String - - System.String - - - None - - - CallGroupTargets - - 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 - - System.Array - - - None - - - 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 - - - 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 - - - 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 - - - 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 - - - IsUnansweredEnabled - - This parameter controls whether forwarding for unanswered calls is enabled or not. - - System.Boolean - - System.Boolean - - - None - - - 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 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 - - System.String - - - None - - - UnansweredTarget - - 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.String - - System.String - - - None - - - UnansweredTargetType - - 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 - - System.String - - - None - - - - - - None - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PowerShell module 4.0.0 or later. - The specified user need to have the Microsoft Phone System license assigned. - When forwarding to MyDelegates, the specified user needs to have one or more delegates defined that are allowed to receive calls. When forwarding to Group, the specified user needs to have one or more members of the user's call group. - The cmdlet is validating the different settings and is always writing all the parameters in a settings group. You might see validation errors from the cmdlet due to this behavior. As an example, if you have ForwardingTargetType set to Group and you want to remove all members of the call group, you will get a validation error. - You can specify a SIP URI without 'sip:' on input, but the output from Get-CsUserCallingSettings will show the full SIP URI. - You are not able to configure delegates via this cmdlet. Please use New-CsUserCallingDelegate, Set-CsUserCallingDelegate cmdlets and Remove-CsUserCallingDelegate. - - - - - -------------------------- Example 1 -------------------------- - Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Immediate -ForwardingTargetType Voicemail - - This example shows setting immediate call forwarding to voicemail for user1@contoso.com. - - - - -------------------------- Example 2 -------------------------- - Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $false - - This example shows removing call forwarding for user1@contoso.com. - - - - -------------------------- Example 3 -------------------------- - Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Simultaneous -ForwardingTargetType SingleTarget -ForwardingTarget "+12065551234" - - This example shows setting simultaneous ringing to +12065551234 for user1@contoso.com. - - - - -------------------------- Example 4 -------------------------- - Set-CsUserCallingSettings -Identity user1@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType MyDelegates -UnansweredDelay 00:00:30 - - This example shows setting unanswered call forward to the delegates after 30 seconds for user1@contoso.com. - - - - -------------------------- Example 5 -------------------------- - $cgm = @("sip:user2@contoso.com","sip:user3@contoso.com") -Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder InOrder -CallGroupTargets $cgm -Set-CsUserCallingSettings -Identity user1@contoso.com -IsForwardingEnabled $true -ForwardingType Immediate -ForwardingTargetType Group - - This example shows creating a call group for user1@contoso.com with 2 members and setting immediate call forward to the call group for user1@contoso.com. - - - - -------------------------- Example 6 -------------------------- - $ucs = Get-CsUserCallingSettings -Identity user1@contoso.com -$cgt = {$ucs.CallGroupTargets}.Invoke() -$cgt.Add("sip:user5@contoso.com") -$cgt.Remove("sip:user6@contoso.com") -Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder $ucs.CallGroupOrder -CallGroupTargets $cgt - -$gmd = (Get-CsUserCallingSettings -Identity user5@contoso.com).GroupMembershipDetails -$gmd[[array]::IndexOf($gmd.CallGroupOwnerId,'sip:user1@contoso.com')].NotificationSetting = 'Banner' -Set-CsUserCallingSettings -Identity user5@contoso.com -GroupMembershipDetails $gmd - - This example shows how to update the call group of user1@contoso.com to add user5@contoso.com and remove user6@contoso.com. In addition the notification setting for user5@contoso.com for user1@contoso.com's call group is set to Banner. - The key to note here is the call group membership is defined on the object of the owner of the call group, in the above case this is user1@contoso.com. However, the notification setting for a member for a particular call group is defined on the member. In this case user5@contoso.com. - - - - -------------------------- Example 7 -------------------------- - $ucs = Get-CsUserCallingSettings -Identity user1@contoso.com -Set-CsUserCallingSettings -Identity user1@contoso.com -CallGroupOrder $ucs.CallGroupOrder -CallGroupTargets @() - - This example shows how to remove all members of the call group. - - - - -------------------------- Example 8 -------------------------- - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails[]]$gmd = @( - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails]@{CallGroupOwnerId='sip:user20@contoso.com';NotificationSetting='Banner'} - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICallGroupMembershipDetails]@{CallGroupOwnerId='sip:user30@contoso.com';NotificationSetting='Mute'} -) -Set-CsUserCallingSettings -Identity user10@contoso.com -GroupMembershipDetails $gmd - - In this example user10@contoso.com is a member of two call groups: user20@contoso.com and user30@contoso.com. User10@contoso.com would like to have Banner notification for the first call group and Mute notification for the last one. - - - - -------------------------- Example 9 -------------------------- - Set-CsUserCallingSettings -Identity user2@contoso.com -GroupNotificationOverride 'Mute' - - This example shows how to set the group notification override for user2@contoso.com. This setting overrides any specific notification setting set for the user on any call group the user is a member of. - - - - -------------------------- Example 10 -------------------------- - Set-CsUserCallingSettings -Identity user6@contoso.com -IsForwardingEnabled $false -Set-CsUserCallingSettings -Identity user6@contoso.com -IsUnansweredEnabled $true -UnansweredTargetType Voicemail -UnansweredDelay 00:00:20 - - This example shows how to set the default call forwarding settings for a user. - - - - -------------------------- Example 11 -------------------------- - Set-CsUserCallingSettings -Identity user7@contoso.com -IsUnansweredEnabled $false - - This example shows turning off unanswered call forwarding for a user. The Microsoft Teams client will show this as If unanswered Do nothing . - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingsettings - - - Get-CsUserCallingSettings - https://learn.microsoft.com/powershell/module/microsoftteams/get-csusercallingsettings - - - New-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/new-csusercallingdelegate - - - Set-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/set-csusercallingdelegate - - - Remove-CsUserCallingDelegate - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csusercallingdelegate - - - - - - Set-CsVideoInteropServiceProvider - Set - 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. - - - - 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 Set-CsVideoInteropServiceProvider to update information about a supported CVI partner your organization uses. - - - - Set-CsVideoInteropServiceProvider - - Identity - - Specify the VideoInteropServiceProvider to be updated. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - - SwitchParameter - - - False - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - Set-CsVideoInteropServiceProvider - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - - SwitchParameter - - - False - - - Instance - - Pass an existing provider from Get-CsVideoInteropServiceProvider to update (use instead of specifying "Identity") - - PSObject - - PSObject - - - None - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AadApplicationIds - - This is an optional parameter. A semicolon separated list of Microsoft Entra AppIds of the CVI partner bots can be specified in this parameter. This parameter works in conjunction with AllowAppGuestJoinsAsAuthenticated. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of these bots, is shown in the meeting as an authenticated tenant entity. - - String - - String - - - None - - - AllowAppGuestJoinsAsAuthenticated - - This is an optional parameter. Default = false. This parameter works in conjunction with AadApplicationIds. When AllowAppGuestJoinsAsAuthenticated is set to true, a VTC device joining anonymously using any of the bots Microsoft Entra application ids specified in AadApplicationIds, is shown in the meeting as an authenticated tenant entity. - - Boolean - - Boolean - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - Bypass all non-fatal errors. - - SwitchParameter - - SwitchParameter - - - False - - - Identity - - Specify the VideoInteropServiceProvider to be updated. - - XdsGlobalRelativeIdentity - - XdsGlobalRelativeIdentity - - - None - - - Instance - - Pass an existing provider from Get-CsVideoInteropServiceProvider to update (use instead of specifying "Identity") - - PSObject - - PSObject - - - None - - - InstructionUri - - InstructionUri provides additional VTC dialin options. This field shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners - - String - - String - - - None - - - Tenant - - Internal Microsoft use only. - - System.Guid - - System.Guid - - - None - - - TenantKey - - Tenantkey shows up in the Teams meeting when a CVI enabled user schedules a meeting. This TenantKey is used to dial into the partner's IVR for the partner CVI service. The partner will provide you this information when you sign up for CVI service through any of our partners. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.Management.Automation.PSObject - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Set-CsVideoInteropServiceProvider -Identity cviprovider -AllowAppGuestJoinsAsAuthenticated $true - - This example enables a VTC device joining anonymously to shown in the meeting as authenticated, for a supported CVI partner your organization uses. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/set-csvideointeropserviceprovider - - - - - - Start-CsExMeetingMigration - Start - CsExMeetingMigration - - This cmdlet manually trigger a meeting migration request for the specified user. - - - - 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. - Also, with `Start-CsExMeetingMigration` cmdlet, you can start a meeting migration manually. For more information about requirements of the Meeting Migration Service (MMS), see Using the Meeting Migration Service (MMS) (https://learn.microsoft.com/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms). - - - - Start-CsExMeetingMigration - - 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 - - UserIdParameter - - - None - - - 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 - - Object - - - All - - - 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 - - Object - - - Current - - - - - - 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 - - UserIdParameter - - - None - - - 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 - - Object - - - All - - - 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 - - Object - - - Current - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Start-CsExMeetingMigration -Identity ashaw@contoso.com -TargetMeetingType Teams - - This example below shows how to initiate meeting migration for user ashaw@contoso.com so that all meetings are migrated to Teams. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/start-csexmeetingmigration - - - Using the Meeting Migration Service (MMS) - https://learn.microsoft.com/SkypeForBusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms - - - Get-CsMeetingMigrationStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csmeetingmigrationstatus - - - Set-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/set-cstenantmigrationconfiguration - - - Get-CsTenantMigrationConfiguration - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantmigrationconfiguration - - - - - - Sync-CsOnlineApplicationInstance - Sync - CsOnlineApplicationInstance - - Sync the application instance 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 - - AcsResourceId - - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - - System.Guid - - System.Guid - - - None - - - ApplicationId - - 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 - - System.Guid - - - None - - - CallbackUri - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - Force - - 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 - - - ObjectId - - The application instance ID. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - AcsResourceId - - The ACS Resource ID. The unique identifier assigned to an instance of Azure Communication Services within the Azure cloud infrastructure. - - System.Guid - - System.Guid - - - None - - - ApplicationId - - 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 - - System.Guid - - - None - - - CallbackUri - - This parameter is reserved for internal Microsoft use. - - String - - String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - False - - - Force - - 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 - - - ObjectId - - The application instance ID. - - System.Guid - - System.Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Sync-CsOnlineApplicationInstance -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ApplicationId yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy - - This example sync application instance with object ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" and application ID "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" into Agent Provisioning Service. - - - - -------------------------- Example 2 -------------------------- - Sync-CsOnlineApplicationInstance -ObjectId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ApplicationId 00000000-0000-0000-0000-000000000000 - - This command is helpful when there's already a mapping in Agent Provisioning Service and you want to set a different app ID value. In this case, when running the cmdlet in example 1, you will see `Sync-CsOnlineApplicationInstance : An item with the same key has already been added.`. - The command removes the mapping for application instance with object ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". Run the example cmdlet again to create the mapping in Agent Provisioning Service. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/sync-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 - - - Get-CsOnlineApplicationInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csonlineapplicationinstance - - - - - - Test-CsEffectiveTenantDialPlan - Test - CsEffectiveTenantDialPlan - - Use the Test-CsEffectiveTenantDialPlan cmdlet to test a tenant dial plan. - - - - The `Test-CsEffectiveTenantDialPlan` cmdlet normalizes the dialed number by applying the normalization rules from the effective tenant dial plan that is returned for the specified user. - - - - Test-CsEffectiveTenantDialPlan - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - - SwitchParameter - - - False - - - DialedNumber - - > Applicable: Microsoft Teams - The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. - - PhoneNumber - - PhoneNumber - - - None - - - EffectiveTenantDialPlanName - - > Applicable: Microsoft Teams - The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. - - 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 - - - False - - - Identity - - > 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 - - UserIdParameter - - - None - - - TenantScopeOnly - - > Applicable: Microsoft Teams - Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). - - - 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 - - - - - - Confirm - - > Applicable: Microsoft Teams - The Confirm switch causes the command to pause processing, and requires confirmation to proceed. - - SwitchParameter - - SwitchParameter - - - False - - - DialedNumber - - > Applicable: Microsoft Teams - The DialedNumber parameter is the phone number to be normalized with the effective tenant dial plan. - - PhoneNumber - - PhoneNumber - - - None - - - EffectiveTenantDialPlanName - - > Applicable: Microsoft Teams - The EffectiveTenantDialPlanName parameter is the effective tenant dial plan name in the form of TenantId_TenantDialPlan_GlobalVoiceDialPlan. - - 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 - - SwitchParameter - - - False - - - Identity - - > 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 - - UserIdParameter - - - None - - - TenantScopeOnly - - > Applicable: Microsoft Teams - Runs the test only against Tenant-level dial plans (does not take into account Service Level Dial Plans). - - 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 - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsEffectiveTenantDialPlan -Identity adelev | Test-CsEffectiveTenantDialPlan -DialedNumber 14258828080 - - This example gets the Identity of a dial plan that is associated with the identity of a user, and applies the retrieved tenant dial plan to normalize the dialed number. - - - - -------------------------- Example 2 -------------------------- - Test-CsEffectiveTenantDialPlan -DialedNumber 14258828080 -Identity adelev@contoso.onmicrosoft.com - - This example tests the given dialed number against a specific identity. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-cseffectivetenantdialplan - - - - - - Test-CsInboundBlockedNumberPattern - Test - CsInboundBlockedNumberPattern - - This cmdlet tests the given number against the created (by using New-CsInboundBlockedNumberPattern cmdlet) blocked numbers pattern. - - - - This cmdlet tests the given number against the created (by using New-CsInboundBlockedNumberPattern cmdlet) blocked numbers pattern. - - - - Test-CsInboundBlockedNumberPattern - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - PhoneNumber - - The phone number to be tested. - - String - - String - - - None - - - TenantId - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - 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 - - - PhoneNumber - - The phone number to be tested. - - String - - String - - - None - - - TenantId - - This parameter is reserved for internal Microsoft use. - - Guid - - Guid - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - System.String - - - - - - - - System.Guid - - - - - - - - - - System.Object - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Test-CsInboundBlockedNumberPattern -PhoneNumber "321321321" - - Tests the "321321321" number to check if it will be blocked for inbound calls. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-csinboundblockednumberpattern - - - - - - Test-CsTeamsShiftsConnectionValidate - Test - CsTeamsShiftsConnectionValidate - - This cmdlet validates workforce management (WFM) connection settings. - - - - This cmdlet validates Workforce management (WFM) connection settings. It validates that the provided WFM account/password and required endpoints are set correctly. - - - - Test-CsTeamsShiftsConnectionValidate - - ConnectorId - - > Applicable: Microsoft Teams - The ID of the shifts connector. - - String - - String - - - None - - - ConnectorSpecificSettings - - The connector specific settings. - - IConnectorInstanceRequestConnectorSpecificSettings - - IConnectorInstanceRequestConnectorSpecificSettings - - - None - - - Name - - > Applicable: Microsoft Teams - The connector's instance name. - - String - - String - - - None - - - - - - ConnectorId - - > Applicable: Microsoft Teams - The ID of the shifts connector. - - String - - String - - - None - - - ConnectorSpecificSettings - - The connector specific settings. - - IConnectorInstanceRequestConnectorSpecificSettings - - IConnectorInstanceRequestConnectorSpecificSettings - - - None - - - Name - - > Applicable: Microsoft Teams - The connector's instance name. - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $InstanceName = "test instance name" -PS C:\> $WfmUserName = "WfmUserName" -PS C:\> $plainPwd = "plainPwd" -PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA-82E1-839401E00000" -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificBlueYonderSettingsRequest -Property @{ AdminApiUrl = "https://contoso.com/retail/data/wfmadmin/api/v1-beta3"; SiteManagerUrl = "https://contoso.com/retail/data/wfmsm/api/v1-beta4"; EssApiUrl = "https://contoso.com/retail/data/wfmess/api/v1-beta2"; RetailWebApiUrl = "https://contoso.com/retail/data/retailwebapi/api/v1"; CookieAuthUrl = "https://contoso.com/retail/data/login"; FederatedAuthUrl = "https://contoso.com/retail/data/login"; LoginUserName = "PlaceholderForUsername"; LoginPwd = "PlaceholderForPassword" }) -Name $InstanceName - - Returns the list of conflicts if there are any. Empty result means there's no conflict. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $InstanceName = "test instance name" -PS C:\> $WfmUserName = "WfmUserName" -PS C:\> $plainPwd = "plainPwd" -PS C:\> Test-CsTeamsShiftsConnectionValidate -ConnectorId "6A51B888-FF44-4FEA-82E1-839401E00000" -ConnectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest -Property @{ apiUrl = "https://contoso.com/api"; ssoUrl = "https://contoso.com/sso"; appKey = "myAppKey"; clientId = "myClientId"; clientSecret = "PlaceholderForClientSecret"; LoginUserName = "PlaceholderForUsername"; LoginPwd = "PlaceholderForPassword" }) -Name $InstanceName - - Returns the list of conflicts if there are any. Empty result means there's no conflict. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - - - - Test-CsTeamsTranslationRule - Test - CsTeamsTranslationRule - - This cmdlet tests a phone number against the configured number manipulation rules and returns information about the matching rule. - - - - This cmdlet tests a phone number against the configured number manipulation rules and returns information about the matching rule. - - - - 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 - - The phone number to test. - - System.String - - System.String - - - 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 - - The phone number to test. - - System.String - - System.String - - - 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 - - - - - - None - - - - - - - - - - None - - - - - - - - - The cmdlet is available in Teams PowerShell Module 4.5.0 or later. - The matching logic used in the cmdlet is the same as when the manipulation rule has been associated with an SBC and a call is being routed. - If a match is found in two or more manipulation rules, the first one is returned. - There is a short delay before newly created manipulation rules are added to the evaluation. - - - - - -------------------------- Example 1 -------------------------- - Test-CsTeamsTranslationRule -PhoneNumber 1234 - -Identity Pattern PhoneNumberTranslated Translation --------- ------- --------------------- ----------- -rule1 ^1234$ 4321 4321 - - This example displays information about the manipulation rule matching the phone number 1234. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamstranslationrule - - - New-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamstranslationrule - - - Get-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamstranslationrule - - - Set-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamstranslationrule - - - Remove-CsTeamsTranslationRule - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamstranslationrule - - - - - - Test-CsTeamsUnassignedNumberTreatment - Test - CsTeamsUnassignedNumberTreatment - - This cmdlet tests the given number against the created (by using New-CsTeamsUnassignedNumberTreatment cmdlet) unassigned number treatment configurations. - - - - This cmdlet tests the given number against the created (by using New-CsTeamsUnassignedNumberTreatment cmdlet) unassigned number treatment configurations. If a match is found, the matching treatment is displayed. - - - - Test-CsTeamsUnassignedNumberTreatment - - PhoneNumber - - The phone number to be tested. - - System.String - - System.String - - - None - - - - - - PhoneNumber - - The phone number to be tested. - - System.String - - System.String - - - None - - - - - - System.String - - - - - - - - - - System.Object - - - - - - - - - The cmdlet is available in Teams PS module 3.2.0-preview or later. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Test-CsTeamsUnassignedNumberTreatment -PhoneNumber "321321321" - - Tests the "321321321" number to check if there is a matching unassigned number treatment. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsunassignednumbertreatment - - - New-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsunassignednumbertreatment - - - Get-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsunassignednumbertreatment - - - Set-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsunassignednumbertreatment - - - Remove-CsTeamsUnassignedNumberTreatment - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsunassignednumbertreatment - - - - - - Test-CsVoiceNormalizationRule - Test - CsVoiceNormalizationRule - - 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. - - - - Test-CsVoiceNormalizationRule - - 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 - - PhoneNumber - - PhoneNumber - - - None - - - 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. - - NormalizationRule - - NormalizationRule - - - None - - - - - - 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 - - PhoneNumber - - PhoneNumber - - - None - - - 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. - - NormalizationRule - - NormalizationRule - - - None - - - - - - Input types - - - Microsoft.Rtc.Management.WritableConfig.Policy.Voice.NormalizationRule object. Accepts pipelined input of voice normalization rule objects. - - - - - - - Output types - - - Returns an object of type Microsoft.Rtc.Management.Voice.NormalizationRuleTestResult. - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Get-CsVoiceNormalizationRule -Identity "global/11 digit number rule" | Test-CsVoiceNormalizationRule -DialedNumber 14255559999 - - For Lync or Skype for Business Server, this example runs a voice normalization test against the voice normalization rule with the Identity "global/11 digit number rule". First the `Get-CsVoiceNormalizationRule` cmdlet is run to retrieve the rule with the Identity "global/11 digit number rule". That rule object is then piped to the `Test-CsVoiceNormalizationRule` cmdlet, where the rule is tested against the telephone number 14255559999. The output will be the DialedNumber after the voice normalization rule "global/11 digit number rule" has been applied. If this rule does not apply to the DialedNumber value (for example, if the normalization rule matches the pattern for an 11-digit number and you supply a 7-digit number) no value will be returned. - - - - -------------------------- Example 2 -------------------------- - $a = Get-CsVoiceNormalizationRule -Identity "global/11 digit number rule" -Test-CsVoiceNormalizationRule -DialedNumber 5551212 -NormalizationRule $a - - For Lync or Skype for Business Server, example 2 is identical to Example 1 except that instead of piping the results of the Get operation directly to the Test cmdlet, the object is first stored in the variable $a and then is passed as the value to the parameter NormalizationRule to be used as the voice normalization rule against which the test will run. - - - - -------------------------- Example 3 -------------------------- - Get-CsVoiceNormalizationRule | Test-CsVoiceNormalizationRule -DialedNumber 2065559999 - - For Lync or Skype for Business Server, this example runs a voice normalization test against all voice normalization rules defined within the Skype for Business Server deployment. First the `Get-CsVoiceNormalizationRule` cmdlet is run (with no parameters) to retrieve all the voice normalization rules. The collection of rules that is returned is then piped to the `Test-CsVoiceNormalizationRule` cmdlet, where each rule in the collection is tested against the telephone number 2065559999. The output will be a list of translated numbers, one for each rule tested. If a rule does not apply to the DialedNumber value (for example, if the normalization rule matches the pattern for an 11-digit number and you supply a 7-digit number) there will be a blank line in the list for that rule. - - - - -------------------------- Example 4 -------------------------- - $nr=(Get-CsTenantDialPlan -Identity dp1).NormalizationRules -$nr[0] - -Description : -Pattern : ^(\d{4})$ -Translation : +1206555$1 -Name : nr1 -IsInternalExtension : False - -Test-CsVoiceNormalizationRule -DialedNumber 1234 -NormalizationRule $nr[0] - -TranslatedNumber ----------------- -+12065551234 - - For Microsoft Teams, this example gets all the normalization rules in the tenant dial plan DP1, shows the first of these rules, and then test that rule on the dialed number 1234. The output shows that the rule normalize the dialed number to +12065551234. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/test-csvoicenormalizationrule - - - New-CsVoiceNormalizationRule - https://learn.microsoft.com/powershell/module/microsoftteams/new-csvoicenormalizationrule - - - Get-CsTenantDialPlan - https://learn.microsoft.com/powershell/module/microsoftteams/get-cstenantdialplan - - - - - - Unregister-CsOnlineDialInConferencingServiceNumber - Unregister - CsOnlineDialInConferencingServiceNumber - - Unassigns the previously assigned service number as default Conference Bridge number. - - - - Unassigns the previously assigned service number as default Conference Bridge number. - - - - Unregister-CsOnlineDialInConferencingServiceNumber - - Identity - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - Instance - - > Applicable: Microsoft Teams - PARAMVALUE: ConferencingServiceNumber - - ConferencingServiceNumber - - ConferencingServiceNumber - - - None - - - BridgeId - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - PARAMVALUE: Fqdn - - Fqdn - - Fqdn - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - RemoveDefaultServiceNumber - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - - - - BridgeId - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - BridgeName - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - DomainController - - > Applicable: Microsoft Teams - PARAMVALUE: Fqdn - - Fqdn - - Fqdn - - - None - - - Force - - > Applicable: Microsoft Teams - PARAMVALUE: SwitchParameter - - SwitchParameter - - SwitchParameter - - - 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 - - SwitchParameter - - - False - - - Tenant - - > Applicable: Microsoft Teams - PARAMVALUE: Guid - - Guid - - Guid - - - None - - - TenantDomain - - > Applicable: Microsoft Teams - PARAMVALUE: String - - String - - String - - - None - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Unregister-CsOnlineDialInConferencingServiceNumber -BridgeName "Conference Bridge" -RemoveDefaultServiceNumber 1234 - - Unassigns the 1234 Service Number to the given Conference Bridge. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/unregister-csonlinedialinconferencingservicenumber - - - - - - Update-CsAutoAttendant - Update - CsAutoAttendant - - Use Update-CsAutoAttendant cmdlet to force an update of resources associated with an Auto Attendant (AA) provisioning. - - - - 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/microsoftteams/get-csautoattendantstatus)cmdlet. - - - - Update-CsAutoAttendant - - Identity - - > Applicable: Microsoft Teams - The identity for the AA whose resources are to be updated. - - 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 AA whose resources are to be updated. - - System.String - - System.String - - - None - - - Tenant - - > Applicable: Microsoft Teams - {{ Fill Tenant Description }} - - System.Guid - - System.Guid - - - None - - - - - - System.String - - - The Update-CsAutoAttendant cmdlet accepts a string as the Identity parameter. - - - - - - - None - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - Update-CsAutoAttendant -Identity "6abea1cd-904b-520b-be96-1092cc096432" - - In Example 1, the Update-CsAutoAttendant cmdlet is used to update all resources of an auto attendant with Identity of 6abea1cd-904b-520b-be96-1092cc096432. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/update-csautoattendant - - - Get-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendant - - - Get-CsAutoAttendantStatus - https://learn.microsoft.com/powershell/module/microsoftteams/get-csautoattendantstatus - - - Set-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/set-csautoattendant - - - Remove-CsAutoAttendant - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csautoattendant - - - - - - Update-CsCustomPolicyPackage - Update - CsCustomPolicyPackage - - Note: This cmdlet is currently in private preview. - This cmdlet updates a custom policy package. - - - - This cmdlet updates a custom policy package with new package settings. For more information on policy packages and the policy types available, please review https://learn.microsoft.com/MicrosoftTeams/manage-policy-packages. - - - - Update-CsCustomPolicyPackage - - Identity - - > Applicable: Microsoft Teams - The name of the custom package. - - String - - String - - - None - - - PolicyList - - > 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[] - - - None - - - Description - - > Applicable: Microsoft Teams - The description of the custom package. - - String - - String - - - None - - - - - - Description - - > Applicable: Microsoft Teams - The description of the custom package. - - String - - String - - - None - - - Identity - - > Applicable: Microsoft Teams - The name of the custom package. - - String - - String - - - None - - - PolicyList - - > 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[] - - - None - - - - - - - The resulting custom package's contents will be replaced by the new one instead of a union. Default packages created by Microsoft cannot be updated. - - - - - -------------------------- Example 1 -------------------------- - PS C:\> Update-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy" - - Updates the custom package named "MyPackage" to have one policy in the package: a messaging policy of name "MyMessagingPolicy". - - - - -------------------------- Example 2 -------------------------- - PS C:\> Update-CsCustomPolicyPackage -Identity "MyPackage" -PolicyList "TeamsMessagingPolicy, MyMessagingPolicy", "TeamsMeetingPolicy, MyMeetingPolicy" -Description "My package" - - Updates the custom package named "MyPackage" to have a description of "My package" and two policies in the package: a messaging policy of name "MyMessagingPolicy" and a meeting policy of name "MyMeetingPolicy". - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/update-cscustompolicypackage - - - Get-CsPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/get-cspolicypackage - - - New-CsCustomPolicyPackage - https://learn.microsoft.com/powershell/module/microsoftteams/new-cscustompolicypackage - - - 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 - - - - - - Update-CsTeamsShiftsConnection - Update - CsTeamsShiftsConnection - - This cmdlet updates an existing workforce management (WFM) connection. - - - - This cmdlet updates a Shifts WFM connection. Similar to the Set-CsTeamsShiftsConnection cmdlet, it allows the admin to make changes to the settings in the connection. The complete list of fields is not required allowing the user to update single fields of the connection. - - - - 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 - - The request body. - - IUpdateWfmConnectionFieldsRequest - - IUpdateWfmConnectionFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - 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 - - - - 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 - - The request body. - - IUpdateWfmConnectionFieldsRequest - - IUpdateWfmConnectionFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - 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 - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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. Valid values are "Active" and "Disabled". A third value, "ErrorDisabled", signifies an error in the connection. - - String - - String - - - None - - - 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 - - - Body - - The request body. - - IUpdateWfmConnectionFieldsRequest - - IUpdateWfmConnectionFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - SwitchParameter - - - 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 - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -PS C:\> $result = Update-CsTeamsShiftsConnection ` - -connectionId $connection.Id ` - -IfMatch $connection.Etag ` - -name "Cmdlet test connection - updated" ` - -PS C:\> $result | Format-List - -ConnectorId : 6A51B888-FF44-4FEA-82E1-839401E00000 -ConnectorSpecificSettingAdminApiUrl : https://www.contoso.com/retail/data/wfmadmin/api/v1-beta2 -ConnectorSpecificSettingApiUrl : -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : -ConnectorSpecificSettingCookieAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingEssApiUrl : https://www.contoso.com/retail/data/wfmess/api/v1-beta2 -ConnectorSpecificSettingFederatedAuthUrl : https://www.contoso.com/retail/data/login -ConnectorSpecificSettingRetailWebApiUrl : https://www.contoso.com/retail/data/retailwebapi/api/v1 -ConnectorSpecificSettingSiteManagerUrl : https://www.contoso.com/retail/data/wfmsm/api/v1-beta2 -ConnectorSpecificSettingSsoUrl : -CreatedDateTime : 24/03/2023 04:58:23 -Etag : "5b00dd1b-0000-0400-0000-641d2df00000" -Id : 4dae9db0-0841-412c-8d6b-f5684bfebdd7 -LastModifiedDateTime : 24/03/2023 04:58:23 -Name : Cmdlet test connection - updated -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 - - Updates the connection with the specified -ConnectionId with the given name. Returns the object of the updated connection. - - - - -------------------------- Example 2 -------------------------- - PS C:\> $connection = Get-CsTeamsShiftsConnection -ConnectionId 79964000-286a-4216-ac60-c795a426d61a -PS C:\> $result = Update-CsTeamsShiftsConnection ` - -connectionId $connection.Id ` - -IfMatch $connection.Etag ` - -connectorId "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0" ` - -connectorSpecificSettings (New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConnectorSpecificUkgDimensionsSettingsRequest ` - -Property @{ - apiUrl = "https://www.contoso.com/api" - ssoUrl = "https://www.contoso.com/sso" - appKey = "PlaceholderForAppKey" - clientId = "Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W" - clientSecret = "PlaceholderForClientSecret" - }) ` - -state "Active" -PS C:\> $result | Format-List - -ConnectorId : 95BF2848-2DDA-4425-B0EE-D62AEED4C0A0 -ConnectorSpecificSettingAdminApiUrl : -ConnectorSpecificSettingApiUrl : https://www.contoso.com/api -ConnectorSpecificSettingAppKey : -ConnectorSpecificSettingClientId : Es5Q2fB4PXweCyto6Ms6J2kRB7uwAc3W -ConnectorSpecificSettingCookieAuthUrl : -ConnectorSpecificSettingEssApiUrl : -ConnectorSpecificSettingFederatedAuthUrl : -ConnectorSpecificSettingRetailWebApiUrl : -ConnectorSpecificSettingSiteManagerUrl : -ConnectorSpecificSettingSsoUrl : https://www.contoso.com/sso -CreatedDateTime : 06/04/2023 11:05:39 -Etag : "3100fd6e-0000-0400-0000-642ea7840000" -Id : 79964000-286a-4216-ac60-c795a426d61a -LastModifiedDateTime : 06/04/2023 11:05:39 -Name : Cmdlet test connection -State : Active -TenantId : 3FDCAAF2-863A-4520-97BA-DFA211595876 - - Updates the connection with the specified -ConnectionId with the given settings. Returns the object of the updated connection. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnection - - - Get-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnection - - - New-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnection - - - Set-CsTeamsShiftsConnection - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnection - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - Update-CsTeamsShiftsConnectionInstance - Update - CsTeamsShiftsConnectionInstance - - This cmdlet updates Shifts connection instance fields. - - - - This cmdlet updates a Shifts connection instance. Similar to the Set-CsTeamsShiftsConnectionInstance cmdlet, it allows the admin to make changes to the settings in the instance such as name, enabled scenarios, and sync frequency. The complete list of fields is not required allowing the user to update single fields of the instance. - - - - Update-CsTeamsShiftsConnectionInstance - - Body - - The request body. - - IUpdateConnectorInstanceFieldsRequest - - IUpdateConnectorInstanceFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - SwitchParameter - - - False - - - ConnectorInstanceId - - The connector instance ID. - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - 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 - - - - Update-CsTeamsShiftsConnectionInstance - - Body - - The request body. - - IUpdateConnectorInstanceFieldsRequest - - IUpdateConnectorInstanceFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - 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 - - - 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 - - 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 - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - 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 - - - SyncFrequencyInMin - - The sync frequency in minutes. - - Int32 - - Int32 - - - 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". - - 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 - - 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 - - - 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 - - Gets or sets the list of connector admin email addresses. - - String[] - - String[] - - - None - - - DesignatedActorId - - The designated actor ID that App acts as for Shifts Graph API calls. - - 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 - - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - - 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". - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - SwitchParameter - - - False - - - - - - Body - - The request body. - - IUpdateConnectorInstanceFieldsRequest - - IUpdateConnectorInstanceFieldsRequest - - - None - - - Break - - Wait for the .NET debugger to attach. - - SwitchParameter - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - SwitchParameter - - SwitchParameter - - - 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 - - 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 - - - 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 - - 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 - - - IfMatch - - The value of the ETag field as returned by the cmdlets. - - String - - String - - - None - - - InputObject - - Identity Parameter - - IConfigApiBasedCmdletsIdentity - - IConfigApiBasedCmdletsIdentity - - - 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 - - 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 - - - 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". - - 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 - - String - - - None - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - SwitchParameter - - SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceFieldsRequest - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse - - - - - - - - - - - - - - -------------------------- Example 1 -------------------------- - PS C:\> $connectionInstance = Get-CsTeamsShiftsConnectionInstance -ConnectorInstanceId WCI-eba2865f-6cac-46f9-8733-e0631a4536e1 -PS C:\> $result = Update-CsTeamsShiftsConnectionInstance ` - -connectorInstanceId "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1" - -IfMatch $connectionInstance.Etag ` - -connectionId "79964000-286a-4216-ac60-c795a426d61a" ` - -name "Cmdlet test instance - updated" ` - -syncFrequencyInMin "30" ` - -PS C:\> $result.ToJsonString() - -{ - "syncScenarios": { - "offerShiftRequest": "FromWfmToShifts", - "openShift": "FromWfmToShifts", - "openShiftRequest": "FromWfmToShifts", - "shift": "FromWfmToShifts", - "swapRequest": "FromWfmToShifts", - "timeCard": "FromWfmToShifts", - "timeOff": "FromWfmToShifts", - "timeOffRequest": "FromWfmToShifts", - "userShiftPreferences": "Disabled" - }, - "id": "WCI-eba2865f-6cac-46f9-8733-e0631a4536e1", - "tenantId": "dfd24b34-ccb0-47e1-bdb7-e49db9c7c14a", - "connectionId": "a2d1b091-5140-4dd2-987a-98a8b5338744", - "connectorAdminEmails": [ ], - "connectorId": "95BF2848-2DDA-4425-B0EE-D62AEED4C0A0", - "designatedActorId": "ec1a4edb-1a5f-4b2d-b2a4-37aab6ebd231", - "name": "Cmdlet test instance - updated", - "syncFrequencyInMin": 30, - "workforceIntegrationId": "WFI_6b225907-b476-4d40-9773-08b86db7b11b", - "etag": "\"4f005d22-0000-0400-0000-642ff64a0000\"", - "createdDateTime": "2023-04-07T10:54:01.8170000Z", - "lastModifiedDateTime": "2023-04-07T10:54:01.8170000Z", - "state" : "Active" -} - - Updates the instance with the specified -ConnectorInstanceId with the given name and sync frequency. Returns the object of the updated connector instance. - - - - - - Online Version: - https://docs.microsoft.com/powershell/module/microsoftteams/update-csteamsshiftsconnectioninstance - - - Get-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/get-csteamsshiftsconnectioninstance - - - New-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/new-csteamsshiftsconnectioninstance - - - Set-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/set-csteamsshiftsconnectioninstance - - - Remove-CsTeamsShiftsConnectionInstance - https://learn.microsoft.com/powershell/module/microsoftteams/remove-csteamsshiftsconnectioninstance - - - Test-CsTeamsShiftsConnectionValidate - https://learn.microsoft.com/powershell/module/microsoftteams/test-csteamsshiftsconnectionvalidate - - - - - - Update-CsTeamTemplate - Update - 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. - - - - Update-CsTeamTemplate - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - None - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - - System.Management.Automation.SwitchParameter - - - False - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OdataId - - A composite URI of a template. - - System.String - - System.String - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-CsTeamTemplate - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - 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 - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - - System.Management.Automation.SwitchParameter - - - False - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-CsTeamTemplate - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - OdataId - - A composite URI of a template. - - System.String - - System.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. - - - System.Management.Automation.SwitchParameter - - - False - - - - Update-CsTeamTemplate - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - - SwitchParameter - - - False - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - - System.Management.Automation.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 - - - 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 - - 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. - - - System.Management.Automation.SwitchParameter - - - False - - - - - - 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. To construct, see NOTES section for APP properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[] - - - None - - - Body - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - None - - - Break - - Wait for .NET debugger to attach - - SwitchParameter - - SwitchParameter - - - False - - - Category - - Gets or sets list of categories. - - System.String[] - - System.String[] - - - None - - - Channel - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[] - - - None - - - Classification - - Gets or sets the team's classification.Tenant admins configure Microsoft Entra ID with the set of possible values. - - System.String - - System.String - - - None - - - Confirm - - Prompts you for confirmation before running the cmdlet. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - Description - - Gets or sets the team's Description. - - System.String - - System.String - - - None - - - DiscoverySetting - - Governs discoverability of a team. To construct, see NOTES section for DISCOVERYSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings - - - None - - - DisplayName - - Gets or sets the team's DisplayName. - - System.String - - System.String - - - None - - - FunSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamFunSettings - - - None - - - GuestSetting - - Guest role settings for the team. To construct, see NOTES section for GUESTSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamGuestSettings - - - 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 - - Gets or sets template icon. - - System.String - - System.String - - - 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 - - - IsMembershipLimitedToOwner - - Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - MemberSetting - - Member role settings for the team. To construct, see NOTES section for MEMBERSETTING properties and create a hash table. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings - - - None - - - MessagingSetting - - 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. - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMessagingSettings - - - None - - - OdataId - - A composite URI of a template. - - System.String - - System.String - - - None - - - OwnerUserObjectId - - Gets or sets the Microsoft Entra 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. - - System.String - - System.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 - - SwitchParameter - - - False - - - 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 - - - WhatIf - - Shows what would happen if the cmdlet runs. The cmdlet is not run. - - System.Management.Automation.SwitchParameter - - System.Management.Automation.SwitchParameter - - - False - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate - - - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse - - - - - - - - Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorObject - - - - - - - - - ALIASES - COMPLEX PARAMETER PROPERTIES - To 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 <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. - - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - BODY <ITeamTemplate>: The client input for a request to create a template. Only admins from Config Api can perform this request. - - `DisplayName <String>`: Gets or sets the team's DisplayName. - - `ShortDescription <String>`: Gets or sets template short description. - - `[App <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. - - `[Id <String>]`: Gets or sets the app's ID in the global apps catalog. - `[Category <String[]>]`: Gets or sets list of categories. - - `[Channel <IChannelTemplate[]>]`: Gets or sets the set of channel templates included in the team template. - - `[Description <String>]`: Gets or sets channel description as displayed to users. - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - `[Id <String>]`: Gets or sets identifier for the channel template. - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating 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 <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - `[Classification <String>]`: Gets or sets the team's classification. Tenant admins configure Microsoft Entra ID with the set of possible values. - - `[Description <String>]`: Gets or sets the team's Description. - - `[DiscoverySetting <ITeamDiscoverySettings>]`: Governs discoverability of a team. - - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - `[FunSetting <ITeamFunSettings>]`: Governs use of fun media like giphy and stickers in the team. - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - `[GuestSetting <ITeamGuestSettings>]`: Guest role settings for the team. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - `[Icon <String>]`: Gets or sets template icon. - - `[IsMembershipLimitedToOwner <Boolean?>]`: Gets or sets whether to limit the membership of the team to owners in the Microsoft Entra group until an owner "activates" the team. - - `[MemberSetting <ITeamMemberSettings>]`: Member role settings for the team. - - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - `[MessagingSetting <ITeamMessagingSettings>]`: 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 <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - `AllowUserEditMessage <Boolean>`: Gets or sets a value indicating whether team members can edit their own messages in team conversations. - `[OwnerUserObjectId <String>]`: Gets or sets the Microsoft Entra 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 <String>]`: Gets or sets published name. - - `[Specialization <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. - - `[TemplateId <String>]`: Gets or sets the id of the base template for the team. Either a Microsoft base template or a custom template. - - `[Uri <String>]`: Gets or sets uri to be used for GetTemplate api call. - - `[Visibility <String>]`: Used to control the scope of users who can view a group/team and its members, and ability to join. - - CHANNEL <IChannelTemplate[]>: Gets or sets the set of channel templates included in the team template. - - `[Description <String>]`: Gets or sets channel description as displayed to users. - - `[DisplayName <String>]`: Gets or sets channel name as displayed to users. - - `[Id <String>]`: Gets or sets identifier for the channel template. - - `[IsFavoriteByDefault <Boolean?>]`: Gets or sets a value indicating 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 <IChannelTabTemplate[]>]`: Gets or sets collection of tabs that should be added to the channel. - - `[Configuration <ITeamsTabConfiguration>]`: Represents the configuration of a tab. - `[ContentUrl <String>]`: Gets or sets the Url used for rendering tab contents in Teams. - `[EntityId <String>]`: Gets or sets the identifier for the entity hosted by the tab provider. - `[RemoveUrl <String>]`: Gets or sets the Url that is invoked when the user tries to remove a tab from the FE client. - `[WebsiteUrl <String>]`: Gets or sets the Url for showing tab contents outside of Teams. - `[Id <String>]`: Gets or sets identifier for the channel tab template. - `[Key <String>]`: Gets a unique identifier. - `[MessageId <String>]`: Gets or sets id used to identify the chat message associated with the tab. - `[Name <String>]`: Gets or sets the tab name displayed to users. - `[SortOrderIndex <String>]`: Gets or sets index of the order used for sorting tabs. - `[TeamsAppId <String>]`: Gets or sets the app's id in the global apps catalog. - `[WebUrl <String>]`: Gets or sets the deep link url of the tab instance. - DISCOVERYSETTING <ITeamDiscoverySettings>: Governs discoverability of a team. - - `ShowInTeamsSearchAndSuggestion <Boolean>`: Gets or sets value indicating if team is visible within search and suggestions in Teams clients. - FUNSETTING <ITeamFunSettings>: Governs use of fun media like giphy and stickers in the team. - - `AllowCustomMeme <Boolean>`: Gets or sets a value indicating whether users are allowed to create and post custom meme images in team conversations. - - `AllowGiphy <Boolean>`: Gets or sets a value indicating whether users can post giphy content in team conversations. - - `AllowStickersAndMeme <Boolean>`: Gets or sets a value indicating whether users can post stickers and memes in team conversations. - - `GiphyContentRating <String>`: Gets or sets the rating filter on giphy content. - - GUESTSETTING <ITeamGuestSettings>: Guest role settings for the team. - - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether guests can create or edit channels in the team. - - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether guests can delete team channels. - - INPUTOBJECT <IConfigApiBasedCmdletsIdentity>: Identity Parameter - - `[Bssid <String>]`: - - `[ChassisId <String>]`: - - `[CivicAddressId <String>]`: Civic address id. - - `[Country <String>]`: - - `[GroupId <String>]`: The ID of a group whose policy assignments will be returned. - - `[Id <String>]`: - - `[Identity <String>]`: - - `[Locale <String>]`: - - `[LocationId <String>]`: Location id. - - `[OdataId <String>]`: A composite URI of a template. - - `[OperationId <String>]`: The ID of a batch policy assignment operation. - - `[OrderId <String>]`: - - `[PackageName <String>]`: The name of a specific policy package - - `[PolicyType <String>]`: The policy type for which group policy assignments will be returned. - - `[Port <String>]`: - - `[PortInOrderId <String>]`: - - `[PublicTemplateLocale <String>]`: Language and country code for localization of publicly available templates. - - `[SubnetId <String>]`: - - `[TenantId <String>]`: - - `[UserId <String>]`: UserId. Supports Guid. Eventually UPN and SIP. - - MEMBERSETTING <ITeamMemberSettings>: Member role settings for the team. - - `AllowAddRemoveApp <Boolean>`: Gets or sets a value indicating whether members can add or remove apps in the team. - - `AllowCreatePrivateChannel <Boolean>`: Gets or Sets a value indicating whether members can create Private channels. - - `AllowCreateUpdateChannel <Boolean>`: Gets or sets a value indicating whether members can create or edit channels in the team. - - `AllowCreateUpdateRemoveConnector <Boolean>`: Gets or sets a value indicating whether members can add, edit, or remove connectors in the team. - - `AllowCreateUpdateRemoveTab <Boolean>`: Gets or sets a value indicating whether members can add, edit or remove pinned tabs in the team. - - `AllowDeleteChannel <Boolean>`: Gets or sets a value indicating whether members can delete team channels. - - `UploadCustomApp <Boolean>`: Gets or sets a value indicating is allowed to upload custom apps. - - MESSAGINGSETTING <ITeamMessagingSettings>: Governs use of messaging features within the teamThese are settings the team owner should be able to modify from UI after team creation. - - `AllowChannelMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention entire channels in team conversations. - - `AllowOwnerDeleteMessage <Boolean>`: Gets or sets a value indicating whether team owners can delete anyone's messages in team conversations. - - `AllowTeamMention <Boolean>`: Gets or sets a value indicating whether team members can at-mention the entire team in team conversations. - - `AllowUserDeleteMessage <Boolean>`: Gets or sets a value indicating whether team members can delete their own messages in team conversations. - - `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/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) - - - - - -------------------------- EXAMPLE 1 -------------------------- - PS C:\> (Get-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR') > input.json -# open json in your favorite editor, make changes - -Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' -Body (Get-Content '.\input.json' | Out-String) - - Step 1: Creates a JSON file of the template you have specified. Step 2: Updates the template with JSON file you have edited. - - - - -------------------------- EXAMPLE 2 -------------------------- - PS C:\> $template = New-Object Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.TeamTemplate -Property @{` -DisplayName='New Template';` -ShortDescription='Short Definition';` -Description='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` - }` -} - -PS C:\> Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' -Body $template - - Update to a new object - - - - -------------------------- EXAMPLE 3 -------------------------- - PS C:\> Update-CsTeamTemplate -OdataId '/api/teamtemplates/v1.0/bfd1ccc8-40f4-4996-833f-461947d23348/Tenant/fr-FR' ` --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 ` -} - - > [!Note] > It can take up to 24 hours for Teams users to see a custom template change in the gallery. - - - - - - Online Version: - https://learn.microsoft.com/powershell/module/microsoftteams/update-csteamtemplate - - - - \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 b/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 deleted file mode 100644 index 1acb708033e11..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/exports/ProxyCmdletDefinitionsWithHelp.ps1 +++ /dev/null @@ -1,54499 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# 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. -# ---------------------------------------------------------------------------------- - -# .ExternalHelp en-US\MicrosoftTeams-help -function Clear-CsCacheOperation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICacheClearResponse])] -[CmdletBinding(DefaultParameterSetName='ClearExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Clear', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICacheClearRequest] - # Request to clear cache entries. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='ClearExpanded', Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Keys to be deleted from the cache. - ${KeysToDelete}, - - [Parameter(ParameterSetName='ClearExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Region from where cache keys are to be deleted. - ${Region}, - - [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 = @{ - Clear = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsCacheOperation_Clear'; - ClearExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsCacheOperation_ClearExpanded'; - } - $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 Clear-CsOCEContext { -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-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 Clear-CsRegionContext { -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Clear-CsRegionContext'; - } - $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 Connect-CsConfigApi { -[OutputType([System.Management.Automation.Runspaces.PSSession])] -[CmdletBinding(DefaultParameterSetName='DefaultSet', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantDomain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+TeamsEnvironment] - ${TeamsEnvironmentName}, - - [Parameter(ParameterSetName='DefaultSet')] - [Parameter(ParameterSetName='CredentialFlow')] - [Parameter(ParameterSetName='AccessTokenFlow')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiEnvironment] - ${UseConfigApiEnvironment}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ShowTelemetry}, - - [Parameter(ParameterSetName='CredentialFlow', Mandatory)] - [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}, - - [Parameter(ParameterSetName='CredentialFlowWithLocal', Mandatory)] - [Parameter(ParameterSetName='LocalHost', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${UseLocalHost}, - - [Parameter(ParameterSetName='CredentialFlowWithInt', Mandatory)] - [Parameter(ParameterSetName='IntHost', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${UseConfigApiInt}, - - [Parameter(ParameterSetName='CredentialFlowWithMsit', Mandatory)] - [Parameter(ParameterSetName='MsitHost', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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] - ${TenantGuid}, - - [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AccessToken}, - - [Parameter(ParameterSetName='AccessTokenFlow', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UserName} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - DefaultSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; - CredentialFlow = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Connect-CsConfigApi'; - 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) - $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 Disable-CsOnlineSipDomain { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Domain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsOnlineSipDomain'; - } - $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 Disable-CsTeamsShiftsConnectionErrorReport { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Disable1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The UUID of a report instance - ${ErrorReportId}, - - [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.DateTime] - # The timestamp indicating results should be after which date and time - ${After}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.DateTime] - # The timestamp indicating results should be before which date and time - ${Before}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The enum value of error code, human readable string defined in codebase - ${Code}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The UUID of a connector instance - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The name of the action of the controller or the name of the command - ${Operation}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The name of the executing function or procedure - ${Procedure}, - - [Parameter(ParameterSetName='Disable')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The UUID of a team in Graph - ${TeamId}, - - [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 = @{ - Disable = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_Disable'; - Disable1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_Disable1'; - DisableViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disable-CsTeamsShiftsConnectionErrorReport_DisableViaIdentity'; - } - $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 Disconnect-CsConfigApi { -[OutputType([System.Management.Automation.Runspaces.PSSession])] -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Disconnect-CsConfigApi'; - } - $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 Enable-CsOnlineSipDomain { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Domain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Enable-CsOnlineSipDomain'; - } - $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 Export-CsAcquiredPhoneNumber { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Property}, - - [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 = @{ - Export = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Export-CsAcquiredPhoneNumber_Export'; - } - $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-CsApplicationAccessPolicy { -[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-CsApplicationAccessPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationAccessPolicy'; - } - $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-CsApplicationInstanceV2ApplicationInstanceAsync { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Identity. - # Object id or UPN. - ${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-CsApplicationInstanceV2ApplicationInstanceAsync_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationInstanceV2ApplicationInstanceAsync_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-CsApplicationMeetingConfiguration { -[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-CsApplicationMeetingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsApplicationMeetingConfiguration'; - } - $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-CsAutoRestCommandInfo { -[OutputType([System.Management.Automation.Runspaces.PSSession])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Generic.Dictionary[System.String,System.Object]] - ${BoundParameters}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RemotingCommand}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigApi.Cmdlets.FlightingUtils+OverrideFlightMode] - ${FlightMode} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoRestCommandInfo'; - } - $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-CsBatchPolicyAssignmentOperation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISimpleBatchJobStatus], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBatchJobStatus])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1', Mandatory)] - [Alias('OperationId')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The ID of a batch policy assignment operation. - ${Identity}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Option filter - ${Status}, - - [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-CsBatchPolicyAssignmentOperation_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchPolicyAssignmentOperation_Get1'; - } - $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-CsBatchTeamsDeploymentStatus { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The Id of specific Orchestration - ${OrchestrationId}, - - [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-CsBatchTeamsDeploymentStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBatchTeamsDeploymentStatus_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-CsCallingLineIdentity { -[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-CsCallingLineIdentity'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCallingLineIdentity'; - } - $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-CsCloudCallDataConnection { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsCloudCallDataConnection'; - } - $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-CsCloudCallDataConnectionModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudCallDataConnection])] -[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-CsCloudCallDataConnectionModern_Get'; - } - $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-CsCloudTenant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudTenant])] -[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-CsCloudTenant_Get'; - } - $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-CsCloudUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudUser])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # UserId. - # Supports Guid. - ${UserId}, - - [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-CsCloudUser_Get'; - } - $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-CsDialPlan { -[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-CsDialPlan'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsDialPlan'; - } - $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-CsEffectiveTenantDialPlan { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OU}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ResultSize}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsEffectiveTenantDialPlan'; - } - $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-CsEffectiveTenantDialPlanModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantDialPlan])] -[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-CsEffectiveTenantDialPlanModern_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsEffectiveTenantDialPlanModern_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-CsExportAcquiredPhoneNumberStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetExportAcquiredTelephoneNumbersResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${OrderId}, - - [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-CsExportAcquiredPhoneNumberStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExportAcquiredPhoneNumberStatus_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-CsExternalAccessPolicy { -[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-CsExternalAccessPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsExternalAccessPolicy'; - } - $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-CsGroupPolicyAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGroupAssignment])] -[CmdletBinding(DefaultParameterSetName='Get2', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The ID of a group whose policy assignments will be returned. - ${GroupId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get2')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The policy type for which group policy assignments will be returned. - ${PolicyType}, - - [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-CsGroupPolicyAssignment_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsGroupPolicyAssignment_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsGroupPolicyAssignment_Get2'; - } - $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-CsHostingProvider { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Identity', Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${LocalStore}, - - [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-CsHostingProvider'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHostingProvider'; - } - $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-CsHybridTelephoneNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IHybridTelephoneNumber])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # An instance of hybrid telephone number. - ${TelephoneNumber}, - - [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-CsHybridTelephoneNumber_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHybridTelephoneNumber_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsHybridTelephoneNumber_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-CsInboundBlockedNumberPattern { -[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-CsInboundBlockedNumberPattern'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundBlockedNumberPattern'; - } - $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-CsInboundExemptNumberPattern { -[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-CsInboundExemptNumberPattern'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInboundExemptNumberPattern'; - } - $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-CsInternalConfigApiModuleVersion { -[OutputType([System.String])] -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsInternalConfigApiModuleVersion'; - } - $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-CsMasObjectChangelog { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasChangelogItem])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Identity. - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Schemas to get from MAS DB, defaults to User, UserAdminAuthoredProps, UserAuthoredProps - ${SchemaName}, - - [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] - # 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-CsMasObjectChangelog_Get'; - } - $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-CsMeetingMigrationStatus { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.DateTime]] - ${EndTime}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MigrationType}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.DateTime]] - ${StartTime}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${State}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SummaryOnly}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsMeetingMigrationStatus'; - } - $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-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Identity of the service number. - ${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] - # Identity of the bridge, optional parameter. - ${BridgeId}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # BridgeName, optional parameter. - ${BridgeName}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # City service number belongs to, optional parameter. - ${City}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # Result size to send, optional parameter. - ${ResultSize}, - - [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-CsOdcServiceNumber_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcServiceNumber_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcServiceNumber_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-CsOnlineApplicationInstance { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, - - [Parameter(Position=0)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${ResultSize}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Skip}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstance'; - } - $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-CsOnlineApplicationInstanceDiagnosticData { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceDiagnosticDataResult])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Application instance object ID. - ${ObjectId}, - - [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-CsOnlineApplicationInstanceDiagnosticData_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceDiagnosticData_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-CsOnlineApplicationInstanceV2 { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # identity. - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # resultSize. - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # skip. - ${Skip}, - - [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-CsOnlineApplicationInstanceV2_Get'; - } - $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-CsOnlineAudioConferencingRoutingPolicy { -[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-CsOnlineAudioConferencingRoutingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineAudioConferencingRoutingPolicy'; - } - $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-CsOnlineDialinConferencingBridge { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge])] -[CmdletBinding(DefaultParameterSetName='Get1', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Identity of the bridge. - ${Identity}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Name of the bridge. - ${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 = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingBridge_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingBridge_Get1'; - } - $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-CsOnlineDialinConferencingLanguagesSupported { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISupportedLanguage])] -[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-CsOnlineDialinConferencingLanguagesSupported_Get'; - } - $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-CsOnlineDialinConferencingPolicy { -[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-CsOnlineDialinConferencingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingPolicy'; - } - $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-CsOnlineDialInConferencingServiceNumber { -[CmdletBinding(DefaultParameterSetName='FiltersParams', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='FiltersParams')] - [Parameter(ParameterSetName='TenantIdParams')] - [Parameter(ParameterSetName='TenantDomainParams')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [Parameter(ParameterSetName='FiltersParams')] - [Parameter(ParameterSetName='UniqueBridgeParams')] - [Parameter(ParameterSetName='TenantIdParams')] - [Parameter(ParameterSetName='TenantDomainParams')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ParameterSetName='FiltersParams')] - [Parameter(ParameterSetName='UniqueBridgeParams')] - [Parameter(ParameterSetName='TenantIdParams')] - [Parameter(ParameterSetName='TenantDomainParams')] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ResultSize}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='UniqueBridgeParams', Mandatory)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${BridgeId}, - - [Parameter(ParameterSetName='TenantDomainParams', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantDomain}, - - [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - FiltersParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; - UniqueBridgeParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; - TenantIdParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; - TenantDomainParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; - UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingServiceNumber'; - } - $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-CsOnlineDialinConferencingTenantConfiguration { -[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-CsOnlineDialinConferencingTenantConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialinConferencingTenantConfiguration'; - } - $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-CsOnlineDialInConferencingTenantSettings { -[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-CsOnlineDialInConferencingTenantSettings'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialInConferencingTenantSettings'; - } - $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-CsOnlineDialOutPolicy { -[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-CsOnlineDialOutPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDialOutPolicy'; - } - $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-CsOnlineDirectoryTenant { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineDirectoryTenant'; - } - $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-CsOnlineEnhancedEmergencyServiceDisclaimer { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Version}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineEnhancedEmergencyServiceDisclaimer'; - } - $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-CsOnlineLisCivicAddress { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AssignmentStatus}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${CivicAddressId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${LocationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${NumberOfResultsToSkip}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PopulateNumberOfTelephoneNumbers}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PopulateNumberOfVoiceUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ResultSize}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ValidationStatus}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddress'; - } - $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-CsOnlineLisCivicAddressModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${City}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${NumberOfResultsToSkip}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${PopulateNumberOfTelephoneNumbers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${PopulateNumberOfVoiceUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisCivicAddressModern_Get'; - } - $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-CsOnlineLisCivicAddressOnly { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${CivicAddressId}, - - [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-CsOnlineLisCivicAddressOnly_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisCivicAddressOnly_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-CsOnlineLisLocation { -[CmdletBinding(DefaultParameterSetName='GetByLocationID', PositionalBinding=$false)] -param( - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AssignmentStatus}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${NumberOfResultsToSkip}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PopulateNumberOfTelephoneNumbers}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PopulateNumberOfVoiceUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ResultSize}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ValidationStatus}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='UseCivicAddressId', Mandatory, ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${CivicAddressId}, - - [Parameter(ParameterSetName='UseLocation', Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Location}, - - [Parameter(ParameterSetName='UseLocationId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${LocationId} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GetByLocationID = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; - UseCivicAddressId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; - UseLocation = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; - UseLocationId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocation'; - } - $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-CsOnlineLisLocationModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${City}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Description}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Location}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${NumberOfResultsToSkip}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${PopulateNumberOfTelephoneNumbers}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${PopulateNumberOfVoiceUsers}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${ResultSize}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisLocationModern_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationModern_Get1'; - } - $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-CsOnlineLisLocationOnly { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Id}, - - [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(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-CsOnlineLisLocationOnly_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisLocationOnly_GetViaIdentity1'; - } - $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-CsOnlineLisPort { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=1, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PortID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPort'; - } - $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-CsOnlineLisPortModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPortResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [Parameter(ParameterSetName='Get2', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ChassisId}, - - [Parameter(ParameterSetName='Get2', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PortId}, - - [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-CsOnlineLisPortModern_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPortModern_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisPortModern_Get2'; - } - $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-CsOnlineLisSubnet { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter(Position=1, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Subnet}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnet'; - } - $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-CsOnlineLisSubnetModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISubnetResponse], [System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get2', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Subnet}, - - [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] - # . - ${LocationId}, - - [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}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_Get2'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSubnetModern_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-CsOnlineLisSwitch { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=1, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitch'; - } - $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-CsOnlineLisSwitchModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISwitchResponse], [System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get2', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ChassisId}, - - [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] - # . - ${LocationId}, - - [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}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_Get2'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisSwitchModern_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-CsOnlineLisWirelessAccessPoint { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=1, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BSSID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPoint'; - } - $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-CsOnlineLisWirelessAccessPointModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWaPResponse], [System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get2', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Bssid}, - - [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] - # . - ${LocationId}, - - [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}, - - [Parameter(ParameterSetName='Get1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - # Returns true when the command succeeds - ${PassThru} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_Get2'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineLisWirelessAccessPointModern_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-CsOnlinePSTNGateway { -[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-CsOnlinePSTNGateway'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePSTNGateway'; - } - $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-CsOnlinePstnUsage { -[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-CsOnlinePstnUsage'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlinePstnUsage'; - } - $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-CsOnlineSipDomain { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Domain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DomainStatus}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineSipDomain'; - } - $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-CsOnlineSipDomainModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenantVerifiedSipDomain])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Option filter for domain - ${Domain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Option filter for status - ${DomainStatus}, - - [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-CsOnlineSipDomainModern_Get'; - } - $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-CsOnlineTelephoneNumber { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ActivationState}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Assigned}, - - [Parameter()] - [Alias('CityCode')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CapitalOrMajorCity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Country}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExpandLocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${InventoryType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${IsNotAssigned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NumberType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumberGreaterThan}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumberLessThan}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumberStartsWith}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumber'; - } - $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-CsOnlineTelephoneNumberCountry { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCountry], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[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-CsOnlineTelephoneNumberCountry_Get'; - } - $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-CsOnlineTelephoneNumberType { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletPlan], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Country}, - - [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-CsOnlineTelephoneNumberType_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineTelephoneNumberType_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-CsOnlineUser { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Filter}, - - [Parameter(Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${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()] - [Alias('Sort')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderBy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Properties}, - - [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\Get-CsOnlineUser'; - } - $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-CsOnlineVoicemailPolicy { -[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-CsOnlineVoicemailPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoicemailPolicy'; - } - $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-CsOnlineVoiceRoute { -[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-CsOnlineVoiceRoute'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoute'; - } - $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-CsOnlineVoiceRoutingPolicy { -[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-CsOnlineVoiceRoutingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceRoutingPolicy'; - } - $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-CsOnlineVoiceUser { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${CivicAddressId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${EnterpriseVoiceStatus}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExpandLocation}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${First}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${GetFromAAD}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${GetPendingUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${LocationId}, - - [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.Object] - ${PSTNConnectivity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SearchQuery}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Skip}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineVoiceUser'; - } - $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-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])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ActivationState}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${AssignedPstnTargetId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${AssignmentCategory}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CapabilitiesContain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Filter}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${IsoCountryCode}, - - [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] - # . - ${NumberType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PstnAssignmentStatus}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${Skip}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumberContain}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumberGreaterThan}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumberLessThan}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumberStartsWith}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${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 = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberAssignment_Get'; - } - $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-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')] - [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 = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsPhoneNumberPolicyAssignment_Get'; - } - $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-CsPhoneNumberTag { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletTenantTagRecord])] -[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-CsPhoneNumberTag_Get'; - } - $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-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='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] - # 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-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) - $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-CsRegionContext { -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsRegionContext'; - } - $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-CsSdgBulkSignInRequestsSummary { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestsSummaryResponseItem])] -[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-CsSdgBulkSignInRequestsSummary_Get'; - } - $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-CsSdgBulkSignInRequestStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgBulkSignInRequestStatusResult])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # batchid for which the status needs to be fetched - ${Batchid}, - - [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-CsSdgBulkSignInRequestStatus_Get'; - } - $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-CsSessionState { -[OutputType([System.Management.Automation.Runspaces.PSSession])] -[CmdletBinding(PositionalBinding=$false)] -param() - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsSessionState'; - } - $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-CsTeamsAcsFederationConfiguration { -[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-CsTeamsAcsFederationConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAcsFederationConfiguration'; - } - $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-CsTeamsAppPermissionPolicy { -[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-CsTeamsAppPermissionPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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 - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsTeamsAppSetupPolicy { -[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-CsTeamsAppSetupPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAppSetupPolicy'; - } - $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-CsTeamsAudioConferencingPolicy { -[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-CsTeamsAudioConferencingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsAudioConferencingPolicy'; - } - $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-CsTeamsCallHoldPolicy { -[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-CsTeamsCallHoldPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallHoldPolicy'; - } - $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-CsTeamsCallingPolicy { -[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-CsTeamsCallingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallingPolicy'; - } - $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-CsTeamsCallParkPolicy { -[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-CsTeamsCallParkPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCallParkPolicy'; - } - $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-CsTeamsChannelsPolicy { -[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-CsTeamsChannelsPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsChannelsPolicy'; - } - $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-CsTeamsClientConfiguration { -[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-CsTeamsClientConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsClientConfiguration'; - } - $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-CsTeamsComplianceRecordingApplication { -[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-CsTeamsComplianceRecordingApplication'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingApplication'; - } - $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-CsTeamsComplianceRecordingPolicy { -[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-CsTeamsComplianceRecordingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsComplianceRecordingPolicy'; - } - $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-CsTeamsCortanaPolicy { -[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-CsTeamsCortanaPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsCortanaPolicy'; - } - $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-CsTeamsEducationAssignmentsAppPolicy { -[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-CsTeamsEducationAssignmentsAppPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationAssignmentsAppPolicy'; - } - $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-CsTeamsEducationConfiguration { -[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-CsTeamsEducationConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEducationConfiguration'; - } - $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-CsTeamsEmergencyCallingPolicy { -[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-CsTeamsEmergencyCallingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallingPolicy'; - } - $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-CsTeamsEmergencyCallRoutingPolicy { -[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-CsTeamsEmergencyCallRoutingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEmergencyCallRoutingPolicy'; - } - $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-CsTeamsEnhancedEncryptionPolicy { -[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-CsTeamsEnhancedEncryptionPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEnhancedEncryptionPolicy'; - } - $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-CsTeamsEventsPolicy { -[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-CsTeamsEventsPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsEventsPolicy'; - } - $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-CsTeamsFeedbackPolicy { -[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-CsTeamsFeedbackPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFeedbackPolicy'; - } - $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-CsTeamsFilesPolicy { -[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-CsTeamsFilesPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsFilesPolicy'; - } - $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-CsTeamsGuestCallingConfiguration { -[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-CsTeamsGuestCallingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestCallingConfiguration'; - } - $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-CsTeamsGuestMeetingConfiguration { -[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-CsTeamsGuestMeetingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMeetingConfiguration'; - } - $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-CsTeamsGuestMessagingConfiguration { -[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-CsTeamsGuestMessagingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsGuestMessagingConfiguration'; - } - $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-CsTeamsIPPhonePolicy { -[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-CsTeamsIPPhonePolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsIPPhonePolicy'; - } - $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-CsTeamsMediaLoggingPolicy { -[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-CsTeamsMediaLoggingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMediaLoggingPolicy'; - } - $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-CsTeamsMeetingBroadcastConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExposeSDNConfigurationJsonBlob}, - - [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-CsTeamsMeetingBroadcastConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastConfiguration'; - } - $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-CsTeamsMeetingBroadcastPolicy { -[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-CsTeamsMeetingBroadcastPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingBroadcastPolicy'; - } - $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-CsTeamsMeetingConfiguration { -[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-CsTeamsMeetingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingConfiguration'; - } - $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-CsTeamsMeetingPolicy { -[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-CsTeamsMeetingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMeetingPolicy'; - } - $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-CsTeamsMessagingPolicy { -[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-CsTeamsMessagingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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 Get-CsTeamsMigrationConfiguration { -[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-CsTeamsMigrationConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsMigrationConfiguration'; - } - $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-CsTeamsMobilityPolicy { -[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-CsTeamsMobilityPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-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 Get-CsTeamsNetworkRoamingPolicy { -[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-CsTeamsNetworkRoamingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNetworkRoamingPolicy'; - } - $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-CsTeamsNotificationAndFeedsPolicy { -[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-CsTeamsNotificationAndFeedsPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsNotificationAndFeedsPolicy'; - } - $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-CsTeamsRoomVideoTeleConferencingPolicy { -[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-CsTeamsRoomVideoTeleConferencingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsRoomVideoTeleConferencingPolicy'; - } - $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-CsTeamsShiftsAppPolicy { -[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-CsTeamsShiftsAppPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsAppPolicy'; - } - $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-CsTeamsShiftsConnectionConnector { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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-CsTeamsShiftsConnectionConnector_Get'; - } - $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-CsTeamsShiftsConnectionErrorReport { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorReportResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The UUID of a report instance - ${ErrorReportId}, - - [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] - # . - ${Activeness}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${After}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Before}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Code}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ConnectionId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Operation}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Procedure}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TeamId}, - - [Parameter(ParameterSetName='Get')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [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-CsTeamsShiftsConnectionErrorReport_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionErrorReport_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionErrorReport_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-CsTeamsShiftsConnectionInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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-CsTeamsShiftsConnectionInstance_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionInstance_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionInstance_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-CsTeamsShiftsConnectionOperation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetOperationResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${OperationId}, - - [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-CsTeamsShiftsConnectionOperation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionOperation_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-CsTeamsShiftsConnectionSyncResult { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetUserSyncResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Team Id - ${TeamId}, - - [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-CsTeamsShiftsConnectionSyncResult_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionSyncResult_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-CsTeamsShiftsConnectionTeamMap { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamConnectResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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-CsTeamsShiftsConnectionTeamMap_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionTeamMap_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-CsTeamsShiftsConnectionWfmTeam { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmTeam], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmTeamResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connection Id. - ${ConnectionId}, - - [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='Get1')] - [Parameter(ParameterSetName='GetViaIdentity1')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [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-CsTeamsShiftsConnectionWfmTeam_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmTeam_GetViaIdentity1'; - } - $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-CsTeamsShiftsConnectionWfmUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserAutoGenerated], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Team Id - ${WfmTeamId}, - - [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-CsTeamsShiftsConnectionWfmUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnectionWfmUser_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-CsTeamsShiftsConnection { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connection Id. - ${ConnectionId}, - - [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('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [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-CsTeamsShiftsConnection_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnection_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsConnection_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-CsTeamsShiftsPolicy { -[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-CsTeamsShiftsPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsShiftsPolicy'; - } - $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-CsTeamsSurvivableBranchAppliance { -[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-CsTeamsSurvivableBranchAppliance'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliance'; - } - $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-CsTeamsSurvivableBranchAppliancePolicy { -[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-CsTeamsSurvivableBranchAppliancePolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsSurvivableBranchAppliancePolicy'; - } - $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-CsTeamsTargetingPolicy { -[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-CsTeamsTargetingPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTargetingPolicy'; - } - $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-CsTeamsTranslationRule { -[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-CsTeamsTranslationRule'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsTranslationRule'; - } - $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-CsTeamsUnassignedNumberTreatment { -[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-CsTeamsUnassignedNumberTreatment'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUnassignedNumberTreatment'; - } - $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-CsTeamsUpdateManagementPolicy { -[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-CsTeamsUpdateManagementPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpdateManagementPolicy'; - } - $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-CsTeamsUpgradeConfiguration { -[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-CsTeamsUpgradeConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradeConfiguration'; - } - $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-CsTeamsUpgradePolicy { -[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-CsTeamsUpgradePolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsUpgradePolicy'; - } - $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-CsTeamsVdiPolicy { -[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-CsTeamsVdiPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVdiPolicy'; - } - $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-CsTeamsVideoInteropServicePolicy { -[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-CsTeamsVideoInteropServicePolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVideoInteropServicePolicy'; - } - $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-CsTeamsVoiceApplicationsPolicy { -[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-CsTeamsVoiceApplicationsPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsVoiceApplicationsPolicy'; - } - $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-CsTeamsWorkLoadPolicy { -[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-CsTeamsWorkLoadPolicy'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamsWorkLoadPolicy'; - } - $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-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # A composite URI of a template. - ${OdataId}, - - [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-CsTeamTemplate_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTeamTemplate_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-CsTenant { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Filter}, - - [Parameter(Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ResultSize}, - - [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\Get-CsTenant'; - } - $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-CsTenantApp { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITenant])] -[CmdletBinding(DefaultParameterSetName='Get', 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.String] - # Properties to select - ${Select}, - - [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-CsTenantApp_Get'; - } - $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-CsTenantBlockedCallingNumbers { -[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-CsTenantBlockedCallingNumbers'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantBlockedCallingNumbers'; - } - $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-CsTenantDialPlan { -[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-CsTenantDialPlan'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantDialPlan'; - } - $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-CsTenantFederationConfiguration { -[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-CsTenantFederationConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantFederationConfiguration'; - } - $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-CsTenantLicensingConfiguration { -[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-CsTenantLicensingConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLicensingConfiguration'; - } - $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-CsTenantLocationPhoneNumberAsync { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The civic address Id. - ${CivicAddressId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The location Id. - ${LocationId}, - - [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(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-CsTenantLocationPhoneNumberAsync_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationPhoneNumberAsync_GetViaIdentity1'; - } - $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-CsTenantLocationUserAsync { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Civic address id. - ${CivicAddressId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Location id. - ${LocationId}, - - [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(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-CsTenantLocationUserAsync_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_Get1'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantLocationUserAsync_GetViaIdentity1'; - } - $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-CsTenantMigrationConfiguration { -[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-CsTenantMigrationConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantMigrationConfiguration'; - } - $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-CsTenantNetworkConfiguration { -[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-CsTenantNetworkConfiguration'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkConfiguration'; - } - $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-CsTenantNetworkRegion { -[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-CsTenantNetworkRegion'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkRegion'; - } - $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-CsTenantNetworkSite { -[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-CsTenantNetworkSite'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSite'; - } - $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-CsTenantNetworkSubnet { -[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-CsTenantNetworkSubnet'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantNetworkSubnet'; - } - $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-CsTenantPhoneAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Parameter(ParameterSetName='Get2', Mandatory)] - [Parameter(ParameterSetName='Get3', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Civic address id. - ${CivicAddressId}, - - [Parameter(ParameterSetName='Get2', Mandatory)] - [Parameter(ParameterSetName='Get3', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Location id. - ${LocationId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity3', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsTenantPhoneAssignment_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get2'; - Get3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_Get3'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity1'; - GetViaIdentity2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity2'; - GetViaIdentity3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantPhoneAssignment_GetViaIdentity3'; - } - $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-CsTenantTrustedIPAddress { -[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-CsTenantTrustedIPAddress'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantTrustedIPAddress'; - } - $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-CsTenantUserAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Parameter(ParameterSetName='Get1', Mandatory)] - [Parameter(ParameterSetName='Get2', Mandatory)] - [Parameter(ParameterSetName='Get3', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Civic address id. - ${CivicAddressId}, - - [Parameter(ParameterSetName='Get2', Mandatory)] - [Parameter(ParameterSetName='Get3', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Location id. - ${LocationId}, - - [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='GetViaIdentity3', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsTenantUserAssignment_Get'; - Get1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get1'; - Get2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get2'; - Get3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_Get3'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity'; - GetViaIdentity1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity1'; - GetViaIdentity2 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity2'; - GetViaIdentity3 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsTenantUserAssignment_GetViaIdentity3'; - } - $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-CsUserApp { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserMas])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # UserId. - # Supports Guid. - ${UserId}, - - [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] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [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(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-CsUserApp_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserApp_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-CsUserCallingSettings { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings])] -[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-CsUserCallingSettings_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserCallingSettings_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-CsUserPolicyAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IEffectivePolicy])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Alias('User')] - [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()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # The policy type for which group policy assignments will be returned. - ${PolicyType}, - - [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-CsUserPolicyAssignment_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUserPolicyAssignment_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-CsUserPolicyPackageRecommendation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageRecommendation], [System.String])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # The user that will receive policy package recommendations if provided - ${Identity}, - - [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-CsUserPolicyPackageRecommendation_Get'; - } - $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-CsUserPolicyPackage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsFormattedPackageSummary], [System.String])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # The user - ${Identity}, - - [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-CsUserPolicyPackage_Get'; - } - $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-CsUssUserSettings { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # TenantId. - # Guid - ${TenantId}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # UserId. - # Guid - ${UserId}, - - [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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Setting name - ${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 = @{ - Get = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUssUserSettings_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUssUserSettings_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-CsVideoInteropServiceProvider { -[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-CsVideoInteropServiceProvider'; - Filter = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsVideoInteropServiceProvider'; - } - $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 Grant-CsApplicationAccessPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsApplicationAccessPolicy'; - } - $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 Grant-CsCallingLineIdentity { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsCallingLineIdentity'; - } - $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 Grant-CsDialoutPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsDialoutPolicy'; - } - $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 Grant-CsExternalAccessPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsExternalAccessPolicy'; - } - $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 Grant-CsOnlineAudioConferencingRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineAudioConferencingRoutingPolicy'; - } - $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 Grant-CsOnlineVoicemailPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoicemailPolicy'; - } - $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 Grant-CsOnlineVoiceRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsOnlineVoiceRoutingPolicy'; - } - $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 Grant-CsTeamsAppPermissionPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppPermissionPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppPermissionPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-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 - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# .ExternalHelp en-US\MicrosoftTeams-help -function Grant-CsTeamsAppSetupPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAppSetupPolicy'; - } - $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 Grant-CsTeamsAudioConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsAudioConferencingPolicy'; - } - $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 Grant-CsTeamsCallHoldPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallHoldPolicy'; - } - $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 Grant-CsTeamsCallingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallingPolicy'; - } - $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 Grant-CsTeamsCallParkPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCallParkPolicy'; - } - $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 Grant-CsTeamsChannelsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsChannelsPolicy'; - } - $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 Grant-CsTeamsComplianceRecordingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsComplianceRecordingPolicy'; - } - $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 Grant-CsTeamsCortanaPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsCortanaPolicy'; - } - $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 Grant-CsTeamsEmergencyCallingPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallingPolicy'; - } - $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 Grant-CsTeamsEmergencyCallRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEmergencyCallRoutingPolicy'; - } - $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 Grant-CsTeamsEnhancedEncryptionPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEnhancedEncryptionPolicy'; - } - $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 Grant-CsTeamsEventsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsEventsPolicy'; - } - $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 Grant-CsTeamsFeedbackPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFeedbackPolicy'; - } - $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 Grant-CsTeamsFilesPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsFilesPolicy'; - } - $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 Grant-CsTeamsIPPhonePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsIPPhonePolicy'; - } - $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 Grant-CsTeamsMediaLoggingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMediaLoggingPolicy'; - } - $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 Grant-CsTeamsMeetingBroadcastPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingBroadcastPolicy'; - } - $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 Grant-CsTeamsMeetingPolicy { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMeetingPolicy'; - } - $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 Grant-CsTeamsMessagingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMessagingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMessagingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-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 Grant-CsTeamsMobilityPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMobilityPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsMobilityPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-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 Grant-CsTeamsRoomVideoTeleConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsRoomVideoTeleConferencingPolicy'; - } - $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 Grant-CsTeamsShiftsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsShiftsPolicy'; - } - $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 Grant-CsTeamsSurvivableBranchAppliancePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsSurvivableBranchAppliancePolicy'; - } - $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 Grant-CsTeamsUpdateManagementPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpdateManagementPolicy'; - } - $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 Grant-CsTeamsUpgradePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MigrateMeetingsToTeams}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsUpgradePolicy'; - } - $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 Grant-CsTeamsVdiPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVdiPolicy'; - } - $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 Grant-CsTeamsVideoInteropServicePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVideoInteropServicePolicy'; - } - $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 Grant-CsTeamsVoiceApplicationsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsVoiceApplicationsPolicy'; - } - $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 Grant-CsTeamsWorkLoadPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTeamsWorkLoadPolicy'; - } - $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 Grant-CsTenantDialPlan { -[CmdletBinding(DefaultParameterSetName='GrantToTenant', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='GrantToTenant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsTenantDialPlan'; - } - $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 Grant-CsUserPolicyPackage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsPostPackageResponse])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PackageName}, - - [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 = @{ - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsUserPolicyPackage_GrantExpanded'; - } - $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 Invoke-CsCustomHandlerNgtprov { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='CustomExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Custom', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICustomHandlerPayload] - # Payload for custom Handler - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='CustomExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Custom Handler Fully Qualified Name - ${HandlerFullyQualifiedName}, - - [Parameter(ParameterSetName='CustomExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # PayLoad for Custom Handler - ${Payload}, - - [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 = @{ - Custom = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerNgtprov_Custom'; - CustomExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerNgtprov_CustomExpanded'; - } - $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 Invoke-CsInternalBeginmove { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMigrationData])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBeginMoveRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MajorVersion}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalBeginmove_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalBeginmove_InternalExpanded'; - } - $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 Invoke-CsInternalCompletemove { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICompleteMoveRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MajorVersion}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalCompletemove_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalCompletemove_InternalExpanded'; - } - $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 Invoke-CsInternalGetpolicy { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IKeyValuePairStringItem])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserSipUriRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalGetpolicy_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalGetpolicy_InternalExpanded'; - } - $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 Invoke-CsInternalPsTelemetry { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TeamsModuleAuthTypeUsed} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalPsTelemetry'; - } - $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 Invoke-CsInternalRehomeuser { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IRehomeUserRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MoveToCloud}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckCpc}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckEnterpriseVoice}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataMoveToTeam}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRehomeuser_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRehomeuser_InternalExpanded'; - } - $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 Invoke-CsInternalRollback { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserSipUriRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRollback_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalRollback_InternalExpanded'; - } - $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 Invoke-CsInternalSelfhostLogger { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LogLevel}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Message} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSelfhostLogger'; - } - $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 Invoke-CsInternalSetmovedresourcedata { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISetMovedResourceDataRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MajorVersion}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ResourceDataDatastr}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckCpc}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckEnterpriseVoice}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataMoveToTeam}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSetmovedresourcedata_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalSetmovedresourcedata_InternalExpanded'; - } - $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 Invoke-CsInternalTelemetryRelayApp { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITelemetryRelayResponseSessionConfiguration], [System.String])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectPowershellTelemetry] - # The version numbers for the relevant powershell modules, possibly installed on the machine. - # NOTE: This definition must be manually kept same as defined in - # src\Microsoft.TeamsCmdlets.PowerShell.Connect\ConnectMicrosoftTeams.cs of the repository - # https://domoreexp.visualstudio.com/DefaultCollection/Teamspace/_git/teams-powershellcmdlet. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the ConfigApiPowershell module. - ${ConfigApiPowershellModuleVersion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the MicrosoftTeams powershell module. - ${MicrosoftTeamsPsVersion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the Skype For Business Online Connector. - ${SfBOnlineConnectorPsversion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets Authentication type used by MicrosoftTeams module. - ${TeamsModuleAuthTypeUsed}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelayApp_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelayApp_InternalExpanded'; - } - $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 Invoke-CsInternalTelemetryRelay { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITelemetryRelayResponseSessionConfiguration], [System.String])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectPowershellTelemetry] - # The version numbers for the relevant powershell modules, possibly installed on the machine. - # NOTE: This definition must be manually kept same as defined in - # src\Microsoft.TeamsCmdlets.PowerShell.Connect\ConnectMicrosoftTeams.cs of the repository - # https://domoreexp.visualstudio.com/DefaultCollection/Teamspace/_git/teams-powershellcmdlet. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the ConfigApiPowershell module. - ${ConfigApiPowershellModuleVersion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the MicrosoftTeams powershell module. - ${MicrosoftTeamsPsVersion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets the Version of the Skype For Business Online Connector. - ${SfBOnlineConnectorPsversion}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or Sets Authentication type used by MicrosoftTeams module. - ${TeamsModuleAuthTypeUsed}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelay_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalTelemetryRelay_InternalExpanded'; - } - $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 Invoke-CsInternalValidateuser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDeploymentInfo])] -[CmdletBinding(DefaultParameterSetName='InternalExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Internal', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IValidateUserRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CmdletVersion}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${Force}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${LocalDeploymentInfoMajorVersion}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LocalDeploymentInfoPresenceFqdn}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LocalDeploymentInfoRegistrarFqdn}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${MoveToCloud}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckCpc}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataCheckEnterpriseVoice}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${TeamDataMoveToTeam}, - - [Parameter(ParameterSetName='InternalExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UserSipUri}, - - [Parameter(ParameterSetName='InternalExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LocalDeploymentInfoHostingProviderFqdn}, - - [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 = @{ - Internal = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalValidateuser_Internal'; - InternalExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsInternalValidateuser_InternalExpanded'; - } - $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 Invoke-CsRehomeuser { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Post', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Post', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # UserId. - ${UserId}, - - [Parameter(ParameterSetName='PostViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${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()] - [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 = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsRehomeuser_Post'; - PostViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsRehomeuser_PostViaIdentity'; - } - $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 Move-CsAvsTenantPartition { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPartitionMovementResponse])] -[CmdletBinding(DefaultParameterSetName='MoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Move', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPartitionMovementRequest] - # Payload for AVS Partition Movement Request - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Tenant ID - ${BasePartitionKey}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # Batch Size - ${BatchSize}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Container Name - ${ContainerName}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # Number of Documents to be moved from Source to Target partition. - ${NumberOfDocuments}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - # Percentage of Documents to be moved from Source to Target partition. - ${PercentageOfPartition}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Source Partition from where the documents are to be moved. - # Partition key is of format 'tenantId_suffix'. - ${SourcePartitionKey}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Target Partition to where the documents are going to be moved. - # Partition key is of format 'tenantId_suffix'. - ${TargetPartitionKey}, - - [Parameter(ParameterSetName='MoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Workload - ${Workload}, - - [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 = @{ - Move = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsAvsTenantPartition_Move'; - MoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsAvsTenantPartition_MoveExpanded'; - } - $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 Move-CsInternalHelper { -[OutputType([System.Management.Automation.PSObject])] -[CmdletBinding(DefaultParameterSetName='Rehome', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ActionType}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UserSipUri}, - - [Parameter(ParameterSetName='Validate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CmdletVersion}, - - [Parameter(ParameterSetName='Validate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocalDeploymentInfoMajorVersion}, - - [Parameter(ParameterSetName='Validate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocalDeploymentInfoPresenceFqdn}, - - [Parameter(ParameterSetName='Validate', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocalDeploymentInfoRegistrarFqdn}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='Rehome')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${MoveToCloud}, - - [Parameter(ParameterSetName='Validate')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='MoveResourcedata')] - [Parameter(ParameterSetName='Rehome')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${TeamDataCheckCpc}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='MoveResourcedata')] - [Parameter(ParameterSetName='Rehome')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${TeamDataCheckEnterpriseVoice}, - - [Parameter(ParameterSetName='Validate')] - [Parameter(ParameterSetName='MoveResourcedata')] - [Parameter(ParameterSetName='Rehome')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${TeamDataMoveToTeam}, - - [Parameter(ParameterSetName='Validate')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocalDeploymentInfoHostingProviderFqdn}, - - [Parameter(ParameterSetName='MoveResourcedata', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ResourceData}, - - [Parameter(ParameterSetName='MoveResourcedata', Mandatory)] - [Parameter(ParameterSetName='BeginAndCompleteMove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MajorVersion} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Validate = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; - MoveResourcedata = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; - Rehome = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; - BeginAndCompleteMove = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Move-CsInternalHelper'; - } - $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-CsApplicationAccessPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AppIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsApplicationAccessPolicy'; - } - $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-CsBatchPolicyAssignmentOperation { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # An optional name for the batch assignment operation. - ${OperationName}, - - [Parameter(Mandatory)] - [Alias('User')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.Info(PossibleTypes=([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBatchAssignBodyAdditionalParameters]))] - [System.Collections.Hashtable] - # Dictionary of - ${AdditionalParameters}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyType}, - - [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-CsBatchPolicyAssignmentOperation_NewExpanded'; - } - $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-CsBatchPolicyPackageAssignmentOperation { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsBatchPostPackageResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PackageName}, - - [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-CsBatchPolicyPackageAssignmentOperation_NewExpanded'; - } - $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-CsCallingLineIdentity { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${BlockIncomingPstnCallerID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallingIDSubstitute}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ResourceAccount}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ServiceNumber}, - - [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\New-CsCallingLineIdentity'; - } - $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-CsCloudCallDataConnection { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCloudCallDataConnection'; - } - $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-CsCloudCallDataConnectionModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICloudCallDataConnection])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -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 = @{ - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsCloudCallDataConnectionModern_New'; - } - $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-CsEdgeAllowAllKnownDomains { -[CmdletBinding(PositionalBinding=$false)] -param( - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowAllKnownDomains'; - } - $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-CsEdgeAllowAllKnownDomainsHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowAllKnownDomainsHelper'; - } - $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-CsEdgeAllowList { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedDomain}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowList'; - } - $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-CsEdgeAllowListHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeAllowListHelper'; - } - $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-CsEdgeDomainPattern { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Domain}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeDomainPattern'; - } - $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-CsEdgeDomainPatternHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsEdgeDomainPatternHelper'; - } - $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-CsExternalAccessPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableAcsFederationAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableFederationAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOutsideAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnablePublicCloudAudioVideoAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTeamsConsumerAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTeamsConsumerInbound}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableXmppAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RestrictTeamsConsumerAccessToExternalUserProfiles}, - - [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\New-CsExternalAccessPolicy'; - } - $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-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The ID of a batch policy assignment operation. - ${GroupId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The policy type for which group policy assignments will be returned. - ${PolicyType}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${Rank}, - - [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 = @{ - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsGroupPolicyAssignment_NewExpanded'; - } - $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-CsHybridTelephoneNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IHybridTelephoneNumber])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # An instance of hybrid telephone number. - ${TelephoneNumber}, - - [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(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-CsHybridTelephoneNumber_New'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsHybridTelephoneNumber_NewViaIdentity'; - } - $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-CsInboundBlockedNumberPattern { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundBlockedNumberPattern'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundBlockedNumberPattern'; - } - $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-CsInboundExemptNumberPattern { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundExemptNumberPattern'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsInboundExemptNumberPattern'; - } - $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-CsOnlineApplicationInstance { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UserPrincipalName}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${ApplicationId}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DisplayName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstance'; - } - $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-CsOnlineApplicationInstanceV2 { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] -[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.IApplicationInstanceCreateRequest] - # The request to create an application instance. - # 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 ID. - ${ApplicationId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Display name. - ${DisplayName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # User principal name. - ${UserPrincipalName}, - - [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-CsOnlineApplicationInstanceV2_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineApplicationInstanceV2_NewExpanded'; - } - $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-CsOnlineAudioConferencingRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RouteType}, - - [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\New-CsOnlineAudioConferencingRoutingPolicy'; - } - $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-CsOnlineLisCivicAddress { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CityAlias}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyTaxId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Confidence}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Elin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumber}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumberSuffix}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsAzureMapValidationRequired}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Latitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Longitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostalCode}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostDirectional}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreDirectional}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StateOrProvince}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetName}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetSuffix}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ValidationStatus}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisCivicAddress'; - } - $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-CsOnlineLisCivicAddressModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[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.INewCivicAddress] - # . - # 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] - # . - ${City}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CityAlias}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyTaxId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Confidence}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountryOrRegion}, - - [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] - # . - ${Elin}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumber}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumberSuffix}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Latitude}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Longitude}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostDirectional}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostalCode}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PreDirectional}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StateOrProvince}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetSuffix}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisCivicAddressModern_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisCivicAddressModern_NewExpanded'; - } - $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-CsOnlineLisLocation { -[CmdletBinding(DefaultParameterSetName='ExistingCivicAddress', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Location}, - - [Parameter(ParameterSetName='ExistingCivicAddress', Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${CivicAddressId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CityAlias}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Alias('Name')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyTaxId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Confidence}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Elin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumberSuffix}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Latitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Longitude}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='CreateCivicAddress', Mandatory, ValueFromPipelineByPropertyName)] - [Alias('Country')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumber}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostalCode}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostDirectional}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreDirectional}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Alias('State')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StateOrProvince}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetName}, - - [Parameter(ParameterSetName='CreateCivicAddress', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetSuffix} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - ExistingCivicAddress = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocation'; - CreateCivicAddress = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocation'; - } - $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-CsOnlineLisLocationModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] -[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.INewLocation] - # . - # 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] - # . - ${City}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CityAlias}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyTaxId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Confidence}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountyOrDistrict}, - - [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] - # . - ${Elin}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumber}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumberSuffix}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsDefault}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Latitude}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Location}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Longitude}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PartnerId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostDirectional}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostalCode}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PreDirectional}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StateOrProvince}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetSuffix}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisLocationModern_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineLisLocationModern_NewExpanded'; - } - $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-CsOnlinePSTNGateway { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${SipSignalingPort}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BypassMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${FailoverResponseCodes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${FailoverTimeSeconds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ForwardCallHistory}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ForwardPai}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${GatewayLbrEnabledUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GatewaySiteId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${GatewaySiteLbrEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundPstnNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundTeamsNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${MaxConcurrentSessions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MediaBypass}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MediaRelayRoutingLocationOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OutboundPstnNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OutboundTeamsNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PidfLoSupported}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ProxySbc}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SendSipOptions}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Fqdn} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlinePSTNGateway'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlinePSTNGateway'; - } - $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-CsOnlineTelephoneNumberOrder { -[OutputType([System.String], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtCmdletCreateSearchOrderRequest] - # CmdletCreateSearchOrderRequest - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Telephone number country. - ${Country}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Search order description. - ${Description}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Search order name. - ${Name}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Telephone number type. - ${NumberType}, - - [Parameter(ParameterSetName='CreateExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # Number of telephone numbers to acquire. - ${Quantity}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Telephone number area code for AreaCodeSelection search. - ${AreaCode}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # CivicAddressId when RequiresCivicAddress is true. - ${CivicAddressId}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Telephone number prefix for Prefix search. - ${NumberPrefix}, - - [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 = @{ - Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberOrder_Create'; - CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineTelephoneNumberOrder_CreateExpanded'; - } - $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-CsOnlineVoicemailPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableEditingCallAnswerRulesSetting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscriptionProfanityMasking}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscriptionTranslation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.TimeSpan] - ${MaximumRecordingLength}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PrimarySystemPromptLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SecondarySystemPromptLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShareData}, - - [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\New-CsOnlineVoicemailPolicy'; - } - $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-CsOnlineVoiceRoute { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeSourcePhoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NumberPattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnGatewayList}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Priority}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoiceRoute'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsOnlineVoiceRoute'; - } - $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-CsOnlineVoiceRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RouteType}, - - [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\New-CsOnlineVoiceRoutingPolicy'; - } - $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-CsSdgDeviceTaggingRequest { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgDeviceTaggingResponse])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', 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(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISdgDeviceTaggingRequest] - # . - # 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] - # . - ${HardwareId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${IcmId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${OceUserName}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${SdhRegion}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, - - [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-CsSdgDeviceTaggingRequest_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsSdgDeviceTaggingRequest_NewExpanded'; - } - $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-CsSdgDeviceTransferRequest { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Device id of the device that is to be transferred - ${SdhDeviceId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Source Region from where the device is to be tranferred - ${SourceRegion}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Target Region where the device is to be tranferred - ${TargetRegion}, - - [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-CsSdgDeviceTransferRequest_New'; - } - $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-CsTeamsAudioConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTollFreeDialin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${MeetingInvitePhoneNumbers}, - - [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\New-CsTeamsAudioConferencingPolicy'; - } - $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-CsTeamsCallHoldPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsCallHoldPolicy'; - } - $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-CsTeamsCallingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallForwardingToPhone}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallForwardingToUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallGroups}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowCallRedirect}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCloudRecordingForCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowDelegation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSIPDevicesCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTranscriptionForCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowVoicemail}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWebPSTNCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AutoAnswerEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BusyOnBusyEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${CallRecordingExpirationDays}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveCaptionsEnabledTypeForCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MusicOnHoldEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PopoutAppPathForIncomingPstnCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PopoutForIncomingPstnCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PreventTollBypass}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SpamFilteringEnabledType}, - - [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\New-CsTeamsCallingPolicy'; - } - $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-CsTeamsCallParkPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallPark}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ParkTimeoutSeconds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${PickupRangeEnd}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${PickupRangeStart}, - - [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\New-CsTeamsCallParkPolicy'; - } - $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-CsTeamsChannelsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowChannelSharingToExternalUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOrgWideTeamCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateChannelCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateTeamDiscovery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSharedChannelCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserToParticipateInExternalSharedChannel}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsChannelsPolicy'; - } - $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-CsTeamsComplianceRecordingApplication { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ComplianceRecordingPairedApplications}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ConcurrentInvitationCount}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Priority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredBeforeCallEstablishment}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredBeforeMeetingJoin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredDuringCall}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredDuringMeeting}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Id}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Parent} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingApplication'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingApplication'; - } - $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-CsTeamsComplianceRecordingPairedApplication { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Id}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingPairedApplication'; - } - $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-CsTeamsComplianceRecordingPairedApplicationHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsComplianceRecordingPairedApplicationHelper'; - } - $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-CsTeamsComplianceRecordingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ComplianceRecordingApplications}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableComplianceRecordingAudioNotificationForCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${WarnUserOnRemoval}, - - [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\New-CsTeamsComplianceRecordingPolicy'; - } - $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-CsTeamsCortanaPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaAmbientListening}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaInContextSuggestions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaVoiceInvocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CortanaVoiceInvocationMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsCortanaPolicy'; - } - $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-CsTeamsEmergencyCallingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EnhancedEmergencyServiceDisclaimer}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ExternalLocationLookupMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NotificationDialOutNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NotificationGroup}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NotificationMode}, - - [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\New-CsTeamsEmergencyCallingPolicy'; - } - $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-CsTeamsEmergencyCallRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEnhancedEmergencyServices}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${EmergencyNumbers}, - - [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\New-CsTeamsEmergencyCallRoutingPolicy'; - } - $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-CsTeamsEmergencyNumber { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyDialMask}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyDialString}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OnlinePSTNUsage}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyNumber'; - } - $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-CsTeamsEmergencyNumberHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsEmergencyNumberHelper'; - } - $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-CsTeamsEnhancedEncryptionPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallingEndtoEndEncryptionEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingEndToEndEncryption}, - - [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\New-CsTeamsEnhancedEncryptionPolicy'; - } - $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-CsTeamsEventsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowWebinars}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EventAccessType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ForceStreamingAttendeeMode}, - - [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\New-CsTeamsEventsPolicy'; - } - $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-CsTeamsFeedbackPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEmailCollection}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowLogCollection}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowScreenshotCollection}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveSurveysMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UserInitiatedMode}, - - [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\New-CsTeamsFeedbackPolicy'; - } - $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-CsTeamsFilesPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NativeFileEntryPoints}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SPChannelFilesTab}, - - [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\New-CsTeamsFilesPolicy'; - } - $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-CsTeamsIPPhonePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowBetterTogether}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowHomeScreen}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowHotDesking}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${HotDeskingIdleTimeoutInMinutes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SearchOnCommonAreaPhoneMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SignInMode}, - - [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\New-CsTeamsIPPhonePolicy'; - } - $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-CsTeamsMeetingBroadcastPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBroadcastScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBroadcastTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BroadcastAttendeeVisibilityMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BroadcastRecordingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsMeetingBroadcastPolicy'; - } - $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-CsTeamsMeetingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnnotations}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToDialOut}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToJoinMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToStartMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAvatarsInGallery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBreakoutRooms}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCarbonSummary}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowCartCaptionsScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowChannelMeetingScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCloudRecording}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowDocumentCollaboration}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowedStreamingMediaInput}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowEngagementReport}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowExternalParticipantGiveRequestControl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowImmersiveView}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPAudio}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingCoach}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingReactions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingRegistration}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetNow}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowNDIStreaming}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowNetworkConfigurationSettingsLookup}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOrganizersToOverrideLobbySettings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOutlookAddIn}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowParticipantGiveRequestControl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPowerPointSharing}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateMeetingScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateMeetNow}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPSTNUsersToBypassLobby}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowRecordingStorageOutsideRegion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowScreenContentDigitization}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSharedNotes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowTasksFromTranscript}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowTrackingInReport}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowUserToJoinExternalMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWatermarkForCameraVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWatermarkForScreenSharing}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWhiteboard}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AutoAdmittedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BlockedAnonymousJoinClientTypes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelRecordingDownload}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DesignatedPresenterRoleMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EnrollUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${InfoShownInReportMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAudioMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPVideoMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveCaptionsEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveInterpretationEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveStreamingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${MediaBitRateKb}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingChatEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingInviteLanguages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${NewMeetingRecordingExpirationDays}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreferredMeetingProviderForIslandsMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${QnAEngagementMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RecordingStorageMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RoomAttributeUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RoomPeopleNameUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ScreenSharingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SpeakerAttributionMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreamingAttendeeMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TeamsCameraFarEndPTZMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${VideoFiltersMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WhoCanRegister}, - - [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\New-CsTeamsMeetingPolicy'; - } - $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-CsTeamsMessagingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCommunicationComplianceEndUserReporting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowFluidCollaborate}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowFullChatPermissionUserToDeleteAnyMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGiphy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGiphyDisplay}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowImmersiveReader}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMemes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOwnerDeleteMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPasteInternetImage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPriorityMessages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowRemoveUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSmartCompose}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSmartReply}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowStickers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUrlPreviews}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserEditMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserTranslation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowVideoMessages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AudioMessageEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelsInChatListEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChatPermissionRole}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GiphyRatingType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReadReceiptsEnabledType}, - - [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\New-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 New-CsTeamsMobilityPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAudioMobileMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPVideoMobileMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MobileDialerPreference}, - - [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\New-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 New-CsTeamsNetworkRoamingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${MediaBitRateKb}, - - [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\New-CsTeamsNetworkRoamingPolicy'; - } - $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-CsTeamsRoomVideoTeleConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AreaCode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PlaceExternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PlaceInternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveExternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveInternalCalls}, - - [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\New-CsTeamsRoomVideoTeleConferencingPolicy'; - } - $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-CsTeamsShiftsConnectionBatchTeamMap { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamConnectsResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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(ParameterSetName='Create', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectAadWfmTeamsRequest] - # Connect Aad Wfm Teams Request - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='CreateExpanded')] - [Parameter(ParameterSetName='CreateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMapping[]] - # The team mappings. - # To construct, see NOTES section for TEAMMAPPING properties and create a hash table. - ${TeamMapping}, - - [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 = @{ - Create = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_Create'; - CreateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateExpanded'; - CreateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateViaIdentity'; - CreateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionBatchTeamMap_CreateViaIdentityExpanded'; - } - $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-CsTeamsShiftsConnectionInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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.IConnectorInstanceRequest] - # Connector Instance Request. - # 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] - # The WFM connection id. - ${ConnectionId}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # The list of connector admin email addresses. - ${ConnectorAdminEmail}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The designated actor id that App acts as for Shifts Graph Api calls. - ${DesignatedActorId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance name. - ${Name}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM Connector Instance. - ${State}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # The sync frequency in minutes. - ${SyncFrequencyInMin}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OfferShiftRequest entity. - ${SyncScenarioOfferShiftRequest}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShift entity. - ${SyncScenarioOpenShift}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShiftRequest entity. - ${SyncScenarioOpenShiftRequest}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The Shift entity. - ${SyncScenarioShift}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The SwapRequest entity. - ${SyncScenarioSwapRequest}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeCard entity. - ${SyncScenarioTimeCard}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOff entity. - ${SyncScenarioTimeOff}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOffRequest entity. - ${SyncScenarioTimeOffRequest}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The UserShiftPreferences entity. - ${SyncScenarioUserShiftPreference}, - - [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-CsTeamsShiftsConnectionInstance_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnectionInstance_NewExpanded'; - } - $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-CsTeamsShiftsConnection { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='New', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequest] - # WFM Connection Base Request. - # 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')] - [System.String] - # The connector id. - ${ConnectorId}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionRequestConnectorSpecificSettings] - # The connector settings. - ${ConnectorSpecificSettings}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Object name. - ${Name}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM connection. - ${State}, - - [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-CsTeamsShiftsConnection_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsShiftsConnection_NewExpanded'; - } - $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-CsTeamsShiftsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${AccessGracePeriodMinutes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AccessType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableScheduleOwnerPermissions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableShiftPresence}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeFrequency}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeMessageCustom}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeMessageType}, - - [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\New-CsTeamsShiftsPolicy'; - } - $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-CsTeamsSurvivableBranchAppliance { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Site}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Fqdn} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsSurvivableBranchAppliance'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsSurvivableBranchAppliance'; - } - $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-CsTeamsSurvivableBranchAppliancePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${BranchApplianceFqdns}, - - [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\New-CsTeamsSurvivableBranchAppliancePolicy'; - } - $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-CsTeamsTranslationRule { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Translation}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsTranslationRule'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsTranslationRule'; - } - $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-CsTeamsUnassignedNumberTreatment { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Target}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${TreatmentPriority}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TreatmentId} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsUnassignedNumberTreatment'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTeamsUnassignedNumberTreatment'; - } - $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-CsTeamsUpdateManagementPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowManagedUpdates}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPreview}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowPublicPreview}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${UpdateDayOfWeek}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UpdateTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - ${UpdateTimeOfDay}, - - [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\New-CsTeamsUpdateManagementPolicy'; - } - $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-CsTeamsVdiPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableAudioVideoInCallsAndMeetings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableCallsAndMeetings}, - - [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\New-CsTeamsVdiPolicy'; - } - $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-CsTeamsVoiceApplicationsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantAfterHoursGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantAfterHoursRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidayGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidayRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidaysChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantLanguageChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantTimeZoneChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueAgentOptChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueConferenceModeChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueLanguageChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueMembershipChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueMusicOnHoldChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueNoAgentsRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOptOutChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOverflowRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOverflowSharedVoicemailGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueuePresenceBasedRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueRoutingMethodChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueTimeoutRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueTimeoutSharedVoicemailGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueWelcomeGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallQueueAgentMonitorMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallQueueAgentMonitorNotificationMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsVoiceApplicationsPolicy'; - } - $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-CsTeamsWorkLoadPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMessaging}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMessagingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [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\New-CsTeamsWorkLoadPolicy'; - } - $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-CsTenantDialPlan { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NormalizationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SimpleName}, - - [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\New-CsTenantDialPlan'; - } - $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-CsTenantNetworkRegion { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BypassID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CentralSite}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRegionID} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkRegion'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkRegion'; - } - $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-CsTenantNetworkSite { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyCallingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyCallRoutingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableLocationBasedRouting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRegionID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRoamingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SiteAddress}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkSiteID} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSite'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSite'; - } - $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-CsTenantNetworkSubnet { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${MaskBits}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkSiteID}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SubnetID} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSubnet'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantNetworkSubnet'; - } - $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-CsTenantTrustedIPAddress { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${MaskBits}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAddress} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantTrustedIPAddress'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsTenantTrustedIPAddress'; - } - $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-CsVideoInteropServiceProvider { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantKey}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AadApplicationIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAppGuestJoinsAsAuthenticated}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${InstructionUri}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVideoInteropServiceProvider'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVideoInteropServiceProvider'; - } - $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-CsVoiceNormalizationRule { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${InMemory}, - - [Parameter(ParameterSetName='Identity', Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsInternalExtension}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Priority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Translation}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter(ParameterSetName='ParentAndRelativeKey', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Parent} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRule'; - ParentAndRelativeKey = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRule'; - } - $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-CsVoiceNormalizationRuleHelper { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsVoiceNormalizationRuleHelper'; - } - $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 Register-CsOnlineDialInConferencingServiceNumber { -[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantDomain}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Instance} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOnlineDialInConferencingServiceNumber'; - InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Register-CsOnlineDialInConferencingServiceNumber'; - } - $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-CsApplicationAccessPolicy { -[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-CsApplicationAccessPolicy'; - } - $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-CsCallingLineIdentity { -[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-CsCallingLineIdentity'; - } - $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-CsCustomPolicyPackage { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The name of a policy package - ${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-CsCustomPolicyPackage_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsCustomPolicyPackage_RemoveViaIdentity'; - } - $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-CsExternalAccessPolicy { -[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-CsExternalAccessPolicy'; - } - $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-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The ID of the group from which the assignment will be removed. - ${GroupId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The policy type for which group policy assignments will be returned. - ${PolicyType}, - - [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-CsGroupPolicyAssignment_Remove'; - } - $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-CsHybridTelephoneNumber { -[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] - # hybrid telephone number. - ${TelephoneNumber}, - - [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-CsHybridTelephoneNumber_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsHybridTelephoneNumber_RemoveViaIdentity'; - } - $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-CsInboundBlockedNumberPattern { -[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-CsInboundBlockedNumberPattern'; - } - $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-CsInboundExemptNumberPattern { -[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-CsInboundExemptNumberPattern'; - } - $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-CsOnlineAudioConferencingRoutingPolicy { -[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-CsOnlineAudioConferencingRoutingPolicy'; - } - $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-CsOnlineDialInConferencingTenantSettings { -[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-CsOnlineDialInConferencingTenantSettings'; - } - $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-CsOnlineLisCivicAddress { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${CivicAddressId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisCivicAddress'; - } - $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-CsOnlineLisCivicAddressModern { -[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] - # . - ${CivicAddressId}, - - [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-CsOnlineLisCivicAddressModern_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisCivicAddressModern_RemoveViaIdentity'; - } - $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-CsOnlineLisLocation { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisLocation'; - } - $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-CsOnlineLisLocationModern { -[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] - # . - ${LocationId}, - - [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-CsOnlineLisLocationModern_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisLocationModern_RemoveViaIdentity'; - } - $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-CsOnlineLisPort { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PortID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisPort'; - } - $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-CsOnlineLisPortModern { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${ChassisId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PortId}, - - [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-CsOnlineLisPortModern_Remove'; - } - $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-CsOnlineLisSubnet { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Subnet}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSubnet'; - } - $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-CsOnlineLisSubnetModern { -[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] - # . - ${Subnet}, - - [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-CsOnlineLisSubnetModern_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSubnetModern_RemoveViaIdentity'; - } - $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-CsOnlineLisSwitch { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSwitch'; - } - $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-CsOnlineLisSwitchModern { -[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] - # . - ${ChassisId}, - - [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-CsOnlineLisSwitchModern_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisSwitchModern_RemoveViaIdentity'; - } - $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-CsOnlineLisWirelessAccessPoint { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BSSID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisWirelessAccessPoint'; - } - $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-CsOnlineLisWirelessAccessPointModern { -[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] - # . - ${Bssid}, - - [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-CsOnlineLisWirelessAccessPointModern_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineLisWirelessAccessPointModern_RemoveViaIdentity'; - } - $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-CsOnlinePSTNGateway { -[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-CsOnlinePSTNGateway'; - } - $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-CsOnlineTelephoneNumber { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${TelephoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsOnlineTelephoneNumber'; - } - $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-CsOnlineVoicemailPolicy { -[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-CsOnlineVoicemailPolicy'; - } - $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-CsOnlineVoiceRoute { -[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-CsOnlineVoiceRoute'; - } - $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-CsOnlineVoiceRoutingPolicy { -[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-CsOnlineVoiceRoutingPolicy'; - } - $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-CsPhoneNumberTag { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${Tag}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PhoneNumber}, - - [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-CsPhoneNumberTag_Remove'; - } - $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-CsTeamsAppPermissionPolicy { -[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-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 - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -# .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)] - [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-CsTeamsAppSetupPolicy'; - } - $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-CsTeamsAudioConferencingPolicy { -[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-CsTeamsAudioConferencingPolicy'; - } - $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-CsTeamsCallHoldPolicy { -[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-CsTeamsCallHoldPolicy'; - } - $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-CsTeamsCallingPolicy { -[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-CsTeamsCallingPolicy'; - } - $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-CsTeamsCallParkPolicy { -[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-CsTeamsCallParkPolicy'; - } - $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-CsTeamsChannelsPolicy { -[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-CsTeamsChannelsPolicy'; - } - $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-CsTeamsComplianceRecordingApplication { -[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-CsTeamsComplianceRecordingApplication'; - } - $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-CsTeamsComplianceRecordingPolicy { -[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-CsTeamsComplianceRecordingPolicy'; - } - $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-CsTeamsCortanaPolicy { -[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-CsTeamsCortanaPolicy'; - } - $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-CsTeamsEmergencyCallingPolicy { -[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-CsTeamsEmergencyCallingPolicy'; - } - $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-CsTeamsEmergencyCallRoutingPolicy { -[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-CsTeamsEmergencyCallRoutingPolicy'; - } - $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-CsTeamsEnhancedEncryptionPolicy { -[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-CsTeamsEnhancedEncryptionPolicy'; - } - $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-CsTeamsEventsPolicy { -[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-CsTeamsEventsPolicy'; - } - $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-CsTeamsFeedbackPolicy { -[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-CsTeamsFeedbackPolicy'; - } - $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-CsTeamsFilesPolicy { -[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-CsTeamsFilesPolicy'; - } - $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-CsTeamsIPPhonePolicy { -[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-CsTeamsIPPhonePolicy'; - } - $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-CsTeamsMeetingBroadcastPolicy { -[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-CsTeamsMeetingBroadcastPolicy'; - } - $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-CsTeamsMeetingPolicy { -[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-CsTeamsMeetingPolicy'; - } - $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-CsTeamsMessagingPolicy { -[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-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) - $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-CsTeamsNotificationAndFeedsPolicy { -[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-CsTeamsNotificationAndFeedsPolicy'; - } - $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-CsTeamsRoomVideoTeleConferencingPolicy { -[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-CsTeamsRoomVideoTeleConferencingPolicy'; - } - $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-CsTeamsShiftsConnectionInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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-CsTeamsShiftsConnectionInstance_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionInstance_RemoveViaIdentity'; - } - $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-CsTeamsShiftsConnectionTeamMap { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connector Instance Id - ${ConnectorInstanceId}, - - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Team Id - ${TeamId}, - - [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-CsTeamsShiftsConnectionTeamMap_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnectionTeamMap_RemoveViaIdentity'; - } - $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-CsTeamsShiftsConnection { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Remove', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Connection Id. - ${ConnectionId}, - - [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-CsTeamsShiftsConnection_Remove'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsConnection_RemoveViaIdentity'; - } - $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-CsTeamsShiftsPolicy { -[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-CsTeamsShiftsPolicy'; - } - $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-CsTeamsShiftsScheduleRecord { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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.IClearScheduleRequest] - # The clear schedule request. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Gets or sets a value indicating whether [clear scheduling group]. - ${ClearSchedulingGroup}, - - [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets the entity types. - ${EntityType}, - - [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team identifier. - ${TeamId}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DateRangeEndDate}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - # . - ${DateRangeStartDate}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DesignatedActorId}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets the time zone. - ${TimeZone}, - - [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-CsTeamsShiftsScheduleRecord_Remove'; - RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamsShiftsScheduleRecord_RemoveExpanded'; - } - $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-CsTeamsSurvivableBranchAppliance { -[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-CsTeamsSurvivableBranchAppliance'; - } - $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-CsTeamsSurvivableBranchAppliancePolicy { -[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-CsTeamsSurvivableBranchAppliancePolicy'; - } - $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-CsTeamsTargetingPolicy { -[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-CsTeamsTargetingPolicy'; - } - $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-CsTeamsTranslationRule { -[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-CsTeamsTranslationRule'; - } - $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-CsTeamsUnassignedNumberTreatment { -[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-CsTeamsUnassignedNumberTreatment'; - } - $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-CsTeamsUpdateManagementPolicy { -[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-CsTeamsUpdateManagementPolicy'; - } - $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-CsTeamsVdiPolicy { -[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-CsTeamsVdiPolicy'; - } - $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-CsTeamsVoiceApplicationsPolicy { -[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-CsTeamsVoiceApplicationsPolicy'; - } - $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-CsTeamsWorkLoadPolicy { -[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-CsTeamsWorkLoadPolicy'; - } - $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-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAny], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] -[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Delete', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # A composite URI of a template. - ${OdataId}, - - [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(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-CsTeamTemplate_Delete'; - DeleteViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsTeamTemplate_DeleteViaIdentity'; - } - $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-CsTenantDialPlan { -[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-CsTenantDialPlan'; - } - $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-CsTenantNetworkRegion { -[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-CsTenantNetworkRegion'; - } - $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-CsTenantNetworkSite { -[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-CsTenantNetworkSite'; - } - $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-CsTenantNetworkSubnet { -[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-CsTenantNetworkSubnet'; - } - $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-CsTenantTrustedIPAddress { -[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-CsTenantTrustedIPAddress'; - } - $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-CsUserLicenseGracePeriod { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='RemoveExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Remove', Mandatory)] - [Parameter(ParameterSetName='RemoveExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # UserId. - ${Identity}, - - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RemoveViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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='Remove', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='RemoveViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserDelicensingAccelerationPatch] - # UserDelicensingAccelerationPatch - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Action to take - ${Action}, - - [Parameter(ParameterSetName='RemoveExpanded')] - [Parameter(ParameterSetName='RemoveViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # List of capabilities - ${Capability}, - - [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-CsUserLicenseGracePeriod_Remove'; - RemoveExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveExpanded'; - RemoveViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveViaIdentity'; - RemoveViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Remove-CsUserLicenseGracePeriod_RemoveViaIdentityExpanded'; - } - $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-CsVideoInteropServiceProvider { -[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-CsVideoInteropServiceProvider'; - } - $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 Search-CsApplicationInstanceV2ApplicationInstanceAsync { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceSearchResults])] -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # keyword. - ${Keyword}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # pageSize. - ${PageSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # skipToken. - ${SkipToken}, - - [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-CsApplicationInstanceV2ApplicationInstanceAsync_Search'; - } - $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-CsApplicationAccessPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AppIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsApplicationAccessPolicy'; - } - $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-CsApplicationMeetingConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowRemoveParticipantAppIds}, - - [Parameter(Position=1)] - [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\Set-CsApplicationMeetingConfiguration'; - } - $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-CsCallingLineIdentity { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${BlockIncomingPstnCallerID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallingIDSubstitute}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableUserOverride}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ResourceAccount}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ServiceNumber}, - - [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\Set-CsCallingLineIdentity'; - } - $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-CsExternalAccessPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableAcsFederationAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableFederationAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOutsideAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnablePublicCloudAudioVideoAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTeamsConsumerAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTeamsConsumerInbound}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableXmppAccess}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RestrictTeamsConsumerAccessToExternalUserProfiles}, - - [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\Set-CsExternalAccessPolicy'; - } - $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-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The ID of a group whose policy assignments will be returned. - ${GroupId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # The policy type for which group policy assignments will be returned. - ${PolicyType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PolicyName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${Rank}, - - [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 = @{ - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsGroupPolicyAssignment_SetExpanded'; - } - $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-CsInboundBlockedNumberPattern { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [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\Set-CsInboundBlockedNumberPattern'; - } - $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-CsInboundExemptNumberPattern { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [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\Set-CsInboundExemptNumberPattern'; - } - $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-CsOCEContext { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${AppId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${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 { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $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'; - } - $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-CsOnlineApplicationInstance { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${ApplicationId}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DisplayName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OnpremPhoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${AcsResourceId}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstance'; - } - $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-CsOnlineApplicationInstanceV2 { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] -[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] - # Application instance identity. - # Support GUID or User principal name. - ${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.IApplicationInstanceUpdateRequest] - # The request to update an application instance. - # 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] - # ACS resource ID. - ${AcsResourceId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Application ID. - ${ApplicationId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Display name. - ${DisplayName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Onprem phone number. - ${OnpremPhoneNumber}, - - [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-CsOnlineApplicationInstanceV2_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineApplicationInstanceV2_SetViaIdentityExpanded'; - } - $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-CsOnlineAudioConferencingRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RouteType}, - - [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\Set-CsOnlineAudioConferencingRoutingPolicy'; - } - $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-CsOnlineDialInConferencingServiceNumber { -[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BotType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PrimaryLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${RestoreDefaultLanguages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${SecondaryLanguages}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Instance} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialInConferencingServiceNumber'; - InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialInConferencingServiceNumber'; - } - $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-CsOnlineDialInConferencingTenantSettings { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedDialOutExternalDomains}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowFederatedUsersToDialOutToSelf}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowFederatedUsersToDialOutToThirdParty}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPSTNOnlyMeetingsByDefault}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AutomaticallyMigrateUserMeetings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AutomaticallyReplaceAcpProvider}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AutomaticallySendEmailsToUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableDialOutJoinConfirmation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableEntryExitNotifications}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableNameRecording}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EntryExitAnnouncementsType}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IncludeTollFreeNumberInMeetingInvites}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MaskPstnNumbersType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MigrateServiceNumbersOnCrossForestMove}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${PinLength}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SendEmailFromAddress}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SendEmailFromDisplayName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SendEmailFromOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${UseUniqueConferenceIds}, - - [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\Set-CsOnlineDialInConferencingTenantSettings'; - } - $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-CsOnlineDialinConferencingUserDefaultNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingUser])] -[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Continuation / Pagination marker. - # Use the value from nextlink property in response. - ${Skiptoken}, - - [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. - ${RescheduleMeetings}, - - [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-CsOnlineDialinConferencingUserDefaultNumber_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineDialinConferencingUserDefaultNumber_SetExpanded'; - } - $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-CsOnlineEnhancedEmergencyServiceDisclaimer { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ForceAccept}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Version}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineEnhancedEmergencyServiceDisclaimer'; - } - $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-CsOnlineLisCivicAddress { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${CivicAddressId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CityAlias}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyTaxId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Confidence}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Elin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumber}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumberSuffix}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsAzureMapValidationRequired}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Latitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Longitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostalCode}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostDirectional}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreDirectional}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StateOrProvince}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetName}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetSuffix}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ValidationStatus}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisCivicAddress'; - } - $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-CsOnlineLisCivicAddressModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICivicAddress])] -[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.ISetCivicAddress] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${City}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CityAlias}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyTaxId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Confidence}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Description}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Elin}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumber}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumberSuffix}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Latitude}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Longitude}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostDirectional}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostalCode}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PreDirectional}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StateOrProvince}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetSuffix}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisCivicAddressModern_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisCivicAddressModern_SetExpanded'; - } - $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-CsOnlineLisLocation { -[CmdletBinding(DefaultParameterSetName='UseCivicAddressId', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='UseCivicAddressId', Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${CivicAddressId}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${City}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CityAlias}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyName}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CompanyTaxId}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Confidence}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CountryOrRegion}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Elin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumber}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HouseNumberSuffix}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsAzureMapValidationRequired}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Latitude}, - - [Parameter(ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Longitude}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostalCode}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PostDirectional}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreDirectional}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StateOrProvince}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetName}, - - [Parameter(ParameterSetName='UseCivicAddressId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreetSuffix}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='UseLocationId', Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter(ParameterSetName='UseLocationId', ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Location} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - UseCivicAddressId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocation'; - UseLocationId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocation'; - } - $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-CsOnlineLisLocationModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ILocationSchema])] -[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.ISetLocation] - # . - # 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] - # . - ${City}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CityOrTownAlias}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CivicAddressId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CompanyTaxId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Confidence}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountryOrRegion}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${CountyOrDistrict}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Description}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Elin}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumber}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${HouseNumberSuffix}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # . - ${IsDefault}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Latitude}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Location}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LocationId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Longitude}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${NumberOfTelephoneNumber}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${NumberOfVoiceUser}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PartnerId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostDirectional}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PostalCode}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PreDirectional}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StateOrProvince}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetName}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${StreetSuffix}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ValidationStatus}, - - [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-CsOnlineLisLocationModern_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisLocationModern_SetExpanded'; - } - $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-CsOnlineLisPort { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PortID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisPort'; - } - $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-CsOnlineLisPortModern { -[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.IPortRequest] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${ChassisId}, - - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${LocationId}, - - [Parameter(ParameterSetName='SetExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PortId}, - - [Parameter(ParameterSetName='SetExpanded')] - [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()] - [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-CsOnlineLisPortModern_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisPortModern_SetExpanded'; - } - $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-CsOnlineLisSubnet { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Subnet}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSubnet'; - } - $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-CsOnlineLisSubnetModern { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Subnet}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # . - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [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-CsOnlineLisSubnetModern_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSubnetModern_SetViaIdentity'; - } - $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-CsOnlineLisSwitch { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChassisID}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSwitch'; - } - $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-CsOnlineLisSwitchModern { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ChassisId}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # . - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [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-CsOnlineLisSwitchModern_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisSwitchModern_SetViaIdentity'; - } - $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-CsOnlineLisWirelessAccessPoint { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BSSID}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${LocationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsDebug}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NCSApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetStore}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisWirelessAccessPoint'; - } - $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-CsOnlineLisWirelessAccessPointModern { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Bssid}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # . - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${LocationId}, - - [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-CsOnlineLisWirelessAccessPointModern_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineLisWirelessAccessPointModern_SetViaIdentity'; - } - $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-CsOnlinePSTNGateway { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BypassMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${FailoverResponseCodes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${FailoverTimeSeconds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ForwardCallHistory}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ForwardPai}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${GatewayLbrEnabledUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GatewaySiteId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${GatewaySiteLbrEnabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundPstnNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundTeamsNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${MaxConcurrentSessions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MediaBypass}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MediaRelayRoutingLocationOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OutboundPstnNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OutboundTeamsNumberTranslationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PidfLoSupported}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ProxySbc}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SendSipOptions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${SipSignalingPort}, - - [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\Set-CsOnlinePSTNGateway'; - } - $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-CsOnlinePstnUsage { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Usage}, - - [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\Set-CsOnlinePstnUsage'; - } - $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-CsOnlineVoiceApplicationInstance { -[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.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumber}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstance'; - } - $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-CsOnlineVoiceApplicationInstanceV2 { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IApplicationInstanceAutoGenerated])] -[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.IOnlineNumberAssignmentRequest] - # The request to update an application instance. - # 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] - # Telephone number. - ${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 = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceApplicationInstanceV2_SetViaIdentityExpanded'; - } - $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-CsOnlineVoicemailPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableEditingCallAnswerRulesSetting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscriptionProfanityMasking}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTranscriptionTranslation}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.TimeSpan] - ${MaximumRecordingLength}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PrimarySystemPromptLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SecondarySystemPromptLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShareData}, - - [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\Set-CsOnlineVoicemailPolicy'; - } - $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-CsOnlineVoiceRoute { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeSourcePhoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NumberPattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnGatewayList}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Priority}, - - [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\Set-CsOnlineVoiceRoute'; - } - $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-CsOnlineVoiceRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${OnlinePstnUsages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RouteType}, - - [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\Set-CsOnlineVoiceRoutingPolicy'; - } - $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-CsOnlineVoiceUser { -[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.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${LocationID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumber}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsOnlineVoiceUser'; - } - $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-CsPhoneNumberPolicyAssignment { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PolicyType}, - - [Parameter(Mandatory)] - [Alias('Identity')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${TelephoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${PolicyName}, - - [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-CsPhoneNumberPolicyAssignment_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-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')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AutoInitiateContacts}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisplayPublishedPhotoDefault}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnablePrivacyMode}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PublishLocationDataDefault}, - - [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\Set-CsPrivacyConfiguration'; - } - $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-CsRegionContext { -[CmdletBinding(DefaultParameterSetName='Region', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.CmdletHostContract.DeploymentConfiguration+ConfigApiRegion] - ${Region} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Region = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsRegionContext'; - } - $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-CsSessionState { -[OutputType([System.Management.Automation.Runspaces.PSSession])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AddFlightedCommand}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RemoveFlightedCommand}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${Mocks}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AddCmdletConfigOverrideForAutorest}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RemoveCmdletConfigOverrideForAutorest}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.Remoting.PSSessionOption] - ${SessionOption} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsSessionState'; - } - $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-CsTeamsAcsFederationConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedAcsResources}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableAcsUsers}, - - [Parameter(Position=1)] - [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\Set-CsTeamsAcsFederationConfiguration'; - } - $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-CsTeamsAudioConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTollFreeDialin}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${MeetingInvitePhoneNumbers}, - - [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\Set-CsTeamsAudioConferencingPolicy'; - } - $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-CsTeamsCallHoldPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsCallHoldPolicy'; - } - $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-CsTeamsCallingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallForwardingToPhone}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallForwardingToUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallGroups}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowCallRedirect}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCloudRecordingForCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowDelegation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSIPDevicesCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTranscriptionForCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowVoicemail}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWebPSTNCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AutoAnswerEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BusyOnBusyEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${CallRecordingExpirationDays}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveCaptionsEnabledTypeForCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MusicOnHoldEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PopoutAppPathForIncomingPstnCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PopoutForIncomingPstnCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PreventTollBypass}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SpamFilteringEnabledType}, - - [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\Set-CsTeamsCallingPolicy'; - } - $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-CsTeamsCallParkPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallPark}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ParkTimeoutSeconds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${PickupRangeEnd}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${PickupRangeStart}, - - [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\Set-CsTeamsCallParkPolicy'; - } - $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-CsTeamsChannelsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowChannelSharingToExternalUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOrgWideTeamCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateChannelCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateTeamDiscovery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSharedChannelCreation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserToParticipateInExternalSharedChannel}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsChannelsPolicy'; - } - $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-CsTeamsClientConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBox}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowDropBox}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEgnyte}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEmailIntoChannel}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGoogleDrive}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGuestUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOrganizationTab}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowResourceAccountSendMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowRoleBasedChatPermissions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowScopedPeopleSearchandAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowShareFile}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSkypeBusinessInterop}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ContentPin}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ResourceAccountContentAccess}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RestrictedSenderList}, - - [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\Set-CsTeamsClientConfiguration'; - } - $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-CsTeamsComplianceRecordingApplication { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ComplianceRecordingPairedApplications}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ConcurrentInvitationCount}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Priority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredBeforeCallEstablishment}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredBeforeMeetingJoin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredDuringCall}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RequiredDuringMeeting}, - - [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\Set-CsTeamsComplianceRecordingApplication'; - } - $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-CsTeamsComplianceRecordingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ComplianceRecordingApplications}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableComplianceRecordingAudioNotificationForCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${WarnUserOnRemoval}, - - [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\Set-CsTeamsComplianceRecordingPolicy'; - } - $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-CsTeamsCortanaPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaAmbientListening}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaInContextSuggestions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCortanaVoiceInvocation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CortanaVoiceInvocationMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsCortanaPolicy'; - } - $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-CsTeamsEducationAssignmentsAppPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MakeCodeEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ParentDigestEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TurnItInApiKey}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TurnItInApiUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TurnItInEnabledType}, - - [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\Set-CsTeamsEducationAssignmentsAppPolicy'; - } - $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-CsTeamsEducationConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ParentGuardianPreferredContactMethod}, - - [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\Set-CsTeamsEducationConfiguration'; - } - $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-CsTeamsEmergencyCallingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EnhancedEmergencyServiceDisclaimer}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ExternalLocationLookupMode}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NotificationDialOutNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NotificationGroup}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NotificationMode}, - - [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\Set-CsTeamsEmergencyCallingPolicy'; - } - $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-CsTeamsEmergencyCallRoutingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEnhancedEmergencyServices}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${EmergencyNumbers}, - - [Parameter(Position=1)] - [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\Set-CsTeamsEmergencyCallRoutingPolicy'; - } - $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-CsTeamsEnhancedEncryptionPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallingEndtoEndEncryptionEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingEndToEndEncryption}, - - [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\Set-CsTeamsEnhancedEncryptionPolicy'; - } - $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-CsTeamsEventsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowWebinars}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EventAccessType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ForceStreamingAttendeeMode}, - - [Parameter(Position=1)] - [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\Set-CsTeamsEventsPolicy'; - } - $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-CsTeamsFeedbackPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowEmailCollection}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowLogCollection}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowScreenshotCollection}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveSurveysMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UserInitiatedMode}, - - [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\Set-CsTeamsFeedbackPolicy'; - } - $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-CsTeamsFilesPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NativeFileEntryPoints}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SPChannelFilesTab}, - - [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\Set-CsTeamsFilesPolicy'; - } - $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-CsTeamsGuestCallingConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateCalling}, - - [Parameter(Position=1)] - [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\Set-CsTeamsGuestCallingConfiguration'; - } - $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-CsTeamsGuestMeetingConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetNow}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTranscription}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveCaptionsEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ScreenSharingMode}, - - [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\Set-CsTeamsGuestMeetingConfiguration'; - } - $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-CsTeamsGuestMessagingConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGiphy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowImmersiveReader}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMemes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowStickers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserEditMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GiphyRatingType}, - - [Parameter(Position=1)] - [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\Set-CsTeamsGuestMessagingConfiguration'; - } - $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-CsTeamsIPPhonePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowBetterTogether}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowHomeScreen}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowHotDesking}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${HotDeskingIdleTimeoutInMinutes}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SearchOnCommonAreaPhoneMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SignInMode}, - - [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\Set-CsTeamsIPPhonePolicy'; - } - $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-CsTeamsMeetingBroadcastConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSdnProviderForBroadcastMeeting}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SdnApiTemplateUrl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SdnApiToken}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SdnLicenseId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SdnProviderName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SdnRuntimeConfiguration}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SupportURL}, - - [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\Set-CsTeamsMeetingBroadcastConfiguration'; - } - $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-CsTeamsMeetingBroadcastPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBroadcastScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBroadcastTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BroadcastAttendeeVisibilityMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BroadcastRecordingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsMeetingBroadcastPolicy'; - } - $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-CsTeamsMeetingConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientAppSharingPort}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientAppSharingPortRange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientAudioPort}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientAudioPortRange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ClientMediaPortRangeEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientVideoPort}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${ClientVideoPortRange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CustomFooterText}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableAnonymousJoin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableAppInteractionForAnonymousUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableQoS}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${HelpURL}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LegalURL}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LogoURL}, - - [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\Set-CsTeamsMeetingConfiguration'; - } - $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-CsTeamsMeetingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnnotations}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToDialOut}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToJoinMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAnonymousUsersToStartMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAvatarsInGallery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowBreakoutRooms}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCarbonSummary}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowCartCaptionsScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowChannelMeetingScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCloudRecording}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowDocumentCollaboration}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowedStreamingMediaInput}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowEngagementReport}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowExternalParticipantGiveRequestControl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowImmersiveView}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPAudio}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingCoach}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingReactions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingRegistration}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetNow}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowNDIStreaming}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowNetworkConfigurationSettingsLookup}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOrganizersToOverrideLobbySettings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOutlookAddIn}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowParticipantGiveRequestControl}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPowerPointSharing}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateMeetingScheduling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPrivateMeetNow}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPSTNUsersToBypassLobby}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowRecordingStorageOutsideRegion}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowScreenContentDigitization}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSharedNotes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowTasksFromTranscript}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowTrackingInReport}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowUserToJoinExternalMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWatermarkForCameraVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWatermarkForScreenSharing}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowWhiteboard}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AutoAdmittedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BlockedAnonymousJoinClientTypes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelRecordingDownload}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DesignatedPresenterRoleMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EnrollUserOverride}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${InfoShownInReportMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAudioMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPVideoMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveCaptionsEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveInterpretationEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LiveStreamingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.UInt32] - ${MediaBitRateKb}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingChatEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MeetingInviteLanguages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${NewMeetingRecordingExpirationDays}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PreferredMeetingProviderForIslandsMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${QnAEngagementMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RecordingStorageMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RoomAttributeUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${RoomPeopleNameUserOverride}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ScreenSharingMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SpeakerAttributionMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${StreamingAttendeeMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TeamsCameraFarEndPTZMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${VideoFiltersMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WhoCanRegister}, - - [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\Set-CsTeamsMeetingPolicy'; - } - $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-CsTeamsMessagingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCommunicationComplianceEndUserReporting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowFluidCollaborate}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowFullChatPermissionUserToDeleteAnyMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGiphy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowGiphyDisplay}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowImmersiveReader}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMemes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOwnerDeleteMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPasteInternetImage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPriorityMessages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowRemoveUser}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSmartCompose}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowSmartReply}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowStickers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUrlPreviews}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteChat}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserDeleteMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserEditMessage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowUserTranslation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowVideoMessages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AudioMessageEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelsInChatListEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChatPermissionRole}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GiphyRatingType}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReadReceiptsEnabledType}, - - [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\Set-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 Set-CsTeamsMigrationConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableLegacyClientInterop}, - - [Parameter(Position=1)] - [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\Set-CsTeamsMigrationConfiguration'; - } - $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-CsTeamsMobilityPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPAudioMobileMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${IPVideoMobileMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MobileDialerPreference}, - - [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\Set-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 Set-CsTeamsNetworkRoamingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowIPVideo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${MediaBitRateKb}, - - [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\Set-CsTeamsNetworkRoamingPolicy'; - } - $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-CsTeamsNotificationAndFeedsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SuggestedFeedsEnabledType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TrendingFeedsEnabledType}, - - [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\Set-CsTeamsNotificationAndFeedsPolicy'; - } - $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-CsTeamsRoomVideoTeleConferencingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AreaCode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PlaceExternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PlaceInternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveExternalCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ReceiveInternalCalls}, - - [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\Set-CsTeamsRoomVideoTeleConferencingPolicy'; - } - $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-CsTeamsShiftsAppPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTimeClockLocationDetection}, - - [Parameter(Position=1)] - [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\Set-CsTeamsShiftsAppPolicy'; - } - $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-CsTeamsShiftsConnectionInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # ETag value - ${IfMatch}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceRequest] - # Update Connector Instance Request. - # This request is used for performing a complete update (PUT) on connector instance. - # 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 WFM connection id. - ${ConnectionId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # The list of connector admin email addresses. - ${ConnectorAdminEmail}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The designated actor id that App acts as for Shifts Graph Api calls. - ${DesignatedActorId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance ETag. - ${Etag}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance name. - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM Connector Instance. - ${State}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # The sync frequency in minutes. - ${SyncFrequencyInMin}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OfferShiftRequest entity. - ${SyncScenarioOfferShiftRequest}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShift entity. - ${SyncScenarioOpenShift}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShiftRequest entity. - ${SyncScenarioOpenShiftRequest}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The Shift entity. - ${SyncScenarioShift}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The SwapRequest entity. - ${SyncScenarioSwapRequest}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeCard entity. - ${SyncScenarioTimeCard}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOff entity. - ${SyncScenarioTimeOff}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOffRequest entity. - ${SyncScenarioTimeOffRequest}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The UserShiftPreferences entity. - ${SyncScenarioUserShiftPreference}, - - [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-CsTeamsShiftsConnectionInstance_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnectionInstance_SetViaIdentityExpanded'; - } - $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-CsTeamsShiftsConnection { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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] - # Connection Id. - ${ConnectionId}, - - [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('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # ETag value - ${IfMatch}, - - [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequest] - # Update WFM Connection Request. - # 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 connector id. - ${ConnectorId}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionRequestConnectorSpecificSettings] - # The connector settings. - ${ConnectorSpecificSettings}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The ETag of WFM connection. - ${Etag}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Object name. - ${Name}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM connection. - ${State}, - - [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-CsTeamsShiftsConnection_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetExpanded'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetViaIdentity'; - SetViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsShiftsConnection_SetViaIdentityExpanded'; - } - $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-CsTeamsShiftsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${AccessGracePeriodMinutes}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AccessType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableScheduleOwnerPermissions}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableShiftPresence}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeFrequency}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeMessageCustom}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftNoticeMessageType}, - - [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\Set-CsTeamsShiftsPolicy'; - } - $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-CsTeamsSurvivableBranchAppliance { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Site}, - - [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\Set-CsTeamsSurvivableBranchAppliance'; - } - $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-CsTeamsSurvivableBranchAppliancePolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${BranchApplianceFqdns}, - - [Parameter(Position=1)] - [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\Set-CsTeamsSurvivableBranchAppliancePolicy'; - } - $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-CsTeamsTargetingPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CustomTagsMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ManageTagsPermissionMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShiftBackedTagsMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SuggestedPresetTags}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TeamOwnersEditWhoCanManageTagsMode}, - - [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\Set-CsTeamsTargetingPolicy'; - } - $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-CsTeamsTranslationRule { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Translation}, - - [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\Set-CsTeamsTranslationRule'; - } - $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-CsTeamsUnassignedNumberTreatment { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Pattern}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Target}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${TreatmentPriority}, - - [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\Set-CsTeamsUnassignedNumberTreatment'; - } - $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-CsTeamsUpdateManagementPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowManagedUpdates}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowPreview}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AllowPublicPreview}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${UpdateDayOfWeek}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UpdateTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.DateTime] - ${UpdateTimeOfDay}, - - [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\Set-CsTeamsUpdateManagementPolicy'; - } - $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-CsTeamsUpgradeConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DownloadTeams}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SfBMeetingJoinUx}, - - [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\Set-CsTeamsUpgradeConfiguration'; - } - $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-CsTeamsVdiPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableAudioVideoInCallsAndMeetings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${DisableCallsAndMeetings}, - - [Parameter(Position=1)] - [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\Set-CsTeamsVdiPolicy'; - } - $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-CsTeamsVoiceApplicationsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantAfterHoursGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantAfterHoursRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantBusinessHoursRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidayGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidayRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantHolidaysChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantLanguageChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAutoAttendantTimeZoneChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueAgentOptChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueConferenceModeChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueLanguageChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueMembershipChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueMusicOnHoldChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueNoAgentsRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOptOutChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOverflowRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueOverflowSharedVoicemailGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueuePresenceBasedRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueRoutingMethodChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueTimeoutRoutingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueTimeoutSharedVoicemailGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallQueueWelcomeGreetingChange}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallQueueAgentMonitorMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallQueueAgentMonitorNotificationMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsVoiceApplicationsPolicy'; - } - $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-CsTeamsWorkLoadPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCalling}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowCallingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeeting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMeetingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMessaging}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowMessagingPinned}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [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\Set-CsTeamsWorkLoadPolicy'; - } - $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-CsTenantBlockedCallingNumbers { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundBlockedNumberPatterns}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${InboundExemptNumberPatterns}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [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\Set-CsTenantBlockedCallingNumbers'; - } - $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-CsTenantDialPlan { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NormalizationRules}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SimpleName}, - - [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\Set-CsTenantDialPlan'; - } - $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-CsTenantFederationConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedDomains}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedDomainsAsAList}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowFederatedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTeamsConsumer}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowTeamsConsumerInbound}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${BlockedDomains}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AllowedTrialTenantDomains}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RestrictTeamsConsumerToExternalUserProfiles}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SharedSipAddressSpace}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${TreatDiscoveredPartnersAsUnverified}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${BlockAllSubdomains}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ExternalAccessWithTrialTenants}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DomainBlockingForMDOAdminsInTeams}, - - [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\Set-CsTenantFederationConfiguration'; - } - $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-CsTenantMigrationConfiguration { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MeetingMigrationEnabled}, - - [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\Set-CsTenantMigrationConfiguration'; - } - $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-CsTenantNetworkRegion { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CentralSite}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRegionID}, - - [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\Set-CsTenantNetworkRegion'; - } - $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-CsTenantNetworkSite { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyCallingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EmergencyCallRoutingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableLocationBasedRouting}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRegionID}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkRoamingPolicy}, - - [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\Set-CsTenantNetworkSite'; - } - $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-CsTenantNetworkSubnet { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${MaskBits}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NetworkSiteID}, - - [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\Set-CsTenantNetworkSubnet'; - } - $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-CsTenantTrustedIPAddress { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${MaskBits}, - - [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\Set-CsTenantTrustedIPAddress'; - } - $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-CsTenantUserBackfill { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Operation to perform. - ${Operation}, - - [Parameter(Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${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 = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTenantUserBackfill_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-CsUser { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AcpInfo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AudioVideoDisabled}, - - [Parameter()] - [Alias('CsEnabled')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${Enabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnterpriseVoiceEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ExchangeArchivingPolicy}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${HostedVoiceMail}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LineServerURI}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LineURI}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OnPremLineURI}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${PassThru}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PrivateLine}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${RemoteCallControlTelephonyEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SipAddress}, - - [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\Set-CsUser'; - } - $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-CsUssUserSettings { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Setting name - ${Name}, - - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # TenantId. - # Guid - ${TenantId}, - - [Parameter(ParameterSetName='Set', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # UserId. - # Guid - ${UserId}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${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 = @{ - Set = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUssUserSettings_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUssUserSettings_SetViaIdentity'; - } - $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-CsVideoInteropServiceProvider { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${AadApplicationIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowAppGuestJoinsAsAuthenticated}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${InstructionUri}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantKey}, - - [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\Set-CsVideoInteropServiceProvider'; - } - $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 Start-CsExMeetingMigration { -[CmdletBinding(DefaultParameterSetName='UserId', PositionalBinding=$false)] -param( - [Parameter(Position=1, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${CleanupSipDisabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${EnqueueSourceType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${SourceMeetingType}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${TargetMeetingType}, - - [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 = @{ - UserId = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsExMeetingMigration'; - } - $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 Start-CsMeetingMigrationModern { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStartMeetingMigrationRequestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='StartExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Identity}, - - [Parameter(ParameterSetName='StartExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${SourceMeetingType}, - - [Parameter(ParameterSetName='StartExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TargetMeetingType}, - - [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 = @{ - Start = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsMeetingMigrationModern_Start'; - StartExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Start-CsMeetingMigrationModern_StartExpanded'; - } - $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 Sync-CsOnlineApplicationInstance { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${ObjectId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackUri}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${ApplicationId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${AcsResourceId}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstance'; - } - $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 Sync-CsOnlineApplicationInstanceV2 { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Sync', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Sync', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Application instance object ID. - ${ObjectId}, - - [Parameter(ParameterSetName='SyncViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # ACS Resource Id. - ${AcsResourceId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # applicationId. - ${ApplicationId}, - - [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 = @{ - Sync = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstanceV2_Sync'; - SyncViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Sync-CsOnlineApplicationInstanceV2_SyncViaIdentity'; - } - $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 Test-CsEffectiveTenantDialPlan { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${DialedNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ParameterSetName='Identity', Position=0)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${TenantScopeOnly}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='EffectiveTDPName', ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${EffectiveTenantDialPlanName} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlan'; - EffectiveTDPName = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlan'; - } - $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 Test-CsEffectiveTenantDialPlanModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDialPlanTestResult])] -[CmdletBinding(DefaultParameterSetName='TestExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Test', Mandatory)] - [Parameter(ParameterSetName='TestExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${DialedNumber}, - - [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='TestViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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='Test', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDialPlanRulesTestBody] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='TestExpanded')] - [Parameter(ParameterSetName='TestViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Dial Plan to be used if Identity is not provided - ${EffectiveTenantDialPlanName}, - - [Parameter(ParameterSetName='TestExpanded')] - [Parameter(ParameterSetName='TestViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # User Identity - ${Identity}, - - [Parameter(ParameterSetName='TestExpanded')] - [Parameter(ParameterSetName='TestViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - # Optional filter to include only tenant dial rules - ${TenantScopeOnly}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_Test'; - TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestExpanded'; - TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestViaIdentity'; - TestViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsEffectiveTenantDialPlanModern_TestViaIdentityExpanded'; - } - $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 Test-CsInboundBlockedNumberPattern { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory, ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PhoneNumber}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsInboundBlockedNumberPattern'; - } - $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 Test-CsInboundBlockedNumberPatternModern { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Phone number to test - ${PhoneNumber}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsInboundBlockedNumberPatternModern_Test'; - } - $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 Test-CsOnlineLiCivicAddressOnly { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Test1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Test1', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Id}, - - [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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='Test', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.IO.Stream] - # . - ${Data}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_Test'; - Test1 = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_Test1'; - TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsOnlineLiCivicAddressOnly_TestViaIdentity'; - } - $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 Test-CsTeamsShiftsConnectionValidate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Test', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceBaseRequest] - # Connector Instance Base Request. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='TestExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector id. - ${ConnectorId}, - - [Parameter(ParameterSetName='TestExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConnectorInstanceBaseRequestConnectorSpecificSettings] - # The connector specific settings. - ${ConnectorSpecificSettings}, - - [Parameter(ParameterSetName='TestExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance name. - ${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()] - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsShiftsConnectionValidate_Test'; - TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsShiftsConnectionValidate_TestExpanded'; - } - $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 Test-CsTeamsTranslationRule { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITestTeamsTranslationRuleResponse], [System.String])] -[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Phone number to test - ${PhoneNumber}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsTranslationRule_Test'; - } - $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 Test-CsTeamsUnassignedNumberTreatment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITestUnassignedNumberTreatmentResponse], [System.String])] -[CmdletBinding(DefaultParameterSetName='Test', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Phone number to test - ${PhoneNumber}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsTeamsUnassignedNumberTreatment_Test'; - } - $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 Test-CsVoiceNormalizationRule { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${DialedNumber}, - - [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${NormalizationRule}, - - [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 = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRule'; - } - $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 Test-CsVoiceNormalizationRuleModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoiceNormalizationTestResult])] -[CmdletBinding(DefaultParameterSetName='TestExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Test', Mandatory)] - [Parameter(ParameterSetName='TestExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${DialedNumber}, - - [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='TestViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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='Test', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='TestViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INormalizationRuleTestPayload] - # . - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='TestExpanded')] - [Parameter(ParameterSetName='TestViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.INormalizationRuleForTest[]] - # . - # To construct, see NOTES section for NORMALIZATIONRULE properties and create a hash table. - ${NormalizationRule}, - - [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 = @{ - Test = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_Test'; - TestExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestExpanded'; - TestViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestViaIdentity'; - TestViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Test-CsVoiceNormalizationRuleModern_TestViaIdentityExpanded'; - } - $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 Unregister-CsOnlineDialInConferencingServiceNumber { -[CmdletBinding(DefaultParameterSetName='UniqueNumberParams', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='UniqueNumberParams', Position=0, Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Guid]] - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${RemoveDefaultServiceNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantDomain}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MsftInternalProcessingMode}, - - [Parameter(ParameterSetName='InstanceParams', Position=0, Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Instance} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - UniqueNumberParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOnlineDialInConferencingServiceNumber'; - InstanceParams = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Unregister-CsOnlineDialInConferencingServiceNumber'; - } - $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-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])] -[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] - # Connector Instance Id - ${ConnectorInstanceId}, - - [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(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # ETag value - ${IfMatch}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateConnectorInstanceFieldsRequest] - # Update Connector Instance Fields Request. - # This request is used for performing a partial update (PATCH) on connector instance. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The WFM connection id. - ${ConnectionId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # The list of connector admin email addresses. - ${ConnectorAdminEmail}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The designated actor id that App acts as for Shifts Graph Api calls. - ${DesignatedActorId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance ETag. - ${Etag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector instance name. - ${Name}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM Connector Instance. - ${State}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # The sync frequency in minutes. - ${SyncFrequencyInMin}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OfferShiftRequest entity. - ${SyncScenarioOfferShiftRequest}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShift entity. - ${SyncScenarioOpenShift}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The OpenShiftRequest entity. - ${SyncScenarioOpenShiftRequest}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The Shift entity. - ${SyncScenarioShift}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The SwapRequest entity. - ${SyncScenarioSwapRequest}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeCard entity. - ${SyncScenarioTimeCard}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOff entity. - ${SyncScenarioTimeOff}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The TimeOffRequest entity. - ${SyncScenarioTimeOffRequest}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The UserShiftPreferences entity. - ${SyncScenarioUserShiftPreference}, - - [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 = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnectionInstance_UpdateViaIdentityExpanded'; - } - $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-CsTeamsShiftsConnection { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IWfmConnectionResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IErrorDetailsResponse])] -[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] - # Connection Id. - ${ConnectionId}, - - [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('Header')] - [System.String] - # Bearer: token - ${Authorization}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Header')] - [System.String] - # ETag value - ${IfMatch}, - - [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequest] - # Update WFM Connection Request. - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The connector id. - ${ConnectorId}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateWfmConnectionFieldsRequestConnectorSpecificSettings] - # The connector settings. - ${ConnectorSpecificSettings}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The ETag of WFM connection. - ${Etag}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Object name. - ${Name}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # The state of the WFM connection. - ${State}, - - [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 = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamsShiftsConnection_UpdateViaIdentityExpanded'; - } - $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-CsTeamTemplate { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateTemplateResponse], [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplateErrorResponse])] -[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] - # A composite URI of a template. - ${OdataId}, - - [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='Update', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='UpdateViaIdentity', 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='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team's DisplayName. - ${DisplayName}, - - [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets template short description. - ${ShortDescription}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # Gets or sets list of categories. - ${Category}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets the team's Description. - ${Description}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets template icon. - ${Icon}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets published name. - ${PublishedBy}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Gets or sets uri to be used for GetTemplate api call. - ${Uri}, - - [Parameter(ParameterSetName='UpdateExpanded')] - [Parameter(ParameterSetName='UpdateViaIdentityExpanded')] - [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 = @{ - Update = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_Update'; - UpdateExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateExpanded'; - UpdateViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateViaIdentity'; - UpdateViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Update-CsTeamTemplate_UpdateViaIdentityExpanded'; - } - $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 Clear-CsOnlineTelephoneNumberOrder { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderId}, - - [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\Clear-CsOnlineTelephoneNumberOrder'; - } - $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 Complete-CsOnlineTelephoneNumberOrder { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderId}, - - [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\Complete-CsOnlineTelephoneNumberOrder'; - } - $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 Export-CsAutoAttendantHolidays { -[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] - ${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\Export-CsAutoAttendantHolidays'; - } - $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 Export-CsOnlineAudioFile { -[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.String] - ${ApplicationId}, - - [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\Export-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 Find-CsGroup { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SearchQuery}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.UInt32]] - ${MaxResults}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ExactMatchOnly}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MailEnabledOnly}, - - [Parameter(Position=4)] - [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\Find-CsGroup'; - } - $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 Find-CsOnlineApplicationInstance { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ApplicationInstance])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SearchQuery}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.UInt32]] - ${MaxResults}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExactMatchOnly}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${AssociatedOnly}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${UnAssociatedOnly}, - - [Parameter(Position=5)] - [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\Find-CsOnlineApplicationInstance'; - } - $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-CsAadTenant { -[CmdletBinding(PositionalBinding=$false)] -param( - [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-CsAadTenant'; - } - $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-CsAadUser { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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\Get-CsAadUser'; - } - $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-CsAutoAttendant { -[CmdletBinding(DefaultParameterSetName='GetAllParamSet', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='GetAllParamSet', Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${IncludeStatus}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${First}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Skip}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExcludeContent}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=5)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NameFilter}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=6)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SortBy}, - - [Parameter(ParameterSetName='GetAllParamSet', Position=7)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Descending}, - - [Parameter(Position=8)] - [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='GetSpecificParamSet', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - GetAllParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendant'; - GetSpecificParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Get-CsAutoAttendant'; - } - $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-CsAutoAttendantHolidays { -[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.String[]] - ${Years}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Names}, - - [Parameter(Position=3)] - [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\Get-CsAutoAttendantHolidays'; - } - $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-CsAutoAttendantStatus { -[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.String[]] - ${IncludeResources}, - - [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\Get-CsAutoAttendantStatus'; - } - $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-CsAutoAttendantSupportedLanguage { -[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] - ${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\Get-CsAutoAttendantSupportedLanguage'; - } - $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-CsAutoAttendantSupportedTimeZone { -[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] - ${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\Get-CsAutoAttendantSupportedTimeZone'; - } - $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-CsAutoAttendantTenantInformation { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0)] - [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\Get-CsAutoAttendantTenantInformation'; - } - $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-CsBusinessVoiceDirectoryDiagnosticData { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - ${PartitionKey}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - ${Region}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - ${Table}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - ${ResultSize}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${RowKey}, - - [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-CsBusinessVoiceDirectoryDiagnosticData'; - } - $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-CsCallQueue { -[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.Int32] - ${First}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - ${Skip}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ExcludeContent}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Sort}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Descending}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NameFilter}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(Position=5, 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-CsCallQueue'; - } - $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-CsComplianceRecordingForCallQueueTemplate { -[CmdletBinding(PositionalBinding=$false)] -param( - [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[]] - ${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-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 Get-CsConfigurationModern { -[CmdletBinding(DefaultParameterSetName='ConfigType', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigType}, - - [Parameter()] - [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}, - - [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} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $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'; - } - $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-CsMainlineAttendantAppointmentBookingFlow { -[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.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] - ${Descending}, - - [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[]] - ${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-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 Get-CsMainlineAttendantFlow { -[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.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[]] - ${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-CsMainlineAttendantFlow'; - } - $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-CsMainlineAttendantQuestionAnswerFlow { -[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.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] - ${Descending}, - - [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[]] - ${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-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 Get-CsMasVersionedSchemaData { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${SchemaName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${Version}, - - [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 - } -} -} - -# .ExternalHelp en-US\MicrosoftTeams-help -function Get-CsMeetingMigrationTransactionHistory { -[CmdletBinding(PositionalBinding=$false)] -param( - [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] - # 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} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __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) - $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-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.Management.Automation.SwitchParameter] - # SummaryOnly - to get only meting migration status summary. - ${SummaryOnly}, - - [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[]] - ${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-CsMmsStatus'; - } - $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-CsMoveTenantServiceInstanceTaskStatus { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, 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-CsMoveTenantServiceInstanceTaskStatus'; - } - $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-CsOnlineApplicationInstanceAssociation { -[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] - ${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\Get-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 Get-CsOnlineApplicationInstanceAssociationStatus { -[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] - ${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\Get-CsOnlineApplicationInstanceAssociationStatus'; - } - $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-CsOnlineAudioFile { -[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.String] - ${ApplicationId}, - - [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-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 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')] - [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-CsOnlineDialInConferencingUser'; - } - $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-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(Position=2, 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-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 Get-CsOnlineSchedule { -[CmdletBinding(PositionalBinding=$false)] -param( - [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[]] - ${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-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 Get-CsOnlineTelephoneNumberOrder { -[CmdletBinding(DefaultParameterSetName='Search', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OrderId}, - - [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} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - 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) - $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-CsOnlineVoicemailUserSettings { -[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] - ${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\Get-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 Get-CsSharedCallQueueHistoryTemplate { -[CmdletBinding(PositionalBinding=$false)] -param( - [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[]] - ${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-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 Get-CsTagsTemplate { -[CmdletBinding(PositionalBinding=$false)] -param( - [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[]] - ${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-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 Get-CsTeamsSettingsCustomApp { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [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-CsTeamsSettingsCustomApp'; - } - $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-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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PublicTemplateLocale}, - - [Parameter(Position=1, 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 = @{ - 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) - $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-CsTenantPoint { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, 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-CsTenantPoint'; - } - $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-CsUserList { -[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()] - [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 { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __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) - $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-CsUserPoint { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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 { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __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) - $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 Grant-CsGroupPolicyPackageAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='RequiredPolicyList', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${GroupId}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${PackageName}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${PolicyRankings}, - - [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 = @{ - RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsGroupPolicyPackageAssignment'; - } - $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 Grant-CsTeamsPolicy { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [ArgumentCompleter({param ($CommandName, $ParameterName, $WordToComplete, $CommandAst, $FakeBoundParameters) return @("ApplicationAccessPolicy","BroadcastMeetingPolicy","CallingLineIdentity","ClientPolicy","CloudMeetingPolicy","ConferencingPolicy","DialoutPolicy","ExternalAccessPolicy","ExternalUserCommunicationPolicy","GraphPolicy","GroupPolicyPackageAssignment","HostedVoicemailPolicy","IPPhonePolicy","MobilityPolicy","OnlineAudioConferencingRoutingPolicy","OnlineVoicemailPolicy","OnlineVoiceRoutingPolicy","Policy","TeamsAppPermissionPolicy","TeamsAppSetupPolicy","TeamsAudioConferencingPolicy","TeamsCallHoldPolicy","TeamsCallingPolicy","TeamsCallParkPolicy","TeamsChannelsPolicy","TeamsComplianceRecordingPolicy","TeamsCortanaPolicy","TeamsEmergencyCallingPolicy","TeamsEmergencyCallRoutingPolicy","TeamsEnhancedEncryptionPolicy","TeamsFeedbackPolicy","TeamsFilesPolicy","TeamsIPPhonePolicy","TeamsMeetingBroadcastPolicy","TeamsMeetingPolicy","TeamsMessagingPolicy","TeamsMobilityPolicy","TeamsShiftsPolicy","TeamsSurvivableBranchAppliancePolicy","TeamsUpdateManagementPolicy","TeamsUpgradePolicy","TeamsVdiPolicy","TeamsVerticalPackagePolicy","TeamsVideoInteropServicePolicy","TeamsWorkLoadPolicy","TenantDialPlan","UserOrTenantPolicy","UserPolicyPackage","VoiceRoutingPolicy") | ?{ $_ -like "$WordToComplete*" } })] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyType}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PolicyName}, - - [Parameter(ParameterSetName='Identity', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${AdditionalParameters}, - - [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='GrantToTenant', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Global}, - - [Parameter(ParameterSetName='GrantToGroup', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Group}, - - [Parameter(ParameterSetName='GrantToGroup')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${Rank} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; - GrantToTenant = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; - GrantToGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Grant-CsTeamsPolicy'; - } - $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 Import-CsAutoAttendantHolidays { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Position=1, Mandatory)] - [Alias('Input')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Byte[]] - ${InputBytes}, - - [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\Import-CsAutoAttendantHolidays'; - } - $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 Import-CsOnlineAudioFile { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${FileName}, - - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Byte[]] - ${Content}, - - [Parameter(Position=0)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ApplicationId}, - - [Parameter(Position=3)] - [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\Import-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 Invoke-CsCustomHandlerCallBackNgtprov { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${Id}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.CustomHandlerOperationName] - ${Operation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - ${Eventname}, - - [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\Invoke-CsCustomHandlerCallBackNgtprov'; - } - $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 Invoke-CsDeprecatedError { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DeprecatedErrorMessage}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDeprecatedError'; - } - $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 Invoke-CsDirectObjectSync { -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody] - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryDeploymentName] - ${DeploymentName}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsValidationRequest}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.DirectoryObjectClass] - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${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.String] - ${ScenariosToSuppress}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ServiceInstance}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SynchronizeTenantWithAllObject}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ReSyncOption} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDirectObjectSync'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsDirectObjectSync'; - } - $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 Invoke-CsMsodsSync { -[CmdletBinding(DefaultParameterSetName='PostExpanded', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Post', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IResyncRequestBody] - # To construct, see NOTES section for BODY properties and create a hash table. - ${Body}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='PostExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Models.ObjectClass] - ${ObjectClass}, - - [Parameter(ParameterSetName='PostExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TenantId}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsValidationRequest}, - - [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.String] - ${ScenariosToSuppress}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ServiceInstance}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${SynchronizeTenantWithAllObject}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int64] - ${ReSyncOption} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsMsodsSync'; - PostExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Invoke-CsMsodsSync'; - } - $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 Move-CsTenantCrossRegion { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, 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\Move-CsTenantCrossRegion'; - } - $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 Move-CsTenantServiceInstance { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MoveOption}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TargetServiceInstance}, - - [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\Move-CsTenantServiceInstance'; - } - $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-CsAutoAttendant { -[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] - ${LanguageId}, - - [Parameter(Position=3, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow] - ${DefaultCallFlow}, - - [Parameter(Position=6, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeZoneId}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${VoiceId}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] - ${Operator}, - - [Parameter(Position=5)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${EnableVoiceResponse}, - - [Parameter(Position=7)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallFlow[]] - ${CallFlows}, - - [Parameter(Position=8)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociation[]] - ${CallHandlingAssociations}, - - [Parameter(Position=9)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] - ${InclusionScope}, - - [Parameter(Position=10)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DialScope] - ${ExclusionScope}, - - [Parameter(Position=11)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${AuthorizedUsers}, - - [Parameter(Position=12)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${HideAuthorizedUsers}, - - [Parameter(Position=13)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(Position=14)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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')] - [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-CsAutoAttendant'; - } - $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-CsAutoAttendantCallableEntity { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntityType] - ${Type}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${EnableTranscription}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${EnableSharedVoicemailSystemPromptSuppression}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${CallPriority}, - - [Parameter(Position=5)] - [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-CsAutoAttendantCallableEntity'; - } - $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-CsAutoAttendantCallFlow { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.PSObject] - ${Menu}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.PSObject[]] - ${Greetings}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ForceListenMenuEnabled}, - - [Parameter(Position=4)] - [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-CsAutoAttendantCallFlow'; - } - $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-CsAutoAttendantCallHandlingAssociation { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallHandlingAssociationType] - ${Type}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ScheduleId}, - - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallFlowId}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Disable}, - - [Parameter(Position=4)] - [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-CsAutoAttendantCallHandlingAssociation'; - } - $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-CsAutoAttendantDialScope { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${GroupScope}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${GroupIds}, - - [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-CsAutoAttendantDialScope'; - } - $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-CsAutoAttendantMenu { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter(Position=1)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.PSObject[]] - ${Prompts}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.PSObject[]] - ${MenuOptions}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${EnableDialByName}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DirectorySearchMethod] - ${DirectorySearchMethod}, - - [Parameter(Position=5)] - [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-CsAutoAttendantMenu'; - } - $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-CsAutoAttendantMenuOption { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.ActionType] - ${Action}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.DtmfTone] - ${DtmfResponse}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${VoiceResponses}, - - [Parameter(Position=3)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.OAA.Models.CallableEntity] - ${CallTarget}, - - [Parameter(Position=4)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.PSObject] - ${Prompt}, - - [Parameter(Position=5)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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')] - [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-CsAutoAttendantMenuOption'; - } - $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-CsAutoAttendantPrompt { -[CmdletBinding(DefaultParameterSetName='TextToSpeechParamSet', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='TextToSpeechParamSet', Position=0, Mandatory)] - [Parameter(ParameterSetName='DualParamSet', Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TextToSpeechPrompt}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='DualParamSet', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ActiveType}, - - [Parameter(ParameterSetName='DualParamSet', Position=1)] - [Parameter(ParameterSetName='AudioFileParamSet', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.Online.Models.AudioFile] - ${AudioFilePrompt} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - TextToSpeechParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; - DualParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; - AudioFileParamSet = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsAutoAttendantPrompt'; - } - $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-CsBatchTeamsDeployment { -[OutputType([System.String])] -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TeamsFilePath}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UsersFilePath}, - - [Parameter(Position=2, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UsersToNotify}, - - [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-CsBatchTeamsDeployment'; - } - $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-CsCallQueue { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${AgentAlertTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOptOut}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${DistributionLists}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${UseDefaultMusicOnHold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WelcomeMusicAudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WelcomeTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MusicOnHoldAudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] - ${OverflowAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${OverflowThreshold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] - ${TimeoutAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${TimeoutThreshold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] - ${RoutingMethod}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PresenceBasedRouting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ConferenceMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${Users}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LanguageId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LineUri}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${OboResourceAccountIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOverflowSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTimeoutSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] - ${NoAgentAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableNoAgentSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] - ${NoAgentApplyTo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${ChannelUserObjectId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ShouldOverwriteCallableChannelProperty}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${AuthorizedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${HideAuthorizedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${OverflowActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${TimeoutActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${NoAgentActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${IsCallbackEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackRequestDtmf}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${WaitTimeBeforeOfferingCallbackInSecond}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${NumberOfCallsInQueueBeforeOfferingCallback}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${CallToAgentRatioThresholdBeforeOfferingCallback}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackOfferAudioFilePromptResourceId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackOfferTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackEmailNotificationTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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] - ${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-CsCallQueue'; - } - $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-CsComplianceRecordingForCallQueueTemplate { -[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.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[]] - ${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-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 New-CsConfigurationModern { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigType}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag}, - - [Parameter(Position=2, 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-CsConfigurationModern'; - } - $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-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.Object] - ${Identity}, - - [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}, - - [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 = @{ - 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) - $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-CsMainlineAttendantAppointmentBookingFlow { -[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')] - [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()] - [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-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 New-CsMainlineAttendantQuestionAnswerFlow { -[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=3, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${KnowledgeBase}, - - [Parameter(Position=2)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.Online.Models.ApiAuthenticationType] - ${ApiAuthenticationType}, - - [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-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 New-CsOnlineApplicationInstanceAssociation { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, - - [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}, - - [Parameter(Position=4)] - [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-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) - $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-CsOnlineTelephoneNumberReleaseOrder { -[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-CsOnlineTelephoneNumberReleaseOrder'; - InputByRange = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTelephoneNumberReleaseOrder'; - InputByFile = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsOnlineTelephoneNumberReleaseOrder'; - } - $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-CsOnlineTimeRange { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Start}, - - [Parameter(Position=1, Mandatory)] - [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-CsOnlineTimeRange'; - } - $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-CsSdgBulkSignInRequest { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DeviceDetailsFilePath}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Region} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsSdgBulkSignInRequest'; - } - $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-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])] -[CmdletBinding(DefaultParameterSetName='NewExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='New', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - ${Locale}, - - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity] - # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - ${InputObject}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DisplayName}, - - [Parameter(ParameterSetName='NewExpanded', Mandatory)] - [Parameter(ParameterSetName='NewViaIdentityExpanded', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ShortDescription}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamsAppTemplate[]] - # 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[]] - ${Category}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IChannelTemplate[]] - # 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] - ${Classification}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Description}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamDiscoverySettings] - # 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] - # 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] - # 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] - ${Icon}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${IsMembershipLimitedToOwner}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamMemberSettings] - # 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] - # 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] - ${OwnerUserObjectId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PublishedBy}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Specialization}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TemplateId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Uri}, - - [Parameter(ParameterSetName='NewExpanded')] - [Parameter(ParameterSetName='NewViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Visibility}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='New', Mandatory, ValueFromPipeline)] - [Parameter(ParameterSetName='NewViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ITeamTemplate] - # 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] - ${Break}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelineAppend}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Uri] - ${Proxy}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.PSCredential] - ${ProxyCredential}, - - [Parameter(DontShow)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Runtime')] - [System.Management.Automation.SwitchParameter] - ${ProxyUseDefaultCredentials} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; - New = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; - NewViaIdentityExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; - NewViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsTeamTemplate'; - } - $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-CsUserCallingDelegate { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Delegate}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MakeCalls}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ManageSettings}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ReceiveCalls}, - - [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 = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\New-CsUserCallingDelegate'; - } - $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 Register-CsOdcServiceNumber { -[CmdletBinding(DefaultParameterSetName='ById', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='ById', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [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='ByInstance', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - # To construct, see NOTES section for INSTANCE properties and create a hash table. - ${Instance} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - ById = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Register-CsOdcServiceNumber'; - ByInstance = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Register-CsOdcServiceNumber'; - } - $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-CsAutoAttendant { -[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')] - [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-CsAutoAttendant'; - } - $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-CsCallQueue { -[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.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-CsCallQueue'; - } - $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-CsComplianceRecordingForCallQueueTemplate { -[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-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 Remove-CsConfigurationModern { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigType}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Position=2, 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-CsConfigurationModern'; - } - $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-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')] - [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-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 Remove-CsMainlineAttendantQuestionAnswerFlow { -[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')] - [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-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 Remove-CsOnlineApplicationInstanceAssociation { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${Identities}, - - [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-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) - $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-CsPhoneNumberAssignment { -[CmdletBinding(DefaultParameterSetName='RemoveSome', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(ParameterSetName='RemoveSome', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PhoneNumber}, - - [Parameter(ParameterSetName='RemoveSome', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='RemoveAll', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${RemoveAll} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - RemoveSome = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsPhoneNumberAssignment'; - RemoveAll = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsPhoneNumberAssignment'; - } - $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-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)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Delegate}, - - [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 = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Remove-CsUserCallingDelegate'; - } - $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-CsAutoAttendant { -[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-CsAutoAttendant'; - } - $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-CsCallQueue { -[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] - ${Name}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${AgentAlertTime}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowOptOut}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${DistributionLists}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${UseDefaultMusicOnHold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WelcomeMusicAudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${WelcomeTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${MusicOnHoldAudioFileId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.OverflowAction] - ${OverflowAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${OverflowThreshold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.TimeoutAction] - ${TimeoutAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${TimeoutThreshold}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.RoutingMethod] - ${RoutingMethod}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${PresenceBasedRouting}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ConferenceMode}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${Users}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LanguageId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LineUri}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${OboResourceAccountIds}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOverflowSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableOverflowSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OverflowRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTimeoutSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableTimeoutSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TimeoutRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentAction] - ${NoAgentAction}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentActionTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentSharedVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentSharedVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableNoAgentSharedVoicemailTranscription}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${EnableNoAgentSharedVoicemailSystemPromptSuppression}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Rtc.Management.Hosted.HuntGroup.Models.NoAgentApplyTo] - ${NoAgentApplyTo}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentDisconnectAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentDisconnectTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPersonAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPersonTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoiceAppAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoiceAppTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPhoneNumberAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectPhoneNumberTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoicemailAudioFilePrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${NoAgentRedirectVoicemailTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ChannelId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid] - ${ChannelUserObjectId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ShouldOverwriteCallableChannelProperty}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${AuthorizedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Guid[]] - ${HideAuthorizedUsers}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${OverflowActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${TimeoutActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int16] - ${NoAgentActionCallPriority}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${IsCallbackEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackRequestDtmf}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${WaitTimeBeforeOfferingCallbackInSecond}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${NumberOfCallsInQueueBeforeOfferingCallback}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Int32]] - ${CallToAgentRatioThresholdBeforeOfferingCallback}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackOfferAudioFilePromptResourceId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackOfferTextToSpeechPrompt}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallbackEmailNotificationTarget}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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] - ${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-CsCallQueue'; - } - $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-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)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ConfigType}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Collections.Hashtable] - ${PropertyBag}, - - [Parameter(Position=2, 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-CsConfigurationModern'; - } - $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-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)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${PrimaryLanguage}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - ${SecondaryLanguages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${RestoreDefaultLanguages}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - # To construct, see NOTES section for INSTANCE properties and create a hash table. - ${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-CsOdcServiceNumber'; - } - $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-CsOnlineDialInConferencingBridge { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Name}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DefaultServiceNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SetDefault}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter(ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingBridge] - # To construct, see NOTES section for INSTANCE properties and create a hash table. - ${Instance}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [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-CsOnlineDialInConferencingBridge'; - } - $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-CsOnlineDialInConferencingUser { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TollFreeServiceNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${SendEmail}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ServiceNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${ResetLeaderPin}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${SendEmailToAddress}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Nullable[System.Boolean]] - ${AllowTollFreeDialIn}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${AsJob}, - - [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-CsOnlineDialInConferencingUser'; - } - $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-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] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${TelephoneNumber}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationId}, - - [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 = @{ - 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) - $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-CsPersonalAttendantSettings { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter(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}, - - [Parameter(ParameterSetName='PersonalAttendantOnOff', Mandatory)] - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsPersonalAttendantEnabled}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DefaultLanguage}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsBookingCalendarEnabled}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsCallScreeningEnabled}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowInboundInternalCalls}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowInboundFederatedCalls}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${AllowInboundPSTNCalls}, - - [Parameter(ParameterSetName='PersonalAttendant', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsAutomaticTranscriptionEnabled}, - - [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] - ${DefaultVoice}, - - [Parameter(ParameterSetName='PersonalAttendant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CalleeName}, - - [Parameter(ParameterSetName='PersonalAttendant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${DefaultTone}, - - [Parameter(ParameterSetName='PersonalAttendant')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsNonContactCallbackEnabled} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - 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) - $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-CsPhoneNumberAssignment { -[CmdletBinding(DefaultParameterSetName='LocationUpdate', PositionalBinding=$false)] -param( - [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] - ${PhoneNumber}, - - [Parameter(ParameterSetName='LocationUpdate', Mandatory)] - [Parameter(ParameterSetName='Assignment')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LocationId}, - - [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}, - - [Parameter(ParameterSetName='Assignment')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Notify} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $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'; - } - $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-CsSharedCallQueueHistoryTemplate { -[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-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 Set-CsTagsTemplate { -[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-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 Set-CsTeamsSettingsCustomApp { -[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${isSideloadedAppsInteractionEnabled}, - - [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-CsTeamsSettingsCustomApp'; - } - $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-CsUserCallingDelegate { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Delegate}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${MakeCalls}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ManageSettings}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${ReceiveCalls}, - - [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 = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingDelegate'; - } - $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-CsUserCallingSettings { -[CmdletBinding(DefaultParameterSetName='Identity', PositionalBinding=$false)] -param( - [Parameter(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}, - - [Parameter(ParameterSetName='CallGroupNotification', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${GroupNotificationOverride}, - - [Parameter(ParameterSetName='CallGroupMembership', Mandatory)] - [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='CallGroup', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${CallGroupOrder}, - - [Parameter(ParameterSetName='CallGroup', Mandatory)] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Array] - ${CallGroupTargets}, - - [Parameter(ParameterSetName='UnansweredOnOff', Mandatory)] - [Parameter(ParameterSetName='Unanswered', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsUnansweredEnabled}, - - [Parameter(ParameterSetName='Unanswered', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UnansweredDelay}, - - [Parameter(ParameterSetName='Unanswered')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UnansweredTarget}, - - [Parameter(ParameterSetName='Unanswered')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${UnansweredTargetType}, - - [Parameter(ParameterSetName='ForwardingOnOff', Mandatory)] - [Parameter(ParameterSetName='Forwarding', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Boolean] - ${IsForwardingEnabled}, - - [Parameter(ParameterSetName='Forwarding', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ForwardingType}, - - [Parameter(ParameterSetName='Forwarding', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ForwardingTargetType}, - - [Parameter(ParameterSetName='Forwarding')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${ForwardingTarget} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - Identity = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - CallGroupNotification = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - CallGroupMembership = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - CallGroup = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - UnansweredOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - Unanswered = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - ForwardingOnOff = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - Forwarding = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserCallingSettings'; - } - $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-CsUserModern { -[CmdletBinding(DefaultParameterSetName='Id', PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${EnterpriseVoiceEnabled}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${HostedVoiceMail}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${LineURI}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${OnPremLineURI}, - - [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 = @{ - Id = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-CsUserModern'; - } - $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-FixTenantFedConfigObject { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ConfigObject} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FixTenantFedConfigObject'; - } - $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-FixTypoInOnlinePSTNGatewayConfigObject { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ConfigObject} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FixTypoInOnlinePSTNGatewayConfigObject'; - } - $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-FormatOnConfigObject { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ConfigObject}, - - [Parameter(Position=1, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Object] - ${ConfigType} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Set-FormatOnConfigObject'; - } - $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 Unregister-CsOdcServiceNumber { -[CmdletBinding(DefaultParameterSetName='ById', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='ById', Position=0, Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${Identity}, - - [Parameter()] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - ${BridgeName}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${Force}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Management.Automation.SwitchParameter] - ${RemoveDefaultServiceNumber}, - - [Parameter(DontShow)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Runtime.SendAsyncStep[]] - ${HttpPipelinePrepend}, - - [Parameter(ParameterSetName='ByInstance', Mandatory, ValueFromPipeline)] - [ValidateNotNull()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ConferencingServiceNumber] - # To construct, see NOTES section for INSTANCE properties and create a hash table. - ${Instance} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - ById = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Unregister-CsOdcServiceNumber'; - ByInstance = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Unregister-CsOdcServiceNumber'; - } - $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-CsAutoAttendant { -[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] - ${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\Update-CsAutoAttendant'; - } - $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-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.Object] - ${Identity}, - - [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}, - - [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 = @{ - RequiredPolicyList = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Update-CsCustomPolicyPackage'; - } - $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 Write-AdminServiceDiagnostic { -[CmdletBinding(PositionalBinding=$false)] -param( - [Parameter(Position=0)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDiagnosticRecord[]] - # To construct, see NOTES section for DIAGNOSTICS properties and create a hash table. - ${Diagnostics} -) - -begin { - try { - $outBuffer = $null - if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { - $PSBoundParameters['OutBuffer'] = 1 - } - $parameterSet = $PSCmdlet.ParameterSetName - - $mapping = @{ - __AllParameterSets = 'Microsoft.Teams.ConfigAPI.Cmdlets.custom\Write-AdminServiceDiagnostic'; - } - $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 - } -} -} - -# SIG # Begin signature block -# MIIoKgYJKoZIhvcNAQcCoIIoGzCCKBcCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBkgNc3SV2m6Sgc -# z1TChY0ngz7tOvT8zgayZlr22W0TRaCCDXYwggX0MIID3KADAgECAhMzAAAEhV6Z -# 7A5ZL83XAAAAAASFMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD -# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p -# bmcgUENBIDIwMTEwHhcNMjUwNjE5MTgyMTM3WhcNMjYwNjE3MTgyMTM3WjB0MQsw -# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u -# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy -# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -# AQDASkh1cpvuUqfbqxele7LCSHEamVNBfFE4uY1FkGsAdUF/vnjpE1dnAD9vMOqy -# 5ZO49ILhP4jiP/P2Pn9ao+5TDtKmcQ+pZdzbG7t43yRXJC3nXvTGQroodPi9USQi -# 9rI+0gwuXRKBII7L+k3kMkKLmFrsWUjzgXVCLYa6ZH7BCALAcJWZTwWPoiT4HpqQ -# hJcYLB7pfetAVCeBEVZD8itKQ6QA5/LQR+9X6dlSj4Vxta4JnpxvgSrkjXCz+tlJ -# 67ABZ551lw23RWU1uyfgCfEFhBfiyPR2WSjskPl9ap6qrf8fNQ1sGYun2p4JdXxe -# UAKf1hVa/3TQXjvPTiRXCnJPAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE -# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUuCZyGiCuLYE0aU7j5TFqY05kko0w -# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW -# MBQGA1UEBRMNMjMwMDEyKzUwNTM1OTAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci -# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j -# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG -# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu -# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 -# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBACjmqAp2Ci4sTHZci+qk -# tEAKsFk5HNVGKyWR2rFGXsd7cggZ04H5U4SV0fAL6fOE9dLvt4I7HBHLhpGdE5Uj -# Ly4NxLTG2bDAkeAVmxmd2uKWVGKym1aarDxXfv3GCN4mRX+Pn4c+py3S/6Kkt5eS -# DAIIsrzKw3Kh2SW1hCwXX/k1v4b+NH1Fjl+i/xPJspXCFuZB4aC5FLT5fgbRKqns -# WeAdn8DsrYQhT3QXLt6Nv3/dMzv7G/Cdpbdcoul8FYl+t3dmXM+SIClC3l2ae0wO -# lNrQ42yQEycuPU5OoqLT85jsZ7+4CaScfFINlO7l7Y7r/xauqHbSPQ1r3oIC+e71 -# 5s2G3ClZa3y99aYx2lnXYe1srcrIx8NAXTViiypXVn9ZGmEkfNcfDiqGQwkml5z9 -# nm3pWiBZ69adaBBbAFEjyJG4y0a76bel/4sDCVvaZzLM3TFbxVO9BQrjZRtbJZbk -# C3XArpLqZSfx53SuYdddxPX8pvcqFuEu8wcUeD05t9xNbJ4TtdAECJlEi0vvBxlm -# M5tzFXy2qZeqPMXHSQYqPgZ9jvScZ6NwznFD0+33kbzyhOSz/WuGbAu4cHZG8gKn -# lQVT4uA2Diex9DMs2WHiokNknYlLoUeWXW1QrJLpqO82TLyKTbBM/oZHAdIc0kzo -# STro9b3+vjn2809D0+SOOCVZMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq -# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x -# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv -# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG -# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG -# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg -# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC -# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 -# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr -# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg -# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy -# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 -# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh -# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k -# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB -# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn -# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 -# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w -# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o -# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD -# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa -# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny -# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG -# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t -# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV -# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 -# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG -# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl -# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb -# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l -# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 -# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 -# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 -# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam -# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa -# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah -# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA -# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt -# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr -# /Xmfwb1tbWrJUnMTDXpQzTGCGgowghoGAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw -# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN -# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp -# Z25pbmcgUENBIDIwMTECEzMAAASFXpnsDlkvzdcAAAAABIUwDQYJYIZIAWUDBAIB -# BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO -# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEscMFYNCcnOY66Fk7jQ6La9 -# n/+rO9ShrpMG4d3ll1OeMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A -# cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB -# BQAEggEAZmAGn1n0y9mKzaNyeh9vxzKl7PrdBwdueox8/iGJl+eb2DvPEM6oNjvx -# zRld11sOitlN/nBDASbDRm5r2H4UhNVmkc0KPRV4Dm9HFdhzKNdtG8+nMc4g1v05 -# QQnwCesuNZh9gE+datNrsU9RKuocUiSXsCWPJAtsDLC/JQbJuaJS8fldgess3w3r -# n+eM6bVOiOhlpTXtRtnRTo5zYDXipTdEauJo1fR6gaF20sJ0NmIjYv3CcUWJ+E19 -# 7ZbgmDlLj1F9Bxh5AKAp/c8r+4F+rJU5x9eZqy27T4NDL68O89AUg/dCzdIjj5II -# RbOnUbdKb4KtIbWd2kCVmHrcF7uFyKGCF5QwgheQBgorBgEEAYI3AwMBMYIXgDCC -# F3wGCSqGSIb3DQEHAqCCF20wghdpAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFSBgsq -# hkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl -# AwQCAQUABCBvszC7o2PMK3q9tNrT6+2O295g5bMfqsffiurTMSgFYgIGaNry8iS+ -# GBMyMDI1MTAwMTA4MzMzMC45OTJaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQGEwJV -# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE -# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1l -# cmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTYwMC0w -# NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wg -# ghHqMIIHIDCCBQigAwIBAgITMwAAAgTY4A4HlzJYmAABAAACBDANBgkqhkiG9w0B -# AQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE -# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD -# 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 -# 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/7.4.0/internal/Merged_internal.ps1 b/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 deleted file mode 100644 index 057e669f868d6..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/internal/Merged_internal.ps1 +++ /dev/null @@ -1,47725 +0,0 @@ - -# ---------------------------------------------------------------------------------- -# 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 - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest -.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 : 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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder -#> -function Complete-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='CompleteExpanded', 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)] - [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='CompleteExpanded')] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Action}, - - [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 = @{ - 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) - $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 -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 -.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/export-csonlineaudiofile -#> -function Export-CsOnlineAudioFile { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [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(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 = @{ - 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) - $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 -Find group. -GET /Teams.VoiceApps/groups?. -.Description -Find group. -GET /Teams.VoiceApps/groups?. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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}, - - [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] - # Gets or sets search query. - ${SearchQuery}, - - [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 = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; - } - - $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 -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 }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance -#> -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.Management.Automation.SwitchParameter] - # . - ${AssociatedOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExactMatchOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${IsAssociated}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${MaxResults}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SearchQuery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${UnAssociatedOnly}, - - [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 = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; - } - - $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 -Get Tenant from AAD. -Get-CsAadTenant -.Description -Get Tenant from AAD. -Get-CsAadTenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant -#> -function Get-CsAadTenant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] -[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-CsAadTenant_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -.Description -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.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-csaaduser -#> -function Get-CsAadUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # identity. - # Supports UserId as Guid or UPN as 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-CsAadUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.Description -Get a specific auto attendant. -GET 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.IGetAutoAttendantResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendant -#> -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)] - [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='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')] - [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-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) - $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 -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. -.Description -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.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-csautoattendantholidays -#> -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] - # 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-CsAutoAttendantHolidays_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -.Description -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantstatus -#> -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] - # 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()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] - # . - ${IncludeResources}, - - [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-CsAutoAttendantStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.Description -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantsupportedlanguage -#> -function Get-CsAutoAttendantSupportedLanguage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsAutoAttendantSupportedLanguage_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantsupportedtimezone -#> -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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsAutoAttendantSupportedTimeZone_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 }} - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.Description -Gets raw data from bvd tables. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csbusinessvoicedirectorydiagnosticdata -#> -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] - # PartitionKey of the table. - ${PartitionKey}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # 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')] - [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] - # 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] - # 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-CsBusinessVoiceDirectoryDiagnosticData_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-cscallqueue -#> -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] - # . - ${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()] - [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='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 - ${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-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) - $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 -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.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-cscompliancerecordingforcallqueuetemplate -#> -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='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] - # . - ${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 - ${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-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) - $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 -Get all tenant available configurations -.Description -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.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-csconfiguration -#> -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] - # . - ${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] - # 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-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) - $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 -Get all Appointment Booking flows for a tenant. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. -.Description -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.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-csmainlineattendantappointmentbookingflow -#> -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='Get1', 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='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] - # 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-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) - $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 -Get a specific MainlineAttendantFlow Config for the given flow identity. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. -.Description -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.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-csmainlineattendantflow -#> -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)] - [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] - # . - ${ConfigurationId}, - - [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] - # . - ${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] - # . - ${Type}, - - [Parameter(ParameterSetName='Get1')] - [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 - ${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-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) - $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 -Get all Question Answer flows for a tenant. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. -.Description -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.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-csmainlineattendantquestionanswerflow -#> -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='Get1', 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='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] - # 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-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) - $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 -Get requested Schema's data from MAS DB. -.Description -Get requested Schema's data from MAS DB. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata -#> -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] - # 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-CsMasVersionedSchemaData_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 meeting migration status for a user or tenant -.Description -Get meeting migration status for a user or tenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -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}, - - [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] - # 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-CsMeetingMigrationStatusModern_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 meeting migration status summary for a user or tenant -.Description -Get meeting migration status summary for a user or tenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern -#> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] -[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] - # 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-CsMeetingMigrationStatusSummaryModern_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 meeting migration transaction history for a user -.Description -Get meeting migration transaction history for a user -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern -#> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] -[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')] - [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')] - [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-CsMeetingMigrationTransactionHistoryModern_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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's Migrationdetails. -.Description -Get Tenant's Migrationdetails. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus -#> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] -[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-CsMoveTenantServiceInstanceTaskStatus_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -This cmdlet is point get operation on users. -.Description -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.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 -.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] - # 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')] - [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-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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.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')] - [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-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. -.Description -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.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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus -#> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] -[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-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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.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-csonlineaudiofile -#> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[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] - # . - ${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] - # 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-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) - $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 - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.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. - -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-csonlineenhancedemergencyservicedisclaimer -#> -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] - # . - ${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')] - [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-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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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'; - } - - $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 -Get all schedules for a tenant. -GET Teams.VoiceApps/schedules?. -.Description -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.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-csonlineschedule -#> -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='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] - # . - ${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] - # 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-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) - $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 - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtGetGenericOrderResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder -#> -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] - # . - ${OrderId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${OrderType}, - - [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-CsOnlineTelephoneNumberOrder_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 Cs-OnlineVoicemailUserSettings. -.Description -Get Cs-OnlineVoicemailUserSettings. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.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. - -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-csonlinevmusersetting -#> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] -[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()] - [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 = @{ - 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) - $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 -Get all Shared Call Queue History Configs. -GET /Teams.VoiceApps/shared-call-queue-history?. -.Description -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.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-cssharedcallqueuehistorytemplate -#> -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='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] - # . - ${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] - # . - ${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 - ${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-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) - $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 -Get all ivr tags template for a tenant. -GET api/v1.0/tenants/tenantId/ivr-tags-template?. -.Description -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.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. - -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-cstagstemplate -#> -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='Get1', 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='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] - # 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-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) - $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 -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] - # 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 -.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. - -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-csteamtemplatelist -#> -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='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Language and country code for localization of publicly available templates. - ${PublicTemplateLocale}, - - [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-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() - - } 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 -Get Tenant. -.Description -Get Tenant. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Properties to select - ${Select}, - - [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-CsTenantObou_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.Description -Get User. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-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] - # UserId. - # Supports Guid. - # Eventually UPN and SIP. - ${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] - # 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] - # 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-CsUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -Unified group grant. -.Description -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 -COMPLEX PARAMETER PROPERTIES - -To 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/grant-csgrouppolicyassignment -#> -function Grant-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -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)] - [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.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] - # . - ${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')] - [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 = @{ - 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) - $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 -Assign a policy package to a group in a tenant -.Description -Assign a policy package to a group in a tenant -.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 : -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment -#> -function Grant-CsGroupPolicyPackageAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${GroupId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PackageName}, - - [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}, - - [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 = @{ - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; - } - - $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 -Update single policy of a Tenant -.Description -Update single policy of a 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 - -To 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 -.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')] - [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] - # 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 = @{ - 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) - $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 -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.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/grant-csuserpolicy -#> -function Grant-CsUserPolicy { -[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')] - [System.String] - # User Id - ${Identity}, - - [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.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] - # 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 = @{ - 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) - $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 -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. -.Description -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.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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays -#> -function Import-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -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')] - [System.String] - # . - ${SerializedHolidayRecord}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, - - [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 = @{ - 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) - $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 -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.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 ]: -.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')] - [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] - # 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 = @{ - 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) - $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 -Invokes Custom Handler -.Description -Invokes Custom Handler -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Callback Operation. - ${Operation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # EventName for the SendEventPostURI. - ${Eventname}, - - [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 = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; - } - - $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 -Post DsSync resync cmdlet -.Description -Post DsSync resync cmdlet -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody -.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 : 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/invoke-csdirectobjectsync -#> -function Invoke-CsDirectObjectSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', 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')] - [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[]] - # . - ${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')] - [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 = @{ - 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) - $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 -Post resync operation cmdlet -.Description -Post resync operation cmdlet -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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. - -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/invoke-csmsodssync -#> -function Invoke-CsMsodsSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', 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')] - [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}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # TenantId GUID - ${TenantId}, - - [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 = @{ - 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) - $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 -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. -.Description -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest -.Outputs -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 : . - [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 ]: - [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-csautoattendant -#> -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.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] - # . - ${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')] - [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-CsAutoAttendant_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. -.Description -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.ICreateCallableEntityRequest -.Outputs -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 : . - [CallPriority ]: - [EnableSharedVoicemailSystemPromptSuppression ]: - [EnableTranscription ]: - [Id ]: - [Type ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity -#> -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.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] - # . - ${Identity}, - - [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] - # 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-CsAutoAttendantCallableEntity_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 -.Outputs -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 : . - [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, 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')] - [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(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-CsAutoAttendantCallFlow_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 ]: -.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] - # . - ${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] - # 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-CsAutoAttendantCallHandlingAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest -.Outputs -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. - -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')] - [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[]] - # . - ${GroupIds}, - - [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-CsAutoAttendantDialScope_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest -.Outputs -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. - -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/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')] - [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')] - [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')] - [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-CsAutoAttendantMenu_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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')] - [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] - # . - ${AgentTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${AgentTargetTagTemplateId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${AgentTargetType}, - - [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] - # . - ${Description}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DtmfResponse}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MainlineAttendantTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PromptActiveType}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PromptTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${VoiceResponses}, - - [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-CsAutoAttendantMenuOption_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. -.Description -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.ICreatePromptRequest -.Outputs -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 : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt -#> -function New-CsAutoAttendantPrompt { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] -[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] - # . - # 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] - # . - ${ActiveType}, - - [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.String] - # . - ${TextToSpeechPrompt}, - - [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-CsAutoAttendantPrompt_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -Starts Deployment at Scale -.Description -Starts Deployment at Scale -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest -.Outputs -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 : . - DeploymentCsv : - [UsersToNotify ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment -#> -function New-CsBatchTeamsDeployment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] -[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] - # . - # 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')] - [System.String] - # . - ${DeploymentCsv}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UsersToNotify}, - - [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-CsBatchTeamsDeployment_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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.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 ]: - [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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtUpdateSearchOrderRequest -.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 : 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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/complete-csonlinetelephonenumberorder -#> -function Complete-CsOnlineTelephoneNumberOrder { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ISkypeTelephoneNumberMgmtErrorResponseDetails])] -[CmdletBinding(DefaultParameterSetName='CompleteExpanded', 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)] - [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='CompleteExpanded')] - [Parameter(ParameterSetName='CompleteViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${Action}, - - [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 = @{ - 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) - $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 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 -.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/export-csonlineaudiofile -#> -function Export-CsOnlineAudioFile { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Export', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${ApplicationId}, - - [Parameter(ParameterSetName='Export', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # . - ${Identity}, - - [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(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 = @{ - 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) - $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 -Find group. -GET /Teams.VoiceApps/groups?. -.Description -Find group. -GET /Teams.VoiceApps/groups?. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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}, - - [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] - # Gets or sets search query. - ${SearchQuery}, - - [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 = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsGroup_Find'; - } - - $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 -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 }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstancesResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/find-csonlineapplicationinstance -#> -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.Management.Automation.SwitchParameter] - # . - ${AssociatedOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${ExactMatchOnly}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${IsAssociated}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Int32] - # . - ${MaxResults}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${SearchQuery}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.Management.Automation.SwitchParameter] - # . - ${UnAssociatedOnly}, - - [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 = @{ - Find = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Find-CsOnlineApplicationInstance_Find'; - } - - $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 Tenant from AAD. -Get-CsAadTenant -.Description -Get Tenant from AAD. -Get-CsAadTenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csaadtenant -#> -function Get-CsAadTenant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadTenant])] -[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-CsAadTenant_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 User. -Get-CsAadUser -.Description -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.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-csaaduser -#> -function Get-CsAadUser { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAadUser])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # identity. - # Supports UserId as Guid or UPN as 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-CsAadUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAadUser_GetViaIdentity'; - } - - $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets auto attendant holidays. -GET Teams.VoiceApps/auto-attendants/identity/holidays. -.Description -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.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-csautoattendantholidays -#> -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] - # 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-CsAutoAttendantHolidays_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantHolidays_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 -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity -.Description -Get a specific auto attendant. -GET Teams.VoiceApps/auto-attendants/status/identity -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IStatusRecord3 -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantstatus -#> -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] - # 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()] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String[]] - # . - ${IncludeResources}, - - [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-CsAutoAttendantStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantStatus_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 -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. -.Description -Get specific language information. -GET Teams.VoiceApps/supported-languages/identity. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantsupportedlanguage -#> -function Get-CsAutoAttendantSupportedLanguage { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedLanguageResponse])] -[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] -param( - [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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsAutoAttendantSupportedLanguage_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedLanguage_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 -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 }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetSupportedTimeZoneResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendantsupportedtimezone -#> -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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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-CsAutoAttendantSupportedTimeZone_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsAutoAttendantSupportedTimeZone_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 -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 }} - -.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 -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetAutoAttendantsResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csautoattendant -#> -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)] - [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='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')] - [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-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) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Gets raw data from bvd tables. -.Description -Gets raw data from bvd tables. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IBvdTableEntity -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-csbusinessvoicedirectorydiagnosticdata -#> -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] - # PartitionKey of the table. - ${PartitionKey}, - - [Parameter(ParameterSetName='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # 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')] - [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] - # 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] - # 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-CsBusinessVoiceDirectoryDiagnosticData_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsBusinessVoiceDirectoryDiagnosticData_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 -Get call queues. -GET Teams.VoiceApps/callqueues?. -.Description -Get call queues. -GET Teams.VoiceApps/callqueues?. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueueResponse -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetCallQueuesResponse -.Notes -COMPLEX PARAMETER PROPERTIES - -To 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-cscallqueue -#> -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] - # . - ${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()] - [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='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 - ${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-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) - $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 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.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-cscompliancerecordingforcallqueuetemplate -#> -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='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] - # . - ${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 - ${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-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) - $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 all tenant available configurations -.Description -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.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-csconfiguration -#> -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] - # . - ${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] - # 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-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) - $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 all Appointment Booking flows for a tenant. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/appointment-booking?. -.Description -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.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-csmainlineattendantappointmentbookingflow -#> -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='Get1', 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='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] - # 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-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) - $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 MainlineAttendantFlow Config for the given flow identity. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/identity. -.Description -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.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-csmainlineattendantflow -#> -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)] - [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] - # . - ${ConfigurationId}, - - [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] - # . - ${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] - # . - ${Type}, - - [Parameter(ParameterSetName='Get1')] - [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 - ${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-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) - $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 all Question Answer flows for a tenant. -GET api/v1.0/tenants/tenantId/mainline-attendant-flow/question-answer?. -.Description -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.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-csmainlineattendantquestionanswerflow -#> -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='Get1', 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='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] - # 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-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) - $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 requested Schema's data from MAS DB. -.Description -Get requested Schema's data from MAS DB. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMasSchemaItem -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmasversionedschemadata -#> -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] - # 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-CsMasVersionedSchemaData_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 meeting migration status for a user or tenant -.Description -Get meeting migration status for a user or tenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -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}, - - [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] - # 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-CsMeetingMigrationStatusModern_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 meeting migration status summary for a user or tenant -.Description -Get meeting migration status summary for a user or tenant -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationstatussummarymodern -#> -function Get-CsMeetingMigrationStatusSummaryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationStatusSummaryResponse])] -[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] - # 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-CsMeetingMigrationStatusSummaryModern_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 meeting migration transaction history for a user -.Description -Get meeting migration transaction history for a user -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmeetingmigrationtransactionhistorymodern -#> -function Get-CsMeetingMigrationTransactionHistoryModern { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IMeetingMigrationTransactionHistoryResponse])] -[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')] - [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')] - [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-CsMeetingMigrationTransactionHistoryModern_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 Tenant's Migrationdetails. -.Description -Get Tenant's Migrationdetails. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csmovetenantserviceinstancetaskstatus -#> -function Get-CsMoveTenantServiceInstanceTaskStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGmtSchemaItem])] -[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-CsMoveTenantServiceInstanceTaskStatus_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 -This cmdlet is point get operation on users. -.Description -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.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 -.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] - # 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')] - [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-CsOdcUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOdcUser_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 -Get application instance association status. -GET Teams.VoiceApps/applicationinstanceassociations/identity/status. -.Description -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.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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlineapplicationinstanceassociationstatus -#> -function Get-CsOnlineApplicationInstanceAssociationStatus { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IGetApplicationInstanceAssociationStatusResponse])] -[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-CsOnlineApplicationInstanceAssociationStatus_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociationStatus_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 -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.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')] - [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-CsOnlineApplicationInstanceAssociation_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsOnlineApplicationInstanceAssociation_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 -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.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-csonlineaudiofile -#> -function Get-CsOnlineAudioFile { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IAudioFileDto])] -[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] - # . - ${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] - # 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-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) - $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 -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. - -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-csonlineenhancedemergencyservicedisclaimer -#> -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] - # . - ${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')] - [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-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'; - } - - $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 all schedules for a tenant. -GET Teams.VoiceApps/schedules?. -.Description -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.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-csonlineschedule -#> -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='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] - # . - ${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] - # 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-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) - $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.ISkypeTelephoneNumberMgmtGetGenericOrderResponse -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/get-csonlinetelephonenumberorder -#> -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] - # . - ${OrderId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # . - ${OrderType}, - - [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-CsOnlineTelephoneNumberOrder_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 Cs-OnlineVoicemailUserSettings. -.Description -Get Cs-OnlineVoicemailUserSettings. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.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. - -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-csonlinevmusersetting -#> -function Get-CsOnlineVMUserSetting { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IVoicemailSettings])] -[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()] - [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 = @{ - 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) - $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 all Shared Call Queue History Configs. -GET /Teams.VoiceApps/shared-call-queue-history?. -.Description -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.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-cssharedcallqueuehistorytemplate -#> -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='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] - # . - ${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] - # . - ${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 - ${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-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) - $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 all ivr tags template for a tenant. -GET api/v1.0/tenants/tenantId/ivr-tags-template?. -.Description -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.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. - -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-cstagstemplate -#> -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='Get1', 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='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] - # 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-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) - $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 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] - # 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 -.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. - -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-csteamtemplatelist -#> -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='Get', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Language and country code for localization of publicly available templates. - ${PublicTemplateLocale}, - - [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-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() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Get Tenant. -.Description -Get Tenant. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # To set defaultpropertyset value - ${Defaultpropertyset}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Properties to select - ${Select}, - - [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-CsTenantObou_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 User. -.Description -Get User. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Outputs -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. - -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-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] - # UserId. - # Supports Guid. - # Eventually UPN and SIP. - ${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] - # 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] - # 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-CsUser_Get'; - GetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Get-CsUser_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 -Unified group grant. -.Description -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 -COMPLEX PARAMETER PROPERTIES - -To 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/grant-csgrouppolicyassignment -#> -function Grant-CsGroupPolicyAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -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)] - [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.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] - # . - ${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')] - [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 = @{ - 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) - $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 -Assign a policy package to a group in a tenant -.Description -Assign a policy package to a group in a tenant -.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 : -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/grant-csgrouppolicypackageassignment -#> -function Grant-CsGroupPolicyPackageAssignment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPackageServiceModelsApplyPackageGroupResponse])] -[CmdletBinding(DefaultParameterSetName='GrantExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${GroupId}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PackageName}, - - [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}, - - [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 = @{ - GrantExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Grant-CsGroupPolicyPackageAssignment_GrantExpanded'; - } - - $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 single policy of a Tenant -.Description -Update single policy of a 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 - -To 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 -.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')] - [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] - # 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 = @{ - 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) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.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.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/grant-csuserpolicy -#> -function Grant-CsUserPolicy { -[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')] - [System.String] - # User Id - ${Identity}, - - [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.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] - # 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 = @{ - 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) - $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 -Import holidays for auto attendant. -PUT Teams.VoiceApps/auto-attendants/identity/holidays. -.Description -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.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 -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/import-csautoattendantholidays -#> -function Import-CsAutoAttendantHolidays { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IImportAutoAttendantHolidaysResponse])] -[CmdletBinding(DefaultParameterSetName='ImportExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -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')] - [System.String] - # . - ${SerializedHolidayRecord}, - - [Parameter(ParameterSetName='ImportExpanded')] - [Parameter(ParameterSetName='ImportViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${TenantId}, - - [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 = @{ - 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) - $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 -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.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 ]: -.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')] - [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] - # 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 = @{ - 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) - $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 Custom Handler -.Description -Invokes Custom Handler -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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}, - - [Parameter(Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # Callback Operation. - ${Operation}, - - [Parameter()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Query')] - [System.String] - # EventName for the SendEventPostURI. - ${Eventname}, - - [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 = @{ - Post = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Invoke-CsCustomHandlerCallBackNgtprov_Post'; - } - - $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 -Post DsSync resync cmdlet -.Description -Post DsSync resync cmdlet -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IDsRequestBody -.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 : 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/invoke-csdirectobjectsync -#> -function Invoke-CsDirectObjectSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', 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')] - [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[]] - # . - ${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')] - [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 = @{ - 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) - $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 -Post resync operation cmdlet -.Description -Post resync operation cmdlet -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.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. - -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/invoke-csmsodssync -#> -function Invoke-CsMsodsSync { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='PostExpanded', 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')] - [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}, - - [Parameter(ParameterSetName='PostExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # TenantId GUID - ${TenantId}, - - [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 = @{ - 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) - $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 callable entity draft. -POST Teams.VoiceApps/auto-attendants/callable-entities/draft. -.Description -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.ICreateCallableEntityRequest -.Outputs -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 : . - [CallPriority ]: - [EnableSharedVoicemailSystemPromptSuppression ]: - [EnableTranscription ]: - [Id ]: - [Type ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantcallableentity -#> -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.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] - # . - ${Identity}, - - [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] - # 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-CsAutoAttendantCallableEntity_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallableEntity_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 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 -.Outputs -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 : . - [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, 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')] - [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(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-CsAutoAttendantCallFlow_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallFlow_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 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 ]: -.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] - # . - ${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] - # 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-CsAutoAttendantCallHandlingAssociation_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantCallHandlingAssociation_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 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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateGroupDialScopeRequest -.Outputs -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. - -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')] - [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[]] - # . - ${GroupIds}, - - [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-CsAutoAttendantDialScope_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantDialScope_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 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')] - [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] - # . - ${AgentTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${AgentTargetTagTemplateId}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.Int32] - # . - ${AgentTargetType}, - - [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] - # . - ${Description}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${DtmfResponse}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${MainlineAttendantTarget}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PromptActiveType}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${PromptTextToSpeechPrompt}, - - [Parameter(ParameterSetName='NewExpanded')] - [AllowEmptyCollection()] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String[]] - # . - ${VoiceResponses}, - - [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-CsAutoAttendantMenuOption_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenuOption_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 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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateMenuRequest -.Outputs -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. - -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/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')] - [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')] - [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')] - [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-CsAutoAttendantMenu_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantMenu_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 prompt draft. -POST Teams.VoiceApps/auto-attendants/prompts/draft. -.Description -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.ICreatePromptRequest -.Outputs -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 : . - [ActiveType ]: - [AudioFilePromptDownloadUri ]: - [AudioFilePromptFileName ]: - [AudioFilePromptId ]: - [TextToSpeechPrompt ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csautoattendantprompt -#> -function New-CsAutoAttendantPrompt { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreatePromptResponse])] -[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] - # . - # 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] - # . - ${ActiveType}, - - [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.String] - # . - ${TextToSpeechPrompt}, - - [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-CsAutoAttendantPrompt_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendantPrompt_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 an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. -.Description -Create an AutoAttendant. -POST Teams.VoiceApps/auto-attendants. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.ICreateAutoAttendantRequest -.Outputs -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 : . - [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 ]: - [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-csautoattendant -#> -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.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] - # . - ${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')] - [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-CsAutoAttendant_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsAutoAttendant_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 -Starts Deployment at Scale -.Description -Starts Deployment at Scale -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequest -.Outputs -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 : . - DeploymentCsv : - [UsersToNotify ]: -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/new-csbatchteamsdeployment -#> -function New-CsBatchTeamsDeployment { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IFlwoServiceModelsFlwosBatchRequestResponse])] -[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] - # . - # 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')] - [System.String] - # . - ${DeploymentCsv}, - - [Parameter(ParameterSetName='NewExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # . - ${UsersToNotify}, - - [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-CsBatchTeamsDeployment_New'; - NewExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\New-CsBatchTeamsDeployment_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 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.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 ]: - [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[]] - # 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-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) - $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 -Add/Update user personal attendant settings in uss -.Description -Add/Update user personal attendant settings in uss -.Example - - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings -.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 : . - [AllowInboundFederatedCalls ]: - [AllowInboundInternalCalls ]: - [AllowInboundPSTNCalls ]: - [BookingCalendarId ]: - [CalleeName ]: - [DefaultLanguage ]: - [DefaultTone ]: - [DefaultVoice ]: - [IsAutomaticRecordingEnabled ]: - [IsAutomaticTranscriptionEnabled ]: - [IsBookingCalendarEnabled ]: - [IsCallScreeningEnabled ]: - [IsNonContactCallbackEnabled ]: - [IsPersonalAttendantEnabled ]: - -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-cspersonalattendantsettings -#> -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] - # . - ${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.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] - # 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-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) - $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 -System.String -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment -#> -function Set-CsPhoneNumberAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', 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')] - [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.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')] - [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-CsPhoneNumberAssignment_Set'; - } - - $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 shared call queue history template. -PUT /Teams.VoiceApps/shared-call-queue-history/identity. -.Description -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.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/set-cssharedcallqueuehistorytemplate -#> -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)] - [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.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.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 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 the identifier of the shared call queue history. - ${Id}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [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='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')] - [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-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) - $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 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 -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-cstagstemplate -#> -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] - # . - ${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.IIvrTagsTemplateDtoModel] - # . - # 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] - # Description of the IVR tag template. - ${Description}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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.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')] - [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-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) - $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 Org Settings - Set-CsTeamsSettingsCustomApp -.Description -Set Org Settings - Set-CsTeamsSettingsCustomApp -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest -.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. - -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. -.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')] - [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')] - [System.String] - # Logomark in the LOB category. - # It is either an image URL or a color code. - ${LobLogomark}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Color of the text in the LOB banner. - ${LobTextColor}, - - [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-CsTeamsSettingsCustomApp_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_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 delegate in bvd -.Description -Updates 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/set-csusercallingdelegate -#> -function Set-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', 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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # ObjectId of the group owner - ${Identity}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # 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-CsUserCallingDelegate_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; - } - - $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 -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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings -.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 : . - [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 ]: - [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] - # . - ${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.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] - # 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-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'; - } - - $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 User. -.Description -Set User. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -System.Collections.Hashtable -.Outputs -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. - -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='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.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] - # 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-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) - $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 -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 -.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/unregister-csodcservicenumber -#> -function Unregister-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', 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)] - [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='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')] - [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')] - [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 = @{ - 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) - $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 -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 -{{ Add code here }} - -.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. - -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-csautoattendant -#> -function Update-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] -[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to be refreshed. - ${Identity}, - - [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(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 = @{ - 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) - $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/update-csconfiguration -#> -function Update-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\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) - $scriptCmd = {& $wrappedCmd @PSBoundParameters} - $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) - $steppablePipeline.Begin($PSCmdlet) - } catch { - - throw - } -} - -process { - try { - $steppablePipeline.Process($_) - } catch { - - throw - } - -} -end { - try { - $steppablePipeline.End() - - } catch { - - throw - } -} -} - -<# -.Synopsis -Update a policy package -.Description -Update 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/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 ]: - [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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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}, - - [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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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')] - [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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 - -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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. -.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[]] - # 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-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) - $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 -Add/Update user personal attendant settings in uss -.Description -Add/Update user personal attendant settings in uss -.Example - - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IPersonalAttendantSettings -.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 : . - [AllowInboundFederatedCalls ]: - [AllowInboundInternalCalls ]: - [AllowInboundPSTNCalls ]: - [BookingCalendarId ]: - [CalleeName ]: - [DefaultLanguage ]: - [DefaultTone ]: - [DefaultVoice ]: - [IsAutomaticRecordingEnabled ]: - [IsAutomaticTranscriptionEnabled ]: - [IsBookingCalendarEnabled ]: - [IsCallScreeningEnabled ]: - [IsNonContactCallbackEnabled ]: - [IsPersonalAttendantEnabled ]: - -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-cspersonalattendantsettings -#> -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] - # . - ${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.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] - # 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-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) - $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 - -.Description - -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Outputs -System.String -.Link -https://docs.microsoft.com/en-us/powershell/module/teams/set-csphonenumberassignment -#> -function Set-CsPhoneNumberAssignment { -[OutputType([System.String])] -[CmdletBinding(DefaultParameterSetName='Set', 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')] - [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.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')] - [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-CsPhoneNumberAssignment_Set'; - } - - $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 -Update shared call queue history template. -PUT /Teams.VoiceApps/shared-call-queue-history/identity. -.Description -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.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/set-cssharedcallqueuehistorytemplate -#> -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)] - [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.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.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 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 the identifier of the shared call queue history. - ${Id}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [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='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')] - [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-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) - $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 -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 -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-cstagstemplate -#> -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] - # . - ${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.IIvrTagsTemplateDtoModel] - # . - # 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] - # Description of the IVR tag template. - ${Description}, - - [Parameter(ParameterSetName='SetExpanded')] - [Parameter(ParameterSetName='SetViaIdentityExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [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.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')] - [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-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) - $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 Org Settings - Set-CsTeamsSettingsCustomApp -.Description -Set Org Settings - Set-CsTeamsSettingsCustomApp -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateCustomAppSettingRequest -.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. - -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. -.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')] - [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')] - [System.String] - # Logomark in the LOB category. - # It is either an image URL or a color code. - ${LobLogomark}, - - [Parameter(ParameterSetName='SetExpanded')] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Body')] - [System.String] - # Color of the text in the LOB banner. - ${LobTextColor}, - - [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-CsTeamsSettingsCustomApp_Set'; - SetExpanded = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsTeamsSettingsCustomApp_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 - } -} -} - -# ---------------------------------------------------------------------------------- -# 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 -.Description -Updates 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/set-csusercallingdelegate -#> -function Set-CsUserCallingDelegate { -[OutputType([System.Boolean])] -[CmdletBinding(DefaultParameterSetName='Set', 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)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # ObjectId of the group owner - ${Identity}, - - [Parameter(ParameterSetName='SetViaIdentity', Mandatory, ValueFromPipeline)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [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] - # 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-CsUserCallingDelegate_Set'; - SetViaIdentity = 'Microsoft.Teams.ConfigAPI.Cmdlets.private\Set-CsUserCallingDelegate_SetViaIdentity'; - } - - $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 -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 }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUserRoutingSettings -.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 : . - [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 ]: - [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] - # . - ${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.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] - # 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-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'; - } - - $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 User. -.Description -Set User. -.Example -{{ Add code here }} -.Example -{{ Add code here }} - -.Inputs -Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConfigApiBasedCmdletsIdentity -.Inputs -System.Collections.Hashtable -.Outputs -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. - -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='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.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] - # 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-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) - $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 -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 -.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/unregister-csodcservicenumber -#> -function Unregister-CsOdcServiceNumber { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IConferencingServiceNumber])] -[CmdletBinding(DefaultParameterSetName='UnregisterExpanded', 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)] - [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='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')] - [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')] - [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 = @{ - 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) - $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 -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 -{{ Add code here }} - -.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. - -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-csautoattendant -#> -function Update-CsAutoAttendant { -[OutputType([Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.IUpdateAutoAttendantResponse])] -[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] -param( - [Parameter(ParameterSetName='Update', Mandatory)] - [Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Category('Path')] - [System.String] - # Id for the auto attendant to be refreshed. - ${Identity}, - - [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(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 = @{ - 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) - $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 -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/update-csconfiguration -#> -function Update-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\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) - $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 -Update a policy package -.Description -Update 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/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 - } -} -} - -# SIG # Begin signature block -# MIIoPAYJKoZIhvcNAQcCoIIoLTCCKCkCAQExDzANBglghkgBZQMEAgEFADB5Bgor -# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBz/kPsKFOwGek/ -# 6VbLdtLfJn4KQwSRtf6ff/hSAG8Fo6CCDYUwggYDMIID66ADAgECAhMzAAAEhJji -# 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/Xmfwb1tbWrJUnMTDXpQzTGCGg0wghoJAgEBMIGVMH4x -# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt -# 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 deleted file mode 100644 index 2e62ea6e6ac73..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/internal/Microsoft.Teams.ConfigAPI.Cmdlets.internal.psm1 +++ /dev/null @@ -1,257 +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 -# 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/7.4.0/netcoreapp3.1/CmdletSettings.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/CmdletSettings.json deleted file mode 100644 index fbfce66a5c535..0000000000000 --- a/Modules/MicrosoftTeams/7.4.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/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll deleted file mode 100644 index fdca7bac6a8b6..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.ApplicationInsights.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll deleted file mode 100644 index ad34a9aef84c1..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Applications.Events.Server.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll deleted file mode 100644 index 78b1b1c89c60a..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll deleted file mode 100644 index ec2db79670835..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll deleted file mode 100644 index 9b7c5d8faa25a..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Cryptography.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll deleted file mode 100644 index e8a18a4ec99e5..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Azure.KeyVault.Jose.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll deleted file mode 100644 index fc5d616f68d99..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Data.Sqlite.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll deleted file mode 100644 index d621de85f24f0..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll deleted file mode 100644 index 897b044501b1c..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Configuration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll deleted file mode 100644 index e29ee64f615ee..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index 47529d6aa416b..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll deleted file mode 100644 index 393cbf1dee972..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll deleted file mode 100644 index d787a8775b5c5..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Extensions.Primitives.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll deleted file mode 100644 index 0a0209905e26b..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll and /dev/null 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 deleted file mode 100644 index ca9a777af241d..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Broker.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll deleted file mode 100644 index 5169c48c914f2..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Desktop.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll deleted file mode 100644 index bf89be4980de8..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.Extensions.Msal.dll and /dev/null 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 deleted file mode 100644 index 9e41800ce4aea..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.NativeInterop.dll and /dev/null 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 deleted file mode 100644 index 2124ac0d246ba..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Identity.Client.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll deleted file mode 100644 index 4a29bc7db7f8d..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Abstractions.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll deleted file mode 100644 index 3324ed45ef53e..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.JsonWebTokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll deleted file mode 100644 index 8decf370fcaca..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Logging.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll deleted file mode 100644 index 45ae17b27e423..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.IdentityModel.Tokens.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll deleted file mode 100644 index 2c6c10570125d..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.Azure.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll deleted file mode 100644 index d3056a460fce1..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Rest.ClientRuntime.dll and /dev/null 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 deleted file mode 100644 index 015c3e2fbf963..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.ConfigAPI.CmdletHostContract.dll and /dev/null 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 deleted file mode 100644 index 1ad797c94a889..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll deleted file mode 100644 index 2b5b8520c438c..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll and /dev/null 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 deleted file mode 100644 index 595ee81d4fb46..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.PolicyRp.dll and /dev/null 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 deleted file mode 100644 index 9d95160a36f94..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll and /dev/null 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 deleted file mode 100644 index 236f96369c04e..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json deleted file mode 100644 index 0300bacaa3461..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.deps.json +++ /dev/null @@ -1,3134 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v3.1", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v3.1": { - "Microsoft.Teams.PowerShell.Module/7.4.0": { - "dependencies": { - "Microsoft.NETCore.Targets": "3.1.0", - "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.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", - "System.Net.Http": "4.3.4", - "System.Text.RegularExpressions": "4.3.1" - }, - "runtime": { - "Microsoft.Teams.PowerShell.Module.dll": {} - } - }, - "Microsoft.ApplicationInsights/2.9.1": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "System.Diagnostics.DiagnosticSource": "6.0.1", - "System.Diagnostics.StackTrace": "4.3.0", - "System.Net.Requests": "4.3.0", - "System.Threading.Thread": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/Microsoft.ApplicationInsights.dll": { - "assemblyVersion": "2.9.1.0", - "fileVersion": "2.9.1.26108" - } - } - }, - "Microsoft.Applications.Events.Server/1.1.2.97": { - "dependencies": { - "Microsoft.Data.Sqlite": "1.1.1", - "Microsoft.Extensions.Logging": "1.1.2", - "NETStandard.Library": "1.6.1", - "Newtonsoft.Json": "13.0.3", - "System.Xml.XPath": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/Microsoft.Applications.Events.Server.dll": { - "assemblyVersion": "1.1.2.97", - "fileVersion": "1.1.2.97" - } - } - }, - "Microsoft.Azure.KeyVault.AzureServiceDeploy/3.0.0": { - "dependencies": { - "Microsoft.Azure.KeyVault.Jose": "3.0.0", - "Microsoft.Rest.ClientRuntime": "2.3.21", - "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", - "NETStandard.Library": "1.6.1", - "Newtonsoft.Json": "13.0.3", - "System.Net.Http": "4.3.4" - }, - "runtime": { - "lib/netstandard1.4/Microsoft.Azure.KeyVault.AzureServiceDeploy.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.0.0.0" - } - } - }, - "Microsoft.Azure.KeyVault.Core/3.0.0": { - "dependencies": { - "NETStandard.Library": "1.6.1" - }, - "runtime": { - "lib/netstandard1.4/Microsoft.Azure.KeyVault.Core.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.0.0.1" - } - } - }, - "Microsoft.Azure.KeyVault.Cryptography/3.0.0": { - "dependencies": { - "Microsoft.Azure.KeyVault.Core": "3.0.0", - "Microsoft.Rest.ClientRuntime": "2.3.21", - "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", - "NETStandard.Library": "1.6.1", - "Newtonsoft.Json": "13.0.3", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Net.Http": "4.3.4", - "System.Runtime.Extensions": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.5.0", - "System.Security.Cryptography.Primitives": "4.3.0" - }, - "runtime": { - "lib/netstandard1.4/Microsoft.Azure.KeyVault.Cryptography.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.0.0.1" - } - } - }, - "Microsoft.Azure.KeyVault.Jose/3.0.0": { - "dependencies": { - "Microsoft.Azure.KeyVault.Core": "3.0.0", - "Microsoft.Azure.KeyVault.Cryptography": "3.0.0", - "Microsoft.Rest.ClientRuntime": "2.3.21", - "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", - "NETStandard.Library": "1.6.1", - "Newtonsoft.Json": "13.0.3", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Net.Http": "4.3.4", - "System.Runtime.Extensions": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.5.0", - "System.Security.Cryptography.Primitives": "4.3.0" - }, - "runtime": { - "lib/netstandard1.4/Microsoft.Azure.KeyVault.Jose.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.0.0.0" - } - } - }, - "Microsoft.CSharp/4.5.0": {}, - "Microsoft.Data.Sqlite/1.1.1": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "SQLite": "3.13.0", - "System.Data.Common": "4.3.0" - }, - "runtime": { - "lib/netstandard1.3/Microsoft.Data.Sqlite.dll": { - "assemblyVersion": "1.1.1.0", - "fileVersion": "1.1.1.30427" - } - } - }, - "Microsoft.Extensions.Configuration/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.23.53103" - } - } - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.23.53103" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "System.ComponentModel": "4.3.0" - }, - "runtime": { - "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "1.1.1.0", - "fileVersion": "1.1.1.30427" - } - } - }, - "Microsoft.Extensions.Logging/1.1.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.1", - "Microsoft.Extensions.Logging.Abstractions": "1.1.2", - "NETStandard.Library": "1.6.1" - }, - "runtime": { - "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "1.1.2.0", - "fileVersion": "1.1.2.30427" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/1.1.2": { - "dependencies": { - "NETStandard.Library": "1.6.1" - }, - "runtime": { - "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "1.1.2.0", - "fileVersion": "1.1.2.30427" - } - } - }, - "Microsoft.Extensions.Primitives/8.0.0": { - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.23.53103" - } - } - }, - "Microsoft.Ic3.TenantAdminApi.Common.Helper/1.0.28": { - "dependencies": { - "Microsoft.Azure.KeyVault.AzureServiceDeploy": "3.0.0", - "Microsoft.Extensions.Configuration": "8.0.0", - "Polly": "7.2.4" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Ic3.TenantAdminApi.Common.Helper.dll": { - "assemblyVersion": "1.0.28.0", - "fileVersion": "1.0.28.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.70.1.0", - "fileVersion": "4.70.1.0" - } - } - }, - "Microsoft.Identity.Client.Broker/4.70.1": { - "dependencies": { - "Microsoft.Identity.Client": "4.70.1", - "Microsoft.Identity.Client.NativeInterop": "0.18.1" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Identity.Client.Broker.dll": { - "assemblyVersion": "4.70.1.0", - "fileVersion": "4.70.1.0" - } - } - }, - "Microsoft.Identity.Client.Desktop/4.70.1": { - "dependencies": { - "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.70.1.0", - "fileVersion": "4.70.1.0" - } - } - }, - "Microsoft.Identity.Client.Extensions.Msal/4.70.1": { - "dependencies": { - "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.70.1.0", - "fileVersion": "4.70.1.0" - } - } - }, - "Microsoft.Identity.Client.NativeInterop/0.18.1": { - "runtime": { - "lib/netstandard2.0/Microsoft.Identity.Client.NativeInterop.dll": { - "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", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-x64/native/msalruntime.dll": { - "rid": "win-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-x86/native/msalruntime_x86.dll": { - "rid": "win-x86", - "assetType": "native", - "fileVersion": "0.0.0.0" - } - } - }, - "Microsoft.IdentityModel.Abstractions/6.35.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll": { - "assemblyVersion": "6.35.0.0", - "fileVersion": "6.35.0.41201" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { - "dependencies": { - "Microsoft.IdentityModel.Tokens": "6.8.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.IdentityModel.Logging/6.8.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.IdentityModel.Tokens/6.8.0": { - "dependencies": { - "Microsoft.CSharp": "4.5.0", - "Microsoft.IdentityModel.Logging": "6.8.0", - "System.Security.Cryptography.Cng": "4.5.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - } - } - }, - "Microsoft.Management.Infrastructure/1.0.0": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "System.Runtime.CompilerServices.VisualC": "4.3.0", - "System.Runtime.Serialization.Xml": "4.3.0", - "System.Security.SecureString": "4.3.0", - "System.Threading.ThreadPool": "4.3.0" - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "unix", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.0.0.0" - }, - "runtimes/unix/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "unix", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-arm/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win-arm", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win-arm", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win-arm64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win-arm64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win10-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win10-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win10-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win10-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win10-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win10-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win10-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win10-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win7-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win7-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win7-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win7-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win7-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win7-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win7-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win7-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win8-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win8-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win8-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win8-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win8-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win8-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win8-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win8-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win81-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win81-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win81-x64/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win81-x64", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win81-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.Native.dll": { - "rid": "win81-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win81-x86/lib/netstandard1.6/Microsoft.Management.Infrastructure.dll": { - "rid": "win81-x86", - "assetType": "runtime", - "assemblyVersion": "1.0.0.0", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm/native/mi.dll": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm/native/miutils.dll": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm64/native/mi.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win-arm64/native/miutils.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "10.0.16299.15" - }, - "runtimes/win10-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win10-x64", - "assetType": "native", - "fileVersion": "10.0.14886.1000" - }, - "runtimes/win10-x64/native/mi.dll": { - "rid": "win10-x64", - "assetType": "native", - "fileVersion": "10.0.14886.1000" - }, - "runtimes/win10-x64/native/miutils.dll": { - "rid": "win10-x64", - "assetType": "native", - "fileVersion": "10.0.14886.1000" - }, - "runtimes/win10-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win10-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win10-x86/native/mi.dll": { - "rid": "win10-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win10-x86/native/miutils.dll": { - "rid": "win10-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win7-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x64/native/mi.dll": { - "rid": "win7-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x64/native/miutils.dll": { - "rid": "win7-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win7-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x86/native/mi.dll": { - "rid": "win7-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win7-x86/native/miutils.dll": { - "rid": "win7-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win8-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x64/native/mi.dll": { - "rid": "win8-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x64/native/miutils.dll": { - "rid": "win8-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win8-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x86/native/mi.dll": { - "rid": "win8-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win8-x86/native/miutils.dll": { - "rid": "win8-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x64/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win81-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x64/native/mi.dll": { - "rid": "win81-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x64/native/miutils.dll": { - "rid": "win81-x64", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x86/native/Microsoft.Management.Infrastructure.Native.Unmanaged.dll": { - "rid": "win81-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x86/native/mi.dll": { - "rid": "win81-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - }, - "runtimes/win81-x86/native/miutils.dll": { - "rid": "win81-x86", - "assetType": "native", - "fileVersion": "10.0.14394.1000" - } - } - }, - "Microsoft.NETCore.Platforms/5.0.0": {}, - "Microsoft.NETCore.Targets/3.1.0": {}, - "Microsoft.PowerShell.CoreCLR.Eventing/6.2.7": { - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - }, - "runtimeTargets": { - "runtimes/linux-arm/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "linux-arm", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/linux-x64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "linux-x64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "osx", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-arm/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "win-arm", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-arm64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "win-arm64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-x64/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "win-x64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-x86/lib/netcoreapp2.1/Microsoft.PowerShell.CoreCLR.Eventing.dll": { - "rid": "win-x86", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - } - } - }, - "Microsoft.PowerShell.Native/6.2.0": { - "runtimeTargets": { - "runtimes/linux-arm/native/libpsl-native.so": { - "rid": "linux-arm", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/linux-arm64/native/libpsl-native.so": { - "rid": "linux-arm64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/linux-musl-x64/native/libpsl-native.so": { - "rid": "linux-musl-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/linux-x64/native/libmi.so": { - "rid": "linux-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/linux-x64/native/libpsl-native.so": { - "rid": "linux-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/linux-x64/native/libpsrpclient.so": { - "rid": "linux-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx/native/libmi.dylib": { - "rid": "osx", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx/native/libpsl-native.dylib": { - "rid": "osx", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx/native/libpsrpclient.dylib": { - "rid": "osx", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-arm/native/PowerShell.Core.Instrumentation.dll": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-arm/native/pwrshplugin.dll": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-arm/native/pwrshplugin.pdb": { - "rid": "win-arm", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-arm64/native/PowerShell.Core.Instrumentation.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-arm64/native/pwrshplugin.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-arm64/native/pwrshplugin.pdb": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-x64/native/PowerShell.Core.Instrumentation.dll": { - "rid": "win-x64", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-x64/native/pwrshplugin.dll": { - "rid": "win-x64", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-x64/native/pwrshplugin.pdb": { - "rid": "win-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-x86/native/PowerShell.Core.Instrumentation.dll": { - "rid": "win-x86", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-x86/native/pwrshplugin.dll": { - "rid": "win-x86", - "assetType": "native", - "fileVersion": "10.0.10011.16384" - }, - "runtimes/win-x86/native/pwrshplugin.pdb": { - "rid": "win-x86", - "assetType": "native", - "fileVersion": "0.0.0.0" - } - } - }, - "Microsoft.Rest.ClientRuntime/2.3.21": { - "dependencies": { - "Newtonsoft.Json": "13.0.3" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.3.21.0" - } - } - }, - "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { - "dependencies": { - "Microsoft.Rest.ClientRuntime": "2.3.21", - "Newtonsoft.Json": "13.0.3" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.3.18.0" - } - } - }, - "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.2.4.0", - "fileVersion": "3.2.4.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": "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", - "fileVersion": "1.0.75.0" - }, - "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.Providers.dll": { - "assemblyVersion": "1.0.75.0", - "fileVersion": "1.0.75.0" - }, - "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.dll": { - "assemblyVersion": "21.4.4.0", - "fileVersion": "21.4.4.0" - }, - "lib/netcoreapp3.1/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.3.27908" - }, - "lib/netcoreapp3.1/System.Management.Automation.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "5.1.1.0" - }, - "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Teams.Policy.Administration.Cmdlets.OCE/0.1.12": { - "dependencies": { - "Microsoft.Extensions.Configuration": "8.0.0", - "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" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.Teams.Policy.Administration.Cmdlets.OCE.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.0.0.0" - } - } - }, - "Microsoft.Teams.Policy.Administration.Configurations/12.2.29": { - "dependencies": { - "Microsoft.Extensions.Configuration": "8.0.0" - } - }, - "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.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.2.4", - "Newtonsoft.Json": "13.0.3", - "OneCollectorChannel": "1.1.0.234", - "System.IdentityModel.Tokens.Jwt": "6.8.0", - "System.Management.Automation": "6.2.7", - "System.Net.Http": "4.3.4", - "System.Security.Cryptography.ProtectedData": "7.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll": { - "assemblyVersion": "1.7.4.0", - "fileVersion": "1.7.4.0" - }, - "lib/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll": { - "assemblyVersion": "1.0.864.35", - "fileVersion": "1.0.864.35" - }, - "lib/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll": { - "assemblyVersion": "1.0.864.35", - "fileVersion": "1.0.864.35" - }, - "lib/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll": { - "assemblyVersion": "1.0.864.35", - "fileVersion": "1.0.864.35" - }, - "lib/netcoreapp3.1/OneCollectorChannel.dll": { - "assemblyVersion": "1.1.0.234", - "fileVersion": "1.1.0.234" - }, - "lib/netcoreapp3.1/Polly.dll": { - "assemblyVersion": "7.0.0.0", - "fileVersion": "7.2.4.982" - }, - "lib/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.1523.11507" - }, - "lib/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - }, - "lib/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll": { - "assemblyVersion": "6.8.0.0", - "fileVersion": "6.8.0.11012" - }, - "lib/netcoreapp3.1/System.Management.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.6.26515.6" - }, - "lib/netcoreapp3.1/System.Security.AccessControl.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - }, - "lib/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll": { - "assemblyVersion": "7.0.0.0", - "fileVersion": "7.0.22.51805" - }, - "lib/netcoreapp3.1/System.Security.Principal.Windows.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Teams.PowerShell.TeamsCmdlets/1.5.6": { - "dependencies": { - "Microsoft.Teams.PowerShell.Connect": "1.7.4", - "Newtonsoft.Json": "13.0.3", - "Polly": "7.2.4", - "Polly.Contrib.WaitAndRetry": "1.1.1", - "System.Management.Automation": "6.2.7", - "System.Net.Http": "4.3.4" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll": { - "assemblyVersion": "1.5.6.0", - "fileVersion": "1.5.6.0" - }, - "lib/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.1.1.0" - } - } - }, - "Microsoft.Web.WebView2/1.0.864.35": { - "runtimeTargets": { - "runtimes/win-arm64/native/WebView2Loader.dll": { - "rid": "win-arm64", - "assetType": "native", - "fileVersion": "1.0.864.35" - }, - "runtimes/win-x64/native/WebView2Loader.dll": { - "rid": "win-x64", - "assetType": "native", - "fileVersion": "1.0.864.35" - }, - "runtimes/win-x86/native/WebView2Loader.dll": { - "rid": "win-x86", - "assetType": "native", - "fileVersion": "1.0.864.35" - } - } - }, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "Microsoft.Win32.Registry/4.5.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.Registry.AccessControl/4.5.0": { - "dependencies": { - "Microsoft.Win32.Registry": "4.5.0", - "System.Security.AccessControl": "5.0.0" - } - }, - "NETStandard.Library/1.6.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.AppContext": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Console": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.Compression.ZipFile": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.4", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.1", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - } - }, - "Newtonsoft.Json/13.0.3": {}, - "NuGet.Build.Tasks.Pack/5.2.0": {}, - "NuGet.CommandLine/5.11.6": {}, - "OneCollectorChannel/1.1.0.234": { - "dependencies": { - "Microsoft.ApplicationInsights": "2.9.1", - "Microsoft.Applications.Events.Server": "1.1.2.97" - } - }, - "Polly/7.2.4": {}, - "Polly.Contrib.WaitAndRetry/1.1.1": {}, - "PowerShellStandard.Library/5.1.0": {}, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0" - } - }, - "runtime.native.System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, - "SQLite/3.13.0": { - "runtimeTargets": { - "runtimes/linux-x64/native/libsqlite3.so": { - "rid": "linux-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx-x64/native/libsqlite3.dylib": { - "rid": "osx-x64", - "assetType": "native", - "fileVersion": "0.0.0.0" - }, - "runtimes/win7-x64/native/sqlite3.dll": { - "rid": "win7-x64", - "assetType": "native", - "fileVersion": "3.13.0.0" - }, - "runtimes/win7-x86/native/sqlite3.dll": { - "rid": "win7-x86", - "assetType": "native", - "fileVersion": "3.13.0.0" - } - } - }, - "System.AppContext/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Buffers/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading": "4.3.0" - } - }, - "System.CodeDom/4.5.0": {}, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Collections.Immutable/1.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.ComponentModel/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Configuration.ConfigurationManager/4.5.0": { - "dependencies": { - "System.Security.Cryptography.ProtectedData": "7.0.0", - "System.Security.Permissions": "4.5.0" - } - }, - "System.Console/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.IO": "4.3.0", - "System.Runtime": "4.3.1", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Data.Common/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.1", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Diagnostics.DiagnosticSource/6.0.1": { - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Diagnostics.StackTrace/4.3.0": { - "dependencies": { - "System.IO.FileSystem": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Metadata": "1.4.1", - "System.Runtime": "4.3.1" - } - }, - "System.Diagnostics.Tools/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.DirectoryServices/4.5.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IdentityModel.Tokens.Jwt/6.8.0": { - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "6.8.0", - "Microsoft.IdentityModel.Tokens": "6.8.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Buffers": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.IO.Compression": "4.3.0" - } - }, - "System.IO.Compression.ZipFile/4.3.0": { - "dependencies": { - "System.Buffers": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.AccessControl/5.0.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - }, - "runtimeTargets": { - "runtimes/win/lib/netstandard2.0/System.IO.FileSystem.AccessControl.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Management/4.5.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "4.5.0", - "System.CodeDom": "4.5.0" - }, - "runtimeTargets": { - "runtimes/win/lib/netcoreapp2.0/System.Management.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.6.26515.6" - } - } - }, - "System.Management.Automation/6.2.7": { - "dependencies": { - "Microsoft.Management.Infrastructure": "1.0.0", - "Microsoft.PowerShell.CoreCLR.Eventing": "6.2.7", - "Microsoft.PowerShell.Native": "6.2.0", - "Microsoft.Win32.Registry.AccessControl": "4.5.0", - "Newtonsoft.Json": "13.0.3", - "System.Configuration.ConfigurationManager": "4.5.0", - "System.DirectoryServices": "4.5.0", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Management": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "5.0.0", - "System.Security.Cryptography.Pkcs": "4.5.2", - "System.Security.Permissions": "4.5.0", - "System.Text.Encoding.CodePages": "4.5.1" - }, - "runtimeTargets": { - "runtimes/linux-arm/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "linux-arm", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/linux-x64/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "linux-x64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "0.0.0.0" - }, - "runtimes/osx/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "osx", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "0.0.0.0" - }, - "runtimes/win-arm/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "win-arm", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-arm64/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "win-arm64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-x64/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "win-x64", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - }, - "runtimes/win-x86/lib/netcoreapp2.1/System.Management.Automation.dll": { - "rid": "win-x86", - "assetType": "runtime", - "assemblyVersion": "6.2.7.0", - "fileVersion": "6.2.7.0" - } - } - }, - "System.Memory/4.5.5": {}, - "System.Net.Http/4.3.4": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "6.0.1", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Requests/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Net.Http": "4.3.4", - "System.Net.Primitives": "4.3.0", - "System.Net.WebHeaderCollection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebHeaderCollection/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading": "4.3.0" - } - }, - "System.Private.DataContractSerialization/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Serialization.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.1", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0", - "System.Xml.XmlDocument": "4.3.0", - "System.Xml.XmlSerializer": "4.3.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.Metadata/1.4.1": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Collections.Immutable": "1.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Runtime/4.3.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, - "System.Runtime.CompilerServices.VisualC/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1" - } - }, - "System.Runtime.Serialization.Xml/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Private.DataContractSerialization": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Serialization.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Security.AccessControl/5.0.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - }, - "runtimeTargets": { - "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Security.Cryptography.Cng/4.5.0": {}, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Security.Cryptography.Pkcs/4.5.2": { - "dependencies": { - "System.Security.Cryptography.Cng": "4.5.0" - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.ProtectedData/7.0.0": {}, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.5.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Security.Permissions/4.5.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0" - } - }, - "System.Security.Principal.Windows/5.0.0": { - "runtimeTargets": { - "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { - "rid": "unix", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - }, - "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Security.SecureString/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Text.Encoding.CodePages/4.5.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.RegularExpressions/4.3.1": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.1", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Thread/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Threading.ThreadPool/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.1", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Threading.Timer/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "3.1.0", - "System.Runtime": "4.3.1" - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.1", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "System.Xml.XDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XmlDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XmlSerializer/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.1", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - } - }, - "System.Xml.XPath/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.1", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - } - } - }, - "libraries": { - "Microsoft.Teams.PowerShell.Module/7.4.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.ApplicationInsights/2.9.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gAC+bFCr10ckAdM6VJ+aL0yfYfbYuklukYJoMjaSCOVHH/h4Xr9SiyPq+Befk/yUSdSv7Fa3nl0ynLATKIwKng==", - "path": "microsoft.applicationinsights/2.9.1", - "hashPath": "microsoft.applicationinsights.2.9.1.nupkg.sha512" - }, - "Microsoft.Applications.Events.Server/1.1.2.97": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1PtLBJEGynJ2DZ5peVSdrZ4YzRUI0ZIIgYbqkI358Il2V5QR5KIZBxyuQ6X5JGyuOShRjWnPuucOqiVBbA/JNw==", - "path": "microsoft.applications.events.server/1.1.2.97", - "hashPath": "microsoft.applications.events.server.1.1.2.97.nupkg.sha512" - }, - "Microsoft.Azure.KeyVault.AzureServiceDeploy/3.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vxOHQm1jNDzTh3zZmzfCYx4y9efEHXAh0+IMymrNSY1dDZGietrpVYUkq9JM9ERfPpHCx2lavFuUxY70idtjmw==", - "path": "microsoft.azure.keyvault.azureservicedeploy/3.0.0", - "hashPath": "microsoft.azure.keyvault.azureservicedeploy.3.0.0.nupkg.sha512" - }, - "Microsoft.Azure.KeyVault.Core/3.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2B7k5t61MWKs5rLaPqgGL+1OSegeqL7kSKXQ5bAHgeHxg5bwgnMSuRrPcx3fq8KqS8kny39/CCyJegI1VTomIQ==", - "path": "microsoft.azure.keyvault.core/3.0.0", - "hashPath": "microsoft.azure.keyvault.core.3.0.0.nupkg.sha512" - }, - "Microsoft.Azure.KeyVault.Cryptography/3.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SJLhUSQnPW76R6ikMlwGyL1T8HyHLQWRzV8kodM0O01xJU2CEPvxbsTS7xg7mXZXSEhcROrxHzQRLr7YosiJVA==", - "path": "microsoft.azure.keyvault.cryptography/3.0.0", - "hashPath": "microsoft.azure.keyvault.cryptography.3.0.0.nupkg.sha512" - }, - "Microsoft.Azure.KeyVault.Jose/3.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VUjDq7RcWi+rhuLzFWrxXCXk3h1WbFZG73wWx/AjcqdaIZUJCKPsOXkGGGuBVT7/9ur8aID6naiC1t/RGxzVGA==", - "path": "microsoft.azure.keyvault.jose/3.0.0", - "hashPath": "microsoft.azure.keyvault.jose.3.0.0.nupkg.sha512" - }, - "Microsoft.CSharp/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", - "path": "microsoft.csharp/4.5.0", - "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" - }, - "Microsoft.Data.Sqlite/1.1.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EA/L0kQtkPm037kHyLtt/9dsB4ephlgmXgaQbW2qcb2jcW8R5RbfT9zh1j9amZIqFP3OwpnZ7kt7xTwC8z7M1A==", - "path": "microsoft.data.sqlite/1.1.1", - "hashPath": "microsoft.data.sqlite.1.1.1.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", - "path": "microsoft.extensions.configuration/8.0.0", - "hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", - "path": "microsoft.extensions.configuration.abstractions/8.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-sKsx2jEkabcI954cB6MoU2LUxv8YTByV8+ifqbFtIF8gFqPb4/CfPxwvxrYW+aXc4V44KKHOyeTDgyc4B7fjYg==", - "path": "microsoft.extensions.dependencyinjection.abstractions/1.1.1", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.1.1.1.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/1.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LydGeNbeOBTLt3qYz8L3wpRl4TIE6sLBTROiWlU5uckJOaTBCtOTonTbUWrdYEvjOEDFlKySsKUI7HmS7sjrrA==", - "path": "microsoft.extensions.logging/1.1.2", - "hashPath": "microsoft.extensions.logging.1.1.2.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/1.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hbMEC7HYh2JJK0sSrMXFdOc0tjjRq8kDiSGzXh07AVbMnReLqWa6hA0QJx7umneMK7/9L3sKJnkB+RLGTagkOg==", - "path": "microsoft.extensions.logging.abstractions/1.1.2", - "hashPath": "microsoft.extensions.logging.abstractions.1.1.2.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "path": "microsoft.extensions.primitives/8.0.0", - "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512" - }, - "Microsoft.Ic3.TenantAdminApi.Common.Helper/1.0.28": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SFH/dfpb728GUh/U0vOvycwLhqyFLAJhrv7CfS8Gb7xAlDnEFGC2K3edL3tYvKdp3pjTxPlLYwE7LpQBgyYZPA==", - "path": "microsoft.ic3.tenantadminapi.common.helper/1.0.28", - "hashPath": "microsoft.ic3.tenantadminapi.common.helper.1.0.28.nupkg.sha512" - }, - "Microsoft.Identity.Client/4.70.1": { - "type": "package", - "serviceable": true, - "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.70.1": { - "type": "package", - "serviceable": true, - "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.70.1": { - "type": "package", - "serviceable": true, - "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.70.1": { - "type": "package", - "serviceable": true, - "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.18.1": { - "type": "package", - "serviceable": true, - "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", - "serviceable": true, - "sha512": "sha512-xuR8E4Rd96M41CnUSCiOJ2DBh+z+zQSmyrYHdYhD6K4fXBcQGVnRCFQ0efROUYpP+p0zC1BLKr0JRpVuujTZSg==", - "path": "microsoft.identitymodel.abstractions/6.35.0", - "hashPath": "microsoft.identitymodel.abstractions.6.35.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.JsonWebTokens/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+7JIww64PkMt7NWFxoe4Y/joeF7TAtA/fQ0b2GFGcagzB59sKkTt/sMZWR6aSZht5YC7SdHi3W6yM1yylRGJCQ==", - "path": "microsoft.identitymodel.jsonwebtokens/6.8.0", - "hashPath": "microsoft.identitymodel.jsonwebtokens.6.8.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Logging/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Rfh/p4MaN4gkmhPxwbu8IjrmoDncGfHHPh1sTnc0AcM/Oc39/fzC9doKNWvUAjzFb8LqA6lgZyblTrIsX/wDXg==", - "path": "microsoft.identitymodel.logging/6.8.0", - "hashPath": "microsoft.identitymodel.logging.6.8.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Tokens/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gTqzsGcmD13HgtNePPcuVHZ/NXWmyV+InJgalW/FhWpII1D7V1k0obIseGlWMeA4G+tZfeGMfXr0klnWbMR/mQ==", - "path": "microsoft.identitymodel.tokens/6.8.0", - "hashPath": "microsoft.identitymodel.tokens.6.8.0.nupkg.sha512" - }, - "Microsoft.Management.Infrastructure/1.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EhQ4sbjNu4rL39YVhRSKMzCaMNBSwSJi17t8LtAOW94WQTkhQCEhlMukFU2AtWOBW3zGIrvg85XRS+w0nuGxKw==", - "path": "microsoft.management.infrastructure/1.0.0", - "hashPath": "microsoft.management.infrastructure.1.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", - "path": "microsoft.netcore.platforms/5.0.0", - "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/3.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IAFeJxHy2vlTm3mhiZVP/jKE5DImLUMQc3OV8z5G4ZBeYNAlPSwjC5V/Vx14GIJU6Osmhr+XPmtWW0cv5jSmTw==", - "path": "microsoft.netcore.targets/3.1.0", - "hashPath": "microsoft.netcore.targets.3.1.0.nupkg.sha512" - }, - "Microsoft.PowerShell.CoreCLR.Eventing/6.2.7": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IV4UFD/ry5o7FcUjnCrgOoZtJ0XsfY7+nQR0VP3b5Zdpj3WDZRkxi3A5RQUKrCFxLK1zbNlC2nu1qufe3pEuCQ==", - "path": "microsoft.powershell.coreclr.eventing/6.2.7", - "hashPath": "microsoft.powershell.coreclr.eventing.6.2.7.nupkg.sha512" - }, - "Microsoft.PowerShell.Native/6.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5YPhSaW4j6R7oJ53RxOroB51k7zKBpi4owEKAY9rI8Cb+cGIIGN/37DoDOZfbKL4DNW0MeAchgNsAEML049y7Q==", - "path": "microsoft.powershell.native/6.2.0", - "hashPath": "microsoft.powershell.native.6.2.0.nupkg.sha512" - }, - "Microsoft.Rest.ClientRuntime/2.3.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KDYlgTyO693V6pi6SGk9eg+dDvKjuOgmkapbHdpnB1SmTPKpvWxVLIMyARJsCFLfB6axyURUJHOfvxBQ0yJKeg==", - "path": "microsoft.rest.clientruntime/2.3.21", - "hashPath": "microsoft.rest.clientruntime.2.3.21.nupkg.sha512" - }, - "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", - "path": "microsoft.rest.clientruntime.azure/3.3.19", - "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" - }, - "Microsoft.Teams.ConfigAPI.CmdletHostContract/3.2.4": { - "type": "package", - "serviceable": true, - "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.925.3": { - "type": "package", - "serviceable": true, - "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/21.4.4": { - "type": "package", - "serviceable": true, - "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", - "serviceable": true, - "sha512": "sha512-RmQ5711nUQnVtAC8cAA5vH5jw6S49sDR3G7NWsYL/jGndOdvWBfRMILTC7zwwMW/rFOgEYGNjaPOE0B+uJujLA==", - "path": "microsoft.teams.policy.administration.cmdlets.oce/0.1.12", - "hashPath": "microsoft.teams.policy.administration.cmdlets.oce.0.1.12.nupkg.sha512" - }, - "Microsoft.Teams.Policy.Administration.Configurations/12.2.29": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M+KIgynbG1IpuH2yjBIqX2HgPLR/eGW4qoNVW/JgF8A0Y7hbMe/kh8bIFPMEPahVRFeoOhHLaj61sKPxcCRYIw==", - "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.7.4": { - "type": "package", - "serviceable": true, - "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.5.6": { - "type": "package", - "serviceable": true, - "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", - "serviceable": true, - "sha512": "sha512-V1qyLRiAZ31qmOOCFCjoONgaUfvJRiTHWcJWkT3V7pluM2+P6QAgqmbE4UX7Gt4sh6eN34wqM30OnTZ6HXI/sw==", - "path": "microsoft.web.webview2/1.0.864.35", - "hashPath": "microsoft.web.webview2.1.0.864.35.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "Microsoft.Win32.Registry/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", - "path": "microsoft.win32.registry/4.5.0", - "hashPath": "microsoft.win32.registry.4.5.0.nupkg.sha512" - }, - "Microsoft.Win32.Registry.AccessControl/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f2aT8NLc9DsB1VEaM4jlYF9DFLA12+ccmWzWA0HEVC3Vgac7tGLSgrU6jtUG+VO1/R5zA6AomQ2pKqJ+5SDWyQ==", - "path": "microsoft.win32.registry.accesscontrol/4.5.0", - "hashPath": "microsoft.win32.registry.accesscontrol.4.5.0.nupkg.sha512" - }, - "NETStandard.Library/1.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", - "path": "netstandard.library/1.6.1", - "hashPath": "netstandard.library.1.6.1.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", - "path": "newtonsoft.json/13.0.3", - "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" - }, - "NuGet.Build.Tasks.Pack/5.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jRE2Ya2cFTEu9XZ6rQtYjKE1a8q2KjCs0b8bd3cGlZ1cdgfZ6EgR2X0LZ/pCbN2WVcCRI7ISEIcqJ5Ji+Z1HMQ==", - "path": "nuget.build.tasks.pack/5.2.0", - "hashPath": "nuget.build.tasks.pack.5.2.0.nupkg.sha512" - }, - "NuGet.CommandLine/5.11.6": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mNGA6kjtSqfKayS9WI9GZWYXvUI1d+34sNXoakImEt8wtXrRn9FNjWLGP4Q8Ik6R94FkVo18vQUtyD8fOWOZUQ==", - "path": "nuget.commandline/5.11.6", - "hashPath": "nuget.commandline.5.11.6.nupkg.sha512" - }, - "OneCollectorChannel/1.1.0.234": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0PoHLy0O9VbBmXe/TPRXkIH1Qmv6kKs/X5ANLP0MHML/TcQAWHKAxhHdilVrKJEnGDyCgH2QKlcEykpHngxCnA==", - "path": "onecollectorchannel/1.1.0.234", - "hashPath": "onecollectorchannel.1.1.0.234.nupkg.sha512" - }, - "Polly/7.2.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==", - "path": "polly/7.2.4", - "hashPath": "polly.7.2.4.nupkg.sha512" - }, - "Polly.Contrib.WaitAndRetry/1.1.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1MUQLiSo4KDkQe6nzQRhIU05lm9jlexX5BVsbuw0SL82ynZ+GzAHQxJVDPVBboxV37Po3SG077aX8DuSy8TkaA==", - "path": "polly.contrib.waitandretry/1.1.1", - "hashPath": "polly.contrib.waitandretry.1.1.1.nupkg.sha512" - }, - "PowerShellStandard.Library/5.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", - "path": "powershellstandard.library/5.1.0", - "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", - "path": "runtime.native.system.io.compression/4.3.0", - "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" - }, - "SQLite/3.13.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MJfRiz2p6aMVOxrxGMdVzhpzI0oxTgZSwC8eVuOpV8L7yYaFUu8q/OFYwv9P0/aZ/pdEu24O6gma6wZJMTun9A==", - "path": "sqlite/3.13.0", - "hashPath": "sqlite.3.13.0.nupkg.sha512" - }, - "System.AppContext/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", - "path": "system.appcontext/4.3.0", - "hashPath": "system.appcontext.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", - "path": "system.buffers/4.3.0", - "hashPath": "system.buffers.4.3.0.nupkg.sha512" - }, - "System.CodeDom/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw==", - "path": "system.codedom/4.5.0", - "hashPath": "system.codedom.4.5.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Collections.Immutable/1.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zukBRPUuNxwy9m4TGWLxKAnoiMc9+B+8VXeXVyPiBPvOd7yLgAlZ1DlsRWJjMx4VsvhhF2+6q6kO2GRbPja6hA==", - "path": "system.collections.immutable/1.3.0", - "hashPath": "system.collections.immutable.1.3.0.nupkg.sha512" - }, - "System.ComponentModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", - "path": "system.componentmodel/4.3.0", - "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" - }, - "System.Configuration.ConfigurationManager/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", - "path": "system.configuration.configurationmanager/4.5.0", - "hashPath": "system.configuration.configurationmanager.4.5.0.nupkg.sha512" - }, - "System.Console/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", - "path": "system.console/4.3.0", - "hashPath": "system.console.4.3.0.nupkg.sha512" - }, - "System.Data.Common/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==", - "path": "system.data.common/4.3.0", - "hashPath": "system.data.common.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/6.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", - "path": "system.diagnostics.diagnosticsource/6.0.1", - "hashPath": "system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512" - }, - "System.Diagnostics.StackTrace/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", - "path": "system.diagnostics.stacktrace/4.3.0", - "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tools/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", - "path": "system.diagnostics.tools/4.3.0", - "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.DirectoryServices/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6Uty9sMaeBG0/GIRTW4+DUTvuB/od5E6rY45JbEz1c2xMoPSA9GLov4KdiBEpjsEcsgORa6sC3vfh70tEJJaOw==", - "path": "system.directoryservices/4.5.0", - "hashPath": "system.directoryservices.4.5.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IdentityModel.Tokens.Jwt/6.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5tBCjAub2Bhd5qmcd0WhR5s354e4oLYa//kOWrkX+6/7ZbDDJjMTfwLSOiZ/MMpWdE4DWPLOfTLOq/juj9CKzA==", - "path": "system.identitymodel.tokens.jwt/6.8.0", - "hashPath": "system.identitymodel.tokens.jwt.6.8.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", - "path": "system.io.compression/4.3.0", - "hashPath": "system.io.compression.4.3.0.nupkg.sha512" - }, - "System.IO.Compression.ZipFile/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", - "path": "system.io.compression.zipfile/4.3.0", - "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.AccessControl/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", - "path": "system.io.filesystem.accesscontrol/5.0.0", - "hashPath": "system.io.filesystem.accesscontrol.5.0.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Management/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==", - "path": "system.management/4.5.0", - "hashPath": "system.management.4.5.0.nupkg.sha512" - }, - "System.Management.Automation/6.2.7": { - "type": "package", - "serviceable": true, - "sha512": "sha512-m2z9+qOpxcZrx+yMFbIQZnJ/OMLhEL2Z0IEGi5HHm7ODLnPwkWOfS/fZ25IHRY50HAX4cSygiall+tjJSiXILA==", - "path": "system.management.automation/6.2.7", - "hashPath": "system.management.automation.6.2.7.nupkg.sha512" - }, - "System.Memory/4.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "path": "system.memory/4.5.5", - "hashPath": "system.memory.4.5.5.nupkg.sha512" - }, - "System.Net.Http/4.3.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "path": "system.net.http/4.3.4", - "hashPath": "system.net.http.4.3.4.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Requests/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OZNUuAs0kDXUzm7U5NZ1ojVta5YFZmgT2yxBqsQ7Eseq5Ahz88LInGRuNLJ/NP2F8W1q7tse1pKDthj3reF5QA==", - "path": "system.net.requests/4.3.0", - "hashPath": "system.net.requests.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.Net.WebHeaderCollection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XZrXYG3c7QV/GpWeoaRC02rM6LH2JJetfVYskf35wdC/w2fFDFMphec4gmVH2dkll6abtW14u9Rt96pxd9YH2A==", - "path": "system.net.webheadercollection/4.3.0", - "hashPath": "system.net.webheadercollection.4.3.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Private.DataContractSerialization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", - "path": "system.private.datacontractserialization/4.3.0", - "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Metadata/1.4.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==", - "path": "system.reflection.metadata/1.4.1", - "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", - "path": "system.runtime/4.3.1", - "hashPath": "system.runtime.4.3.1.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", - "path": "system.runtime.compilerservices.unsafe/6.0.0", - "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.VisualC/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/dcn1oXqK/p/VnTYWNSf4OXlFIfzCRE/kqWz4+/r5B2S4zlKifB1FqklEEYs5zmE1JE3syvrJ5U4syOwsDQZbA==", - "path": "system.runtime.compilerservices.visualc/4.3.0", - "hashPath": "system.runtime.compilerservices.visualc.4.3.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "path": "system.runtime.interopservices.runtimeinformation/4.3.0", - "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", - "path": "system.runtime.serialization.primitives/4.3.0", - "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" - }, - "System.Runtime.Serialization.Xml/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nUQx/5OVgrqEba3+j7OdiofvVq9koWZAC7Z3xGI8IIViZqApWnZ5+lLcwYgTlbkobrl/Rat+Jb8GeD4WQESD2A==", - "path": "system.runtime.serialization.xml/4.3.0", - "hashPath": "system.runtime.serialization.xml.4.3.0.nupkg.sha512" - }, - "System.Security.AccessControl/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "path": "system.security.accesscontrol/5.0.0", - "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==", - "path": "system.security.cryptography.cng/4.5.0", - "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Pkcs/4.5.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lIo52x0AAsZs8r1L58lPXaqN6PP51Z/XJts0kZtbZRNYcMguupxqRGjvc/GoqSKTbYa+aBwbkT4xoqQ7EsfN0A==", - "path": "system.security.cryptography.pkcs/4.5.2", - "hashPath": "system.security.cryptography.pkcs.4.5.2.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.ProtectedData/7.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==", - "path": "system.security.cryptography.protecteddata/7.0.0", - "hashPath": "system.security.cryptography.protecteddata.7.0.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Permissions/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", - "path": "system.security.permissions/4.5.0", - "hashPath": "system.security.permissions.4.5.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", - "path": "system.security.principal.windows/5.0.0", - "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" - }, - "System.Security.SecureString/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", - "path": "system.security.securestring/4.3.0", - "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.CodePages/4.5.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", - "path": "system.text.encoding.codepages/4.5.1", - "hashPath": "system.text.encoding.codepages.4.5.1.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", - "path": "system.text.regularexpressions/4.3.1", - "hashPath": "system.text.regularexpressions.4.3.1.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "path": "system.threading.tasks.extensions/4.3.0", - "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" - }, - "System.Threading.Thread/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", - "path": "system.threading.thread/4.3.0", - "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" - }, - "System.Threading.ThreadPool/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", - "path": "system.threading.threadpool/4.3.0", - "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" - }, - "System.Threading.Timer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", - "path": "system.threading.timer/4.3.0", - "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", - "path": "system.xml.xdocument/4.3.0", - "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", - "path": "system.xml.xmldocument/4.3.0", - "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlSerializer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", - "path": "system.xml.xmlserializer/4.3.0", - "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" - }, - "System.Xml.XPath/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", - "path": "system.xml.xpath/4.3.0", - "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll deleted file mode 100644 index 3e4b300b873ff..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb deleted file mode 100644 index b3d0ebe75e8a0..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.pdb and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml deleted file mode 100644 index 9c5b7f84166a5..0000000000000 --- a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.Module.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Microsoft.Teams.PowerShell.Module - - - - 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 deleted file mode 100644 index a91477ead25da..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Teams.PowerShell.TeamsCmdlets.dll and /dev/null 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 deleted file mode 100644 index a3b892b740386..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.TeamsCmdlets.PowerShell.Connect.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll deleted file mode 100644 index 3fa1efe54e41f..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Core.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll deleted file mode 100644 index f0a377a3a2cc2..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.WinForms.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll deleted file mode 100644 index 7e60694860eef..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Microsoft.Web.WebView2.Wpf.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll deleted file mode 100644 index a2d241560b29c..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Newtonsoft.Json.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll deleted file mode 100644 index c031ac96e3c0b..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/OneCollectorChannel.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll deleted file mode 100644 index c082759015cda..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.Contrib.WaitAndRetry.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll deleted file mode 100644 index afe6d97775d59..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/Polly.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll deleted file mode 100644 index 6fcf940c4e302..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Diagnostics.DiagnosticSource.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll deleted file mode 100644 index 19871f5fcf218..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IO.FileSystem.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll deleted file mode 100644 index cd465d3aa208c..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.IdentityModel.Tokens.Jwt.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll deleted file mode 100644 index 1eda9c7fa707d..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.Automation.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll deleted file mode 100644 index 2b5e3781091d6..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Management.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll deleted file mode 100644 index 8ac2cc7dbc635..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll deleted file mode 100644 index fd0725aa49064..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.AccessControl.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index c3e174c06b184..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll b/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll deleted file mode 100644 index 9d4508448f184..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/System.Security.Principal.Windows.dll and /dev/null 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 deleted file mode 100644 index 95afcfaf07ef9..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-arm64/native/msalruntime_arm64.dll and /dev/null 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 deleted file mode 100644 index 1cfb61b7f7a57..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x64/native/msalruntime.dll and /dev/null 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 deleted file mode 100644 index 5ac532ab83079..0000000000000 Binary files a/Modules/MicrosoftTeams/7.4.0/netcoreapp3.1/runtimes/win-x86/native/msalruntime_x86.dll and /dev/null differ diff --git a/Shared/CIPPSharp/CIPPRestClient.cs b/Shared/CIPPSharp/CIPPRestClient.cs index 08c5a60fde372..b4fa13e6d5326 100644 --- a/Shared/CIPPSharp/CIPPRestClient.cs +++ b/Shared/CIPPSharp/CIPPRestClient.cs @@ -3,6 +3,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; using System.Net; using System.Net.Http; @@ -36,6 +37,88 @@ public sealed class HttpResult public Dictionary ResponseHeaders { get; init; } = new(); } + // ===================================================================== + // CIPPResponseHeaders / CIPPHttpResponse / CIPPHttpRequestException + // ===================================================================== + // When a request returns a non-success status, the PowerShell wrapper + // (Invoke-CIPPRestMethod) throws a CIPPHttpRequestException. CIPP's Graph + // helpers were written against Invoke-RestMethod's HttpResponseException + // and read: + // $_.Exception.Response.StatusCode -eq 429 + // $_.Exception.Response.Headers['Retry-After'] + // The pooled client previously threw a bare HttpRequestException with no + // .Response, so those branches were dead. These types restore the expected + // shape: a .Response with a StatusCode (HttpStatusCode, so `-eq 429` works) + // and Headers that support case-insensitive string indexing returning a + // scalar value (so ['Retry-After'] works), matching the old behaviour. + // ===================================================================== + + /// + /// Case-insensitive response-header view exposed to PowerShell. The string + /// indexer returns the (comma-joined) value for a header, or null if absent, + /// mirroring how WebHeaderCollection / HttpResponseHeaders were consumed in + /// CIPP via $response.Headers['Header-Name']. + /// + public sealed class CIPPResponseHeaders + { + private readonly Dictionary _headers; + + public CIPPResponseHeaders(Dictionary? headers) + { + _headers = headers is not null + ? new Dictionary(headers, StringComparer.OrdinalIgnoreCase) + : new Dictionary(StringComparer.OrdinalIgnoreCase); + } + + /// $resp.Headers['Retry-After'] -> scalar string (joined), or null. + public string? this[string key] + => key is not null && _headers.TryGetValue(key, out var v) ? string.Join(", ", v) : null; + + public bool Contains(string key) => key is not null && _headers.ContainsKey(key); + public string[]? GetValues(string key) => key is not null && _headers.TryGetValue(key, out var v) ? v : null; + public IEnumerable Keys => _headers.Keys; + public int Count => _headers.Count; + } + + /// + /// Lightweight stand-in for the response object CIPP code reaches through + /// $_.Exception.Response. Carries the status code (as HttpStatusCode so + /// `-eq 429` works), the headers (string-indexable), and the raw body. + /// + public sealed class CIPPHttpResponse + { + public HttpStatusCode StatusCode { get; } + public int StatusCodeValue { get; } + public CIPPResponseHeaders Headers { get; } + public string Content { get; } + + public CIPPHttpResponse(int statusCode, Dictionary? headers, string? content) + { + StatusCode = (HttpStatusCode)statusCode; + StatusCodeValue = statusCode; + Headers = new CIPPResponseHeaders(headers); + Content = content ?? string.Empty; + } + } + + /// + /// HttpRequestException subclass carrying a .Response (CIPPHttpResponse). + /// Subclassing keeps existing `catch [System.Net.Http.HttpRequestException]` + /// and `$_.Exception.Message` / `$_.ErrorDetails.Message` handling intact, + /// while restoring `$_.Exception.Response.StatusCode` / + /// `$_.Exception.Response.Headers['Retry-After']`. + /// + public sealed class CIPPHttpRequestException : HttpRequestException + { + public CIPPHttpResponse Response { get; } + + public CIPPHttpRequestException(string message, int statusCode, Dictionary? headers, string? content) + : base(message, null, (HttpStatusCode)statusCode) + { + Response = new CIPPHttpResponse(statusCode, headers, content); + } + } + // ===================================================================== // CIPPRestClient // ===================================================================== @@ -599,7 +682,33 @@ public static async Task SendAsync( HttpResponseMessage response; try { - response = await client.SendAsync(request, token).ConfigureAwait(false); + // ResponseHeadersRead: do NOT buffer the body inside SendAsync. With the + // default (ResponseContentRead) the body is downloaded and auto-decompressed + // here, so a mislabeled Content-Encoding (EXO error responses declare gzip on + // a plain body) throws InvalidDataException from SendAsync and bypasses the + // defensive body read below — masking the HTTP status the caller needs. + response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, token).ConfigureAwait(false); + } + catch (OperationCanceledException) when (cts is not null && cts.IsCancellationRequested) + { + // Our per-request timeout CTS actually fired — this is a genuine + // client-side timeout after timeoutSec. Let it propagate as an + // OperationCanceledException so the PowerShell wrapper reports it + // as a timeout (and the "timed out after {timeoutSec}s" message is true). + TrackTransportError(selection.Pool); + throw; + } + catch (OperationCanceledException ex) + { + // Cancellation was NOT triggered by our timeout token. The server + // reset/closed the request before our timeout elapsed — common for + // slow EXO InvokeCommand cmdlets (Search-UnifiedAuditLog, + // Get-MessageTraceV2) which the service cuts off well under 100s. + // Surface it as a transport error so it is not mislabeled as a + // client timeout and is correctly treated as a retryable failure. + TrackTransportError(selection.Pool); + throw new HttpRequestException( + $"The request to '{uri}' was canceled by the server before completing.", ex); } catch { @@ -622,7 +731,7 @@ public static async Task SendAsync( try { content = response.Content is not null - ? await response.Content.ReadAsStringAsync(token).ConfigureAwait(false) + ? await ReadDecodedContentAsync(response.Content, token).ConfigureAwait(false) : string.Empty; } catch (Exception ex) when (ex is InvalidDataException || ex is IOException) @@ -691,6 +800,46 @@ public static async Task SendAsync( } } + // ----------------------------------------------------------------- + // Content decoding + // ----------------------------------------------------------------- + // Reads the response body as a string, decompressing explicitly based on + // the Content-Encoding header. SocketsHttpHandler.AutomaticDecompression + // normally handles this transparently AND strips Content-Encoding, in + // which case ContentEncoding is empty here and we just read the string. + // But AutomaticDecompression silently no-ops whenever a request carries a + // caller-supplied Accept-Encoding header (HttpClient assumes the caller + // will decode), and some endpoints (e.g. the Teams ConfigAPI) return gzip + // even when unprompted. When Content-Encoding survives, we decode it here + // so callers never receive raw compressed bytes. Idempotent: if the + // handler already decoded, there's nothing left to do. + // ----------------------------------------------------------------- + private static async Task ReadDecodedContentAsync(HttpContent httpContent, CancellationToken token) + { + var encodings = httpContent.Headers.ContentEncoding; + if (encodings is null || encodings.Count == 0) + return await httpContent.ReadAsStringAsync(token).ConfigureAwait(false); + + var raw = await httpContent.ReadAsStreamAsync(token).ConfigureAwait(false); + Stream decoded = raw; + // Content-Encoding lists encodings in the order applied; decode in reverse. + foreach (var enc in encodings.Reverse()) + { + decoded = enc?.Trim().ToLowerInvariant() switch + { + "gzip" or "x-gzip" => new GZipStream(decoded, CompressionMode.Decompress), + "deflate" => new DeflateStream(decoded, CompressionMode.Decompress), + "br" => new BrotliStream(decoded, CompressionMode.Decompress), + "identity" or "" or null => decoded, + _ => decoded, + }; + } + using var reader = new StreamReader(decoded, Encoding.UTF8); + var result = await reader.ReadToEndAsync(token).ConfigureAwait(false); + decoded.Dispose(); + return result; + } + // ================================================================= // Diagnostics // ================================================================= @@ -899,6 +1048,56 @@ public static void Remove(string key) Interlocked.Increment(ref _invalidations); } + /// + /// Invalidate every cached token for a tenant, across all scopes, client IDs and + /// grant types. Call this after a consent change (CPV refresh/reset, permission + /// update) so the next request re-acquires a token carrying the new scopes instead + /// of serving a stale one that predates the consent. + /// Keys are built as "tenantId|scope|app-or-delegated|clientId|grantType", so the + /// tenant is matched on the first segment. + /// + public static int RemoveByTenant(string tenantId) + { + if (string.IsNullOrWhiteSpace(tenantId)) + return 0; + + var prefix = tenantId.Trim().ToLowerInvariant() + "|"; + var removed = 0; + + foreach (var kvp in _entries) + { + if (kvp.Key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase) && + _entries.TryRemove(kvp.Key, out _)) + { + removed++; + Interlocked.Increment(ref _invalidations); + } + } + + return removed; + } + + /// + /// Invalidate the entire token cache. Intended for global consent/app changes + /// (for example rotating the SAM application) where per-tenant invalidation is + /// not sufficient. + /// + public static int Clear() + { + var removed = 0; + + foreach (var kvp in _entries) + { + if (_entries.TryRemove(kvp.Key, out _)) + { + removed++; + Interlocked.Increment(ref _invalidations); + } + } + + return removed; + } + public static int CompactExpired(int refreshSkewSeconds = 0, int maxRemovals = 1000) { var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); diff --git a/Shared/CIPPSharp/CIPPSharp.csproj b/Shared/CIPPSharp/CIPPSharp.csproj index 9bd6e19ccacde..6c7a3f192bdb0 100644 --- a/Shared/CIPPSharp/CIPPSharp.csproj +++ b/Shared/CIPPSharp/CIPPSharp.csproj @@ -14,4 +14,7 @@ bin\ false + + + diff --git a/Shared/CIPPSharp/CIPPTestDataCache.cs b/Shared/CIPPSharp/CIPPTestDataCache.cs index d92db61483e75..2b15d21c07da8 100644 --- a/Shared/CIPPSharp/CIPPTestDataCache.cs +++ b/Shared/CIPPSharp/CIPPTestDataCache.cs @@ -3,8 +3,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Reflection; -using System.Text.Json; +using System.Management.Automation; using System.Threading; using System.Threading.Tasks; @@ -14,16 +13,32 @@ namespace CIPP /// Host-scoped, thread-safe LRU cache for test data lookups. The DLL is /// loaded once per Azure Functions host, so every PowerShell worker /// process on that host shares this exact instance. Bounded by both a - /// byte-size cap (default 100 MB) and a short TTL (default 5 minutes) + /// byte-size cap (default 300 MB) and a short TTL (default 5 minutes) /// so that test suites running against a single tenant get fast cache /// hits without accumulating stale Gen2 roots that cause GC thrashing. /// public static class TestDataCache { // ── Configuration ── - private static long _maxBytes = 100L * 1024 * 1024; // 100 MB default + // Defaults are 300 MB / 5 min. Both are overridable per deployment via + // Azure Functions app settings (environment variables) resolved once at + // load, or programmatically via Configure() for tests. The cap now maps to + // real managed-heap bytes (see EstimateValueSize), so 300 MB means ~300 MB. + private static long _maxBytes = 300L * 1024 * 1024; // 300 MB default private static TimeSpan _ttl = TimeSpan.FromMinutes(5); + static TestDataCache() + { + try + { + if (long.TryParse(Environment.GetEnvironmentVariable("CIPPTestCacheMaxMB"), out var maxMB) && maxMB > 0) + _maxBytes = maxMB * 1024L * 1024L; + if (int.TryParse(Environment.GetEnvironmentVariable("CIPPTestCacheTtlSeconds"), out var ttlSec) && ttlSec > 0) + _ttl = TimeSpan.FromSeconds(ttlSec); + } + catch { /* keep defaults if app settings are unreadable */ } + } + // ── State ── private static readonly ConcurrentDictionary _cache = new(); private static readonly LinkedList _lruOrder = new(); // head = oldest @@ -56,7 +71,7 @@ public CacheEntry(object? value, long sizeBytes, DateTime expiresUtc) } /// Configure the cache limits. Call before first use or between test runs. - public static void Configure(long maxBytes = 100L * 1024 * 1024, int ttlSeconds = 300) + public static void Configure(long maxBytes = 300L * 1024 * 1024, int ttlSeconds = 300) { _maxBytes = maxBytes; _ttl = TimeSpan.FromSeconds(ttlSeconds); @@ -251,120 +266,150 @@ private static void TryFireBackgroundSweep() public static double HitRate => (_hits + _misses) > 0 ? Math.Round(_hits * 100.0 / (_hits + _misses), 1) : 0; - // ── PSObject reflection (cached, resolved once at first use) ── - private static readonly object s_reflectLock = new(); - private static bool s_psResolved; - private static Type? s_psObjectType; - private static PropertyInfo? s_psPropsProp; // PSObject.Properties - private static PropertyInfo? s_psPropName; // PSPropertyInfo.Name - private static PropertyInfo? s_psPropValue; // PSPropertyInfo.Value - private const int SampleSize = 5; - private const int MaxDepth = 4; - - private static void EnsurePSResolved() - { - if (s_psResolved) return; - lock (s_reflectLock) - { - if (s_psResolved) return; - try - { - foreach (var asm in AppDomain.CurrentDomain.GetAssemblies()) - { - var t = asm.GetType("System.Management.Automation.PSObject"); - if (t == null) continue; - s_psObjectType = t; - s_psPropsProp = t.GetProperty("Properties"); - var piType = asm.GetType("System.Management.Automation.PSPropertyInfo"); - if (piType != null) - { - s_psPropName = piType.GetProperty("Name"); - s_psPropValue = piType.GetProperty("Value"); - } - break; - } - } - catch { /* SMA not loaded */ } - s_psResolved = true; - } - } + // ── Managed-heap size model (x64 CoreCLR) ── + // The cache stores *parsed PSObject graphs*, whose live heap footprint is + // many times their JSON text size (measured ≈8× on real Graph data). Sizing + // by JSON serialization therefore under-counts by ~8× and lets the byte cap + // balloon far past its nominal limit. Instead we walk the object graph and + // sum approximate per-object heap costs. Constants below are calibrated + // against real GC heap growth (see tools/measure-testcache.ps1). + private const int ObjectHeader = 16; // sync block + method table ptr + private const int RefSlot = 8; // one reference (array/field slot) + private const int StringBaseOverhead = 22; // header(16)+length(4)+terminator(2) + private const int BoxedPrimitive = 24; // header(16)+<=8 payload, aligned + private const int BoxedLarge = 32; // header(16)+16 payload (decimal/Guid) + private const int PSObjectBase = 192; // PSObject wrapper + base + member collections + private const int PSNotePropertyOverhead = 132; // PSNoteProperty + name-lookup entry (excl. name string + value) + private const int DictBase = 80; // buckets + entries baseline + private const int DictEntryOverhead = 48; // per-entry slot incl. capacity slack (excl. key + value) + private const int CollectionBase = 56; // list/array object + backing array baseline + + // Bound the walk on pathological payloads: full-walk small collections for + // accuracy, but stride-sample very large ones so a 100k-item array can't + // turn a single Set() into a multi-second graph walk. + private const int LargeCollectionThreshold = 512; + private const int LargeCollectionSamples = 256; + private const int MaxDepth = 32; + private const long NodeBudget = 2_000_000; // hard ceiling on nodes visited per Set() + + private static long Align8(long bytes) => (bytes + 7) & ~7L; /// - /// Estimate the serialized size of a cached value. For large collections, - /// samples a few items and extrapolates. Handles PSObject by unwrapping - /// NoteProperties into dictionaries via reflection. + /// Estimate the live managed-heap footprint of a cached value by walking the + /// object graph and summing approximate per-object costs. This tracks real + /// memory (parsed PSObjects, boxed primitives, strings, dictionaries and + /// collections) rather than JSON text size, so the byte cap corresponds to + /// actual process memory. is accepted for call + /// compatibility but the walk recomputes counts itself. /// private static long EstimateValueSize(object? value, int itemCount) { if (value == null) return 0; - EnsurePSResolved(); - try { - // Large collection: sample a few items, extrapolate - if (itemCount > SampleSize && value is IEnumerable enumerable) - { - var sample = new List(); - foreach (var item in enumerable) - { - sample.Add(Unwrap(item, 0)); - if (sample.Count >= SampleSize) break; - } - if (sample.Count == 0) return 0; - var sampleBytes = JsonSerializer.SerializeToUtf8Bytes(sample).LongLength; - return sampleBytes * itemCount / sample.Count; - } - - // Small collection or single value: unwrap everything - var unwrapped = Unwrap(value, 0); - return JsonSerializer.SerializeToUtf8Bytes(unwrapped).LongLength; + long budget = NodeBudget; + return SizeOf(value, 0, ref budget); } catch { return 0; } } /// - /// Recursively unwrap PSObject → Dictionary and IEnumerable → List - /// so System.Text.Json can serialize them. + /// Recursively sum the approximate managed-heap bytes of + /// and everything it owns. Returns the object's own heap size; the reference + /// slot that points at it is accounted for by the owning object/collection. /// - private static object? Unwrap(object? value, int depth) + private static long SizeOf(object? value, int depth, ref long budget) { - if (value == null || depth > MaxDepth) return value; + if (value == null) return 0; + if (--budget <= 0 || depth > MaxDepth) return 0; + + switch (value) + { + case string s: + return Align8(StringBaseOverhead + 2L * s.Length); + case bool: case byte: case sbyte: case char: + case short: case ushort: case int: case uint: + case long: case ulong: case float: case double: + case DateTime: case DateTimeOffset: case TimeSpan: case Enum: + return BoxedPrimitive; + case decimal: case Guid: + return BoxedLarge; + case byte[] bytes: + return Align8(ObjectHeader + RefSlot + bytes.LongLength); + } + + // PSObject → wrapper cost + each NoteProperty (name string + value + overhead) + if (value is PSObject pso) + return SizeOfPSObject(pso, depth, ref budget); - // PSObject → extract NoteProperties as Dictionary - if (s_psObjectType != null && s_psObjectType.IsInstanceOfType(value)) - return UnwrapPSObject(value, depth); + // Dictionary / Hashtable → base + per-entry overhead + keys + values + if (value is IDictionary dict) + { + long total = ObjectHeader + DictBase; + foreach (DictionaryEntry de in dict) + { + total += DictEntryOverhead; + total += SizeOf(de.Key, depth + 1, ref budget); + total += SizeOf(de.Value, depth + 1, ref budget); + if (budget <= 0) break; + } + return total; + } - // Collection → unwrap each element - if (value is IEnumerable enumerable && value is not string && value is not byte[]) + // Other collections (object[], List, …). Stride-sample very large + // ones to bound the walk; full-walk the rest for accuracy. + if (value is IEnumerable enumerable && value is not string) { - var list = new List(); + int count = value is ICollection col ? col.Count : -1; + + if (count > LargeCollectionThreshold && value is IList list) + { + long step = count / (long)LargeCollectionSamples; + if (step < 1) step = 1; + long sampled = 0, sampledBytes = 0; + for (long i = 0; i < count && sampled < LargeCollectionSamples; i += step) + { + sampledBytes += SizeOf(list[(int)i], depth + 1, ref budget); + sampled++; + if (budget <= 0) break; + } + long avgItem = sampled > 0 ? sampledBytes / sampled : 0; + // backing array slots + extrapolated element payloads + return ObjectHeader + CollectionBase + count * (RefSlot + avgItem); + } + + long total = ObjectHeader + CollectionBase; foreach (var item in enumerable) - list.Add(Unwrap(item, depth + 1)); - return list; + { + total += RefSlot; + total += SizeOf(item, depth + 1, ref budget); + if (budget <= 0) break; + } + return total; } - return value; + // Unknown reference type: header plus a small nominal for its fields. + return ObjectHeader + 32; } - private static Dictionary UnwrapPSObject(object psObj, int depth) + private static long SizeOfPSObject(PSObject psObj, int depth, ref long budget) { - var dict = new Dictionary(); - if (s_psPropsProp == null || s_psPropName == null || s_psPropValue == null) - return dict; - - if (s_psPropsProp.GetValue(psObj) is not IEnumerable props) return dict; + long total = PSObjectBase; - foreach (var prop in props) + foreach (var prop in psObj.Properties) { + if (--budget <= 0) break; + total += PSNotePropertyOverhead; try { - var name = s_psPropName.GetValue(prop)?.ToString(); - if (name != null) - dict[name] = Unwrap(s_psPropValue.GetValue(prop), depth + 1); + var name = prop.Name; + if (name != null) total += Align8(StringBaseOverhead + 2L * name.Length); + // .Value can throw on script/code properties that evaluate on access. + total += SizeOf(prop.Value, depth + 1, ref budget); } catch { /* skip properties that throw on access */ } } - return dict; + return total; } /// diff --git a/Shared/CIPPSharp/CippJsonConverter.cs b/Shared/CIPPSharp/CippJsonConverter.cs new file mode 100644 index 0000000000000..a94da1da4ab9e --- /dev/null +++ b/Shared/CIPPSharp/CippJsonConverter.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Management.Automation; +using System.Text.Json; + +namespace CIPP +{ + /// + /// Fast JSON -> PowerShell converter for the CippReportingDB read path, replacing + /// `ConvertFrom-Json` in New-CIPPDbRequest. + /// + /// COMPATIBILITY: reproduces ConvertFrom-Json's observable semantics, because every caller + /// depends on them and any divergence fails *silently*: + /// - PSCustomObject records, so `$x[0]`, `$x.Count` and `$x.PSObject.Properties` all keep + /// the scalar semantics callers rely on. Hashtable output is cheaper but changes those, + /// and only when a pipeline yields exactly one record — do not switch. + /// - ISO-8601-looking strings become [DateTime] (tests compare these against [datetime]). + /// - Every integer becomes Int64 regardless of magnitude (never Int32). + /// Matching these costs nothing measurable, so there is no reason to ship divergence. + /// + /// PERFORMANCE: without a field list this is modestly faster and allocates less than + /// ConvertFrom-Json, but retains the SAME live bytes — the parser was never the memory cost. + /// The memory win comes from : not materializing unread fields. + /// + public static class CippJson + { + private static readonly JsonDocumentOptions Opts = new JsonDocumentOptions { MaxDepth = 1024 }; + + /// Convert a JSON document, materializing every field. + public static object? ConvertFromJson(string json) => ConvertFromJson(json, null); + + /// + /// Convert a JSON document, keeping only on each RECORD. + /// + /// Projection applies at the record level only: for an object root, the root's own fields; + /// for an array root, each element's own fields. A field that is kept keeps its ENTIRE + /// subtree — projection never reaches inside a retained value. Null/empty keeps everything. + /// + /// The saving therefore scales with how much of the record is dropped: large for + /// scalar-only field sets, small when a kept subtree is most of the payload. + /// + public static object? ConvertFromJson(string json, string[]? fields) + { + if (string.IsNullOrEmpty(json)) return null; + + HashSet? keep = (fields != null && fields.Length > 0) + ? new HashSet(fields, StringComparer.OrdinalIgnoreCase) + : null; + + using var doc = JsonDocument.Parse(json, Opts); + var root = doc.RootElement; + + // Records live at the root, or one level down if the root is an array. + if (root.ValueKind == JsonValueKind.Array) + { + var rows = new List(); + foreach (var item in root.EnumerateArray()) rows.Add(ReadRecord(item, keep)); + return rows.ToArray(); + } + + return ReadRecord(root, keep); + } + + /// A record: the one level at which projection applies. + private static object? ReadRecord(JsonElement el, HashSet? keep) + { + if (el.ValueKind != JsonValueKind.Object) return ReadValue(el); + + var pso = new PSObject(); + foreach (var p in el.EnumerateObject()) + { + // Skipped fields are never materialized — this is the whole point of projection. + if (keep != null && !keep.Contains(p.Name)) continue; + pso.Properties.Add(new PSNoteProperty(p.Name, ReadValue(p.Value))); // kept => whole subtree + } + return pso; + } + + /// Everything below the record level: materialized in full. + private static object? ReadValue(JsonElement el) + { + switch (el.ValueKind) + { + case JsonValueKind.Object: + var pso = new PSObject(); + foreach (var p in el.EnumerateObject()) + pso.Properties.Add(new PSNoteProperty(p.Name, ReadValue(p.Value))); + return pso; + + case JsonValueKind.Array: + var list = new List(); + foreach (var item in el.EnumerateArray()) list.Add(ReadValue(item)); + return list.ToArray(); + + case JsonValueKind.String: + // ConvertFrom-Json coerces ISO-8601 strings to DateTime; matching that keeps + // date comparisons in tests behaving as they do today. + return el.TryGetDateTime(out var dt) ? dt : (object?)el.GetString(); + + case JsonValueKind.True: return true; + case JsonValueKind.False: return false; + case JsonValueKind.Null: return null; + + case JsonValueKind.Number: + // ConvertFrom-Json yields Int64 for all integers — never narrow to Int32. + if (el.TryGetInt64(out long l)) return l; + return el.GetDouble(); + + default: return null; + } + } + } +} diff --git a/Shared/CIPPSharp/bin/CIPPSharp.dll b/Shared/CIPPSharp/bin/CIPPSharp.dll index 242e6458a8033..ba68cf80f0eb1 100644 Binary files a/Shared/CIPPSharp/bin/CIPPSharp.dll and b/Shared/CIPPSharp/bin/CIPPSharp.dll differ diff --git a/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 index 7a8ae25cc5909..c2a9e70906284 100644 --- a/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 +++ b/Tests/Alerts/Get-CIPPAlertGlobalAdminAllowList.Tests.ps1 @@ -3,13 +3,19 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $AlertPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Alerts/Get-CIPPAlertGlobalAdminAllowList.ps1' + # Resolve by name under Modules/ so the test survives the function moving between modules. + $AlertPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Get-CIPPAlertGlobalAdminAllowList.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $AlertPath) { throw 'Could not locate Get-CIPPAlertGlobalAdminAllowList.ps1 under Modules/' } # Provide minimal stubs so Mock has commands to replace during tests function New-GraphGetRequest { param($uri, $tenantid, $AsApp) } function Write-AlertTrace { param($cmdletName, $tenantFilter, $data) } function Write-AlertMessage { param($tenant, $message) } function Get-NormalizedError { param($message) $message } + # The error path now normalises via Get-CippException and logs via Write-LogMessage. + function Get-CippException { param($Exception) @{ NormalizedError = $Exception } } + function Write-LogMessage { param($API, $tenant, $message, $sev, $Headers, $LogData) } . $AlertPath } @@ -47,6 +53,12 @@ Describe 'Get-CIPPAlertGlobalAdminAllowList' { param($tenant, $message) $script:CapturedErrorMessage = $message } + + # The function logs failures through Write-LogMessage, so capture the error from there. + Mock -CommandName Write-LogMessage -MockWith { + param($API, $tenant, $message, $sev, $Headers, $LogData) + $script:CapturedErrorMessage = $message + } } It 'emits per-admin alerts when AlertEachAdmin is true' { diff --git a/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 index f44bb399798e0..7cfd7476d483e 100644 --- a/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 +++ b/Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1 @@ -122,7 +122,7 @@ Describe 'Get-CIPPAlertIntunePolicyConflicts' { $AppIssue = $CapturedData | Where-Object { $_.Type -eq 'Application' } $AppIssue.FailedDeviceCount | Should -Be 3 - $AppIssue.Message | Should -Match "failed to install on 3 device" + $AppIssue.Message | Should -Match 'failed to install on 3 device' } It 'skips processing when license check fails' { diff --git a/Tests/Build/Add-OpenApiResponseSchemas.Tests.ps1 b/Tests/Build/Add-OpenApiResponseSchemas.Tests.ps1 new file mode 100644 index 0000000000000..ee1d7ebc8fdfd --- /dev/null +++ b/Tests/Build/Add-OpenApiResponseSchemas.Tests.ps1 @@ -0,0 +1,488 @@ +#Requires -Version 7.0 +<# + Pester tests for Add-OpenApiResponseSchemas.ps1. + + Covers the pure core (Resolve-SpecResponse + the schema/source converters) with + hand-built fixtures, plus the sad paths that matter for a generator stage: + malformed input, non-baseline files, missing sources, and operations the stage + must leave untouched. Dot-sources the script so only its functions load. +#> + +BeforeAll { + # Test lives at /Tests/Build/; the script lives at /.build/. + $RepoRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot) + $ScriptPath = Join-Path $RepoRoot '.build' 'Add-OpenApiResponseSchemas.ps1' + . $ScriptPath + + # Minimal spec factory: one path with the given methods, each carrying a bare 200. + function Get-TestSpec { + param([hashtable]$Paths) + return [ordered]@{ openapi = '3.1.0'; paths = $Paths } + } + function Get-Operation { + param( + [switch]$NoOkResponse, + [string]$OperationId + ) + $responses = if ($NoOkResponse) { @{ '500' = @{ description = 'err' } } } else { @{ '200' = @{ description = 'ok' } } } + $operation = @{ responses = $responses } + if ($OperationId) { $operation['operationId'] = $OperationId } + return $operation + } +} + +Describe 'ConvertFrom-ShapeNode' { + Context 'Leaf tokens' { + It 'maps string' { (ConvertFrom-ShapeNode -Node 'string').type | Should -Be 'string' } + It 'maps number' { (ConvertFrom-ShapeNode -Node 'number').type | Should -Be 'number' } + It 'maps bool to boolean' { (ConvertFrom-ShapeNode -Node 'bool').type | Should -Be 'boolean' } + It 'maps datetime to string+format' { + $r = ConvertFrom-ShapeNode -Node 'datetime' + $r.type | Should -Be 'string' + $r.format | Should -Be 'date-time' + } + It 'leaves null permissive (no type)' { (ConvertFrom-ShapeNode -Node 'null').Keys.Count | Should -Be 0 } + It 'leaves truncated permissive (no type)' { (ConvertFrom-ShapeNode -Node 'truncated').Keys.Count | Should -Be 0 } + It 'leaves unknown tokens permissive' { (ConvertFrom-ShapeNode -Node 'mystery').Keys.Count | Should -Be 0 } + } + + Context 'Nested structures' { + It 'maps an array node to type array with typed items' { + $node = @{ _type = 'array'; _element = 'string' } + $r = ConvertFrom-ShapeNode -Node $node + $r.type | Should -Be 'array' + $r.items.type | Should -Be 'string' + } + It 'maps an object node and sorts its properties' { + $node = [ordered]@{ zeta = 'string'; alpha = 'number' } + $r = ConvertFrom-ShapeNode -Node $node + $r.type | Should -Be 'object' + @($r.properties.Keys) | Should -Be @('alpha', 'zeta') + } + It 'maps an array of objects' { + $node = @{ _type = 'array'; _element = @{ id = 'string'; count = 'number' } } + $r = ConvertFrom-ShapeNode -Node $node + $r.items.type | Should -Be 'object' + $r.items.properties.id.type | Should -Be 'string' + } + } +} + +Describe 'ConvertTo-ColumnRecordSchema' { + It 'types every column as string with frontend provenance' { + $cols = [System.Collections.Generic.HashSet[string]]::new() + [void]$cols.Add('mail'); [void]$cols.Add('displayName') + $r = ConvertTo-ColumnRecordSchema -Columns $cols + $r.type | Should -Be 'object' + $r.properties.mail.type | Should -Be 'string' + $r.properties.mail.'x-cipp-field-source' | Should -Be 'frontend' + } + It 'sorts columns for deterministic output' { + $cols = [System.Collections.Generic.HashSet[string]]::new() + [void]$cols.Add('zeta'); [void]$cols.Add('alpha') + $r = ConvertTo-ColumnRecordSchema -Columns $cols + @($r.properties.Keys) | Should -Be @('alpha', 'zeta') + } +} + +Describe 'ConvertTo-ResponseEnvelopeSchema' { + It 'wraps a record schema in the Results/Metadata envelope' { + $record = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } + $r = ConvertTo-ResponseEnvelopeSchema -RecordSchema $record + $r.type | Should -Be 'object' + $r.properties.Results.type | Should -Be 'array' + $r.properties.Results.items.properties.id.type | Should -Be 'string' + $r.properties.Metadata.type | Should -Be 'object' + } +} + + +Describe 'Add-CippOperationId' { + It 'injects the bare endpoint name for a single-method operation with no operationId' { + $spec = Get-TestSpec -Paths @{ '/api/ListMailboxes' = @{ get = (Get-Operation) } } + $r = Add-CippOperationId -Spec $spec + $spec['paths']['/api/ListMailboxes']['get']['operationId'] | Should -Be 'ListMailboxes' + $r.Injected | Should -Be 1 + $r.Unique | Should -Be 1 + } + + It 'keeps single-method endpoint names bare even when they start with their method word' { + $spec = Get-TestSpec -Paths @{ + '/api/PatchUser' = @{ patch = (Get-Operation) } + '/api/ListX' = @{ get = (Get-Operation) } + } + Add-CippOperationId -Spec $spec | Out-Null + $spec['paths']['/api/PatchUser']['patch']['operationId'] | Should -Be 'PatchUser' + $spec['paths']['/api/ListX']['get']['operationId'] | Should -Be 'ListX' + } + + It 'gives a multi-method path two distinct operationIds' { + $spec = Get-TestSpec -Paths @{ '/api/ExecCSPLicense' = @{ get = (Get-Operation); post = (Get-Operation) } } + $r = Add-CippOperationId -Spec $spec + $spec['paths']['/api/ExecCSPLicense']['get']['operationId'] | Should -Be 'GetExecCSPLicense' + $spec['paths']['/api/ExecCSPLicense']['post']['operationId'] | Should -Be 'PostExecCSPLicense' + $r.Unique | Should -Be 2 + } + + It 'preserves a pre-existing operationId' { + $spec = Get-TestSpec -Paths @{ '/api/ListMailboxes' = @{ get = (Get-Operation -OperationId 'AlreadyThere') } } + $r = Add-CippOperationId -Spec $spec + $spec['paths']['/api/ListMailboxes']['get']['operationId'] | Should -Be 'AlreadyThere' + $r.Injected | Should -Be 0 + } + + It 'throws when a synthetic duplicate operationId is present' { + $spec = Get-TestSpec -Paths @{ + '/api/DuplicateA' = @{ get = (Get-Operation -OperationId 'SameOperation') } + '/api/DuplicateB' = @{ post = (Get-Operation -OperationId 'SameOperation') } + } + { Add-CippOperationId -Spec $spec } | Should -Throw '*Duplicate operationId found: SameOperation*' + } + + It 'keeps visibly different endpoint names distinct without hidden normalization' { + $spec = Get-TestSpec -Paths @{ + '/api/User' = @{ get = (Get-Operation) } + '/api/ListUsers' = @{ get = (Get-Operation) } + '/api/List-Users' = @{ get = (Get-Operation) } + } + Add-CippOperationId -Spec $spec | Out-Null + $spec['paths']['/api/User']['get']['operationId'] | Should -Be 'User' + $spec['paths']['/api/ListUsers']['get']['operationId'] | Should -Be 'ListUsers' + $spec['paths']['/api/List-Users']['get']['operationId'] | Should -Be 'List-Users' + } + + It 'throws when disambiguated derivation creates an actual duplicate' { + $spec = Get-TestSpec -Paths @{ + '/api/PatchUser' = @{ patch = (Get-Operation) } + '/api/User' = @{ get = (Get-Operation); patch = (Get-Operation) } + } + { Add-CippOperationId -Spec $spec } | Should -Throw '*Duplicate operationId found: PatchUser*' + } + + It 'throws when two single-method paths have the same bare endpoint name' { + $spec = Get-TestSpec -Paths @{ + '/api/SameName' = @{ get = (Get-Operation) } + 'SameName' = @{ post = (Get-Operation) } + } + { Add-CippOperationId -Spec $spec } | Should -Throw '*Duplicate operationId found: SameName*' + } + + It 'ignores non-method path item keys when injecting operationIds' { + $spec = Get-TestSpec -Paths @{ + '/api/ListThings' = [ordered]@{ + get = (Get-Operation) + parameters = @(@{ name = 'tenant'; in = 'query' }) + summary = 'path summary' + '$ref' = '#/components/pathItems/ListThings' + description = 'path description' + } + } + Add-CippOperationId -Spec $spec | Out-Null + $spec['paths']['/api/ListThings']['get']['operationId'] | Should -Be 'ListThings' + $spec['paths']['/api/ListThings']['parameters'][0].ContainsKey('operationId') | Should -BeFalse + $spec['paths']['/api/ListThings']['summary'] | Should -Be 'path summary' + $spec['paths']['/api/ListThings']['$ref'] | Should -Be '#/components/pathItems/ListThings' + $spec['paths']['/api/ListThings']['description'] | Should -Be 'path description' + } + + It 'yields one unique operationId per operation on the full real spec' { + $specPath = Join-Path $RepoRoot 'openapi.json' + $spec = Get-Content -LiteralPath $specPath -Raw | ConvertFrom-Json -AsHashtable -Depth 100 + $operationTotal = 0 + foreach ($pathEntry in $spec['paths'].GetEnumerator()) { + foreach ($methodEntry in $pathEntry.Value.GetEnumerator()) { + if ($methodEntry.Key -in @('get', 'post', 'put', 'patch', 'delete')) { $operationTotal++ } + } + } + $r = Add-CippOperationId -Spec $spec + Write-Information "Full real spec operationIds: $($r.Unique)" -InformationAction Continue + $r.Operations | Should -Be $operationTotal + $r.Unique | Should -Be $r.Operations + } +} + +Describe 'Resolve-SpecResponse - happy paths' { + It 'types a baseline-backed endpoint and counts it' { + $spec = Get-TestSpec -Paths @{ '/api/ListThings' = @{ get = (Get-Operation) } } + $baseline = @{ ListThings = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $r.Operations | Should -Be 1 + $r.Typed | Should -Be 1 + $schema = $spec['paths']['/api/ListThings']['get']['responses']['200']['content']['application/json']['schema'] + $schema.properties.Results.items.properties.id.type | Should -Be 'string' + } + + It 'prefers the baseline when an endpoint is in both maps' { + $spec = Get-TestSpec -Paths @{ '/api/Both' = @{ get = (Get-Operation) } } + $baseline = @{ Both = [ordered]@{ type = 'object'; properties = [ordered]@{ fromBaseline = @{ type = 'string' } } } } + $cols = [System.Collections.Generic.HashSet[string]]::new(); [void]$cols.Add('fromColumns') + Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{ Both = $cols } | Out-Null + $props = $spec['paths']['/api/Both']['get']['responses']['200']['content']['application/json']['schema'].properties.Results.items.properties + $props.Keys | Should -Contain 'fromBaseline' + $props.Keys | Should -Not -Contain 'fromColumns' + } + + + + It 'does not inject operationIds while typing responses' { + $spec = Get-TestSpec -Paths @{ '/api/ListThings' = @{ get = (Get-Operation) } } + $baseline = @{ ListThings = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } } + Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} | Out-Null + $spec['paths']['/api/ListThings']['get'].ContainsKey('operationId') | Should -BeFalse + } + + It 'types a columns-only endpoint with provenance markers' { + $spec = Get-TestSpec -Paths @{ '/api/ListCols' = @{ get = (Get-Operation) } } + $cols = [System.Collections.Generic.HashSet[string]]::new(); [void]$cols.Add('displayName') + Resolve-SpecResponse -Spec $spec -BaselineMap @{} -ColumnMap @{ ListCols = $cols } | Out-Null + $props = $spec['paths']['/api/ListCols']['get']['responses']['200']['content']['application/json']['schema'].properties.Results.items.properties + $props.displayName.'x-cipp-field-source' | Should -Be 'frontend' + } +} + +Describe 'Resolve-SpecResponse - sad paths and invariants' { + It 'leaves an endpoint with no matching source untouched' { + $spec = Get-TestSpec -Paths @{ '/api/AddUser' = @{ post = (Get-Operation) } } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap @{} -ColumnMap @{} + $r.Operations | Should -Be 1 + $r.Typed | Should -Be 0 + $spec['paths']['/api/AddUser']['post']['responses']['200'].ContainsKey('content') | Should -BeFalse + } + + It 'does not type an operation that has no 200 response' { + $spec = Get-TestSpec -Paths @{ '/api/Weird' = @{ get = (Get-Operation -NoOkResponse) } } + $baseline = @{ Weird = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $r.Typed | Should -Be 0 + } + + It 'does not throw on an operation with no responses block' { + $spec = Get-TestSpec -Paths @{ '/api/Weird' = @{ get = @{} } } + $baseline = @{ Weird = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $r.Operations | Should -Be 1 + $r.Typed | Should -Be 0 + } + + It 'types a baseline-backed endpoint even when the record schema is permissive' { + $spec = Get-TestSpec -Paths @{ '/api/ListUnknown' = @{ get = (Get-Operation) } } + $baseline = @{ ListUnknown = @{} } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $r.Typed | Should -Be 1 + $schema = $spec['paths']['/api/ListUnknown']['get']['responses']['200']['content']['application/json']['schema'] + $schema.properties.Results.items.Keys.Count | Should -Be 0 + } + + It 'counts only get/post/put/patch/delete, ignoring parameters/summary keys' { + $spec = Get-TestSpec -Paths @{ '/api/ListThings' = [ordered]@{ get = (Get-Operation); parameters = @(); summary = 'x' } } + $r = Resolve-SpecResponse -Spec $spec -BaselineMap @{} -ColumnMap @{} + $r.Operations | Should -Be 1 + } + + It 'preserves the operation set (adds nothing, removes nothing)' { + $spec = Get-TestSpec -Paths @{ + '/api/ListA' = @{ get = (Get-Operation) } + '/api/AddB' = @{ post = (Get-Operation) } + } + $before = $spec['paths'].Keys | Sort-Object + Resolve-SpecResponse -Spec $spec -BaselineMap @{} -ColumnMap @{} | Out-Null + ($spec['paths'].Keys | Sort-Object) | Should -Be $before + } + + It 'throws on a spec with no paths' { + { Resolve-SpecResponse -Spec ([ordered]@{ openapi = '3.1.0' }) -BaselineMap @{} -ColumnMap @{} } | + Should -Throw '*no paths*' + } + + It 'is stable on a second core pass (same count, same typed schema)' { + # Production never re-mutates an in-memory spec; it reads fresh each run. The + # guarantee that matters is that re-applying yields the same meaningful output, + # not that an unordered Hashtable serialises in identical key order. + $spec = Get-TestSpec -Paths @{ '/api/ListThings' = @{ get = (Get-Operation) } } + $baseline = @{ ListThings = [ordered]@{ type = 'object'; properties = [ordered]@{ id = @{ type = 'string' } } } } + $r1 = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $schema1 = $spec['paths']['/api/ListThings']['get']['responses']['200']['content']['application/json']['schema'] | ConvertTo-Json -Depth 100 + $r2 = Resolve-SpecResponse -Spec $spec -BaselineMap $baseline -ColumnMap @{} + $schema2 = $spec['paths']['/api/ListThings']['get']['responses']['200']['content']['application/json']['schema'] | ConvertTo-Json -Depth 100 + $r2.Typed | Should -Be $r1.Typed + $schema2 | Should -Be $schema1 + } +} + +Describe 'Get-ShapeBaselineMap - file ingestion sad paths' { + BeforeEach { + $script:ShapesDir = Join-Path ([System.IO.Path]::GetTempPath()) ("hermes-shapes-" + [guid]::NewGuid()) + New-Item -ItemType Directory -Path $script:ShapesDir -Force | Out-Null + } + AfterEach { Remove-Item -Recurse -Force $script:ShapesDir -ErrorAction SilentlyContinue } + + It 'ingests a valid baseline' { + @{ _metadata = @{ endpoint = 'ListX' }; shape = @{ id = 'string' } } | ConvertTo-Json -Depth 10 | + Set-Content (Join-Path $script:ShapesDir 'ListX.json') + $map = Get-ShapeBaselineMap -ShapesDir $script:ShapesDir + $map.ContainsKey('ListX') | Should -BeTrue + } + + It 'skips a file that lacks _metadata/shape (e.g. test-results.json)' { + @{ results = @(@{ status = 'PASS' }) } | ConvertTo-Json -Depth 10 | + Set-Content (Join-Path $script:ShapesDir 'test-results.json') + $map = Get-ShapeBaselineMap -ShapesDir $script:ShapesDir + $map.Count | Should -Be 0 + } + + It 'returns empty for a missing directory without throwing' { + $map = Get-ShapeBaselineMap -ShapesDir (Join-Path $script:ShapesDir 'does-not-exist') + $map.Count | Should -Be 0 + } +} + +Describe 'Get-FrontendColumnMap - parsing sad paths' { + BeforeEach { + $script:SrcDir = Join-Path ([System.IO.Path]::GetTempPath()) ("hermes-src-" + [guid]::NewGuid()) + New-Item -ItemType Directory -Path $script:SrcDir -Force | Out-Null + } + AfterEach { Remove-Item -Recurse -Force $script:SrcDir -ErrorAction SilentlyContinue } + + It 'extracts columns paired with an api endpoint' { + Set-Content (Join-Path $script:SrcDir 'page.jsx') @' +const simpleColumns = ["displayName", "mail"]; + +'@ + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map['ListMailboxes'] | Should -Contain 'displayName' + $map['ListMailboxes'] | Should -Contain 'mail' + } + + It 'handles mixed single and double quotes in the column array' { + Set-Content (Join-Path $script:SrcDir 'page.jsx') @' +const simpleColumns = ['mail', "displayName"]; +apiUrl="/api/ListThings" +'@ + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map['ListThings'].Count | Should -Be 2 + } + + It 'handles JSX simpleColumns arrays split after the opening brace' { + Set-Content (Join-Path $script:SrcDir 'page.jsx') @' + +'@ + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map['ListSplit'] | Should -Contain 'displayName' + $map['ListSplit'] | Should -Contain 'mail' + } + + + + It 'does not leak scalar ternary branch strings near simpleColumns' { + Set-Content (Join-Path $script:SrcDir 'page.jsx') @' +const statusLabel = enabled ? "yes" : "no"; +const simpleColumns = ["displayName", "mail"]; +apiUrl="/api/ListTernarySafe" +'@ + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map['ListTernarySafe'] | Should -Contain 'displayName' + $map['ListTernarySafe'] | Should -Contain 'mail' + $map['ListTernarySafe'] | Should -Not -Contain 'yes' + $map['ListTernarySafe'] | Should -Not -Contain 'no' + } + + It 'does not capture branch strings when simpleColumns is a ternary of arrays' { + # This lightweight parser only accepts direct array literals. Conditional + # simpleColumns values are ignored rather than risking scalar branch leaks. + Set-Content (Join-Path $script:SrcDir 'page.jsx') @' +const simpleColumns = hasScope + ? ['RowKey', 'Value', 'Description'] + : ['RowKey', 'Value', 'Description', 'Scope']; +const label = hasScope ? "yes" : "no"; +apiUrl="/api/ListCustomVariables" +'@ + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map.ContainsKey('ListCustomVariables') | Should -BeFalse + foreach ($columns in $map.Values) { + $columns | Should -Not -Contain 'yes' + $columns | Should -Not -Contain 'no' + } + } + + It 'ignores a file with simpleColumns but no api endpoint' { + Set-Content (Join-Path $script:SrcDir 'page.jsx') 'const simpleColumns = ["x"];' + $map = Get-FrontendColumnMap -SrcDir $script:SrcDir + $map.Count | Should -Be 0 + } + + It 'does not crash on an empty file' { + Set-Content (Join-Path $script:SrcDir 'empty.jsx') '' + { Get-FrontendColumnMap -SrcDir $script:SrcDir } | Should -Not -Throw + } + + It 'returns empty for a missing src directory without throwing' { + $map = Get-FrontendColumnMap -SrcDir (Join-Path $script:SrcDir 'nope') + $map.Count | Should -Be 0 + } +} + +Describe 'Add-CippResponseSchema - end to end on a temp spec' { + It 'throws when the input spec does not exist' { + { Add-CippResponseSchema -InputSpec 'X:\nope.json' -OutputSpec 'X:\out.json' -FrontendRepoPath '.' } | + Should -Throw '*not found*' + } + + It 'throws when the input spec contains malformed JSON' { + $tmp = Join-Path ([System.IO.Path]::GetTempPath()) ("hermes-bad-json-" + [guid]::NewGuid()) + New-Item -ItemType Directory -Path (Join-Path $tmp 'Tests' 'Shapes') -Force | Out-Null + New-Item -ItemType Directory -Path (Join-Path $tmp 'src') -Force | Out-Null + $specPath = Join-Path $tmp 'openapi.json' + $outPath = Join-Path $tmp 'out.json' + Set-Content -LiteralPath $specPath -Value '{ "openapi": "3.1.0", "paths": ' + + { Add-CippResponseSchema -InputSpec $specPath -OutputSpec $outPath -FrontendRepoPath $tmp } | + Should -Throw + + Remove-Item -Recurse -Force $tmp -ErrorAction SilentlyContinue + } + + It 'reads, enriches, and writes a real file round-trip' { + $tmp = Join-Path ([System.IO.Path]::GetTempPath()) ("hermes-e2e-" + [guid]::NewGuid()) + New-Item -ItemType Directory -Path $tmp | Out-Null + New-Item -ItemType Directory -Path (Join-Path $tmp 'Tests' 'Shapes') -Force | Out-Null + New-Item -ItemType Directory -Path (Join-Path $tmp 'src') -Force | Out-Null + @{ _metadata = @{ endpoint = 'ListThings' }; shape = @{ id = 'string' } } | ConvertTo-Json -Depth 10 | + Set-Content (Join-Path $tmp 'Tests' 'Shapes' 'ListThings.json') + $specPath = Join-Path $tmp 'openapi.json' + $outPath = Join-Path $tmp 'out.json' + Get-TestSpec -Paths @{ '/api/ListThings' = @{ get = (Get-Operation) } } | ConvertTo-Json -Depth 100 | + Set-Content $specPath + + Add-CippResponseSchema -InputSpec $specPath -OutputSpec $outPath -FrontendRepoPath $tmp | Out-Null + $out = Get-Content $outPath -Raw | ConvertFrom-Json -AsHashtable -Depth 100 + $out['paths']['/api/ListThings']['get']['responses']['200']['content']['application/json']['schema'].properties.Results.items.properties.id.type | + Should -Be 'string' + $out['paths']['/api/ListThings']['get']['operationId'] | Should -Be 'ListThings' + + Remove-Item -Recurse -Force $tmp -ErrorAction SilentlyContinue + } + + It 'is byte-identical when run twice on the same sources (file-level idempotency)' { + $tmp = Join-Path ([System.IO.Path]::GetTempPath()) ("hermes-idem-" + [guid]::NewGuid()) + New-Item -ItemType Directory -Path (Join-Path $tmp 'Tests' 'Shapes') -Force | Out-Null + New-Item -ItemType Directory -Path (Join-Path $tmp 'src') -Force | Out-Null + @{ _metadata = @{ endpoint = 'ListThings' }; shape = @{ id = 'string'; when = 'datetime' } } | ConvertTo-Json -Depth 10 | + Set-Content (Join-Path $tmp 'Tests' 'Shapes' 'ListThings.json') + $specPath = Join-Path $tmp 'openapi.json' + Get-TestSpec -Paths @{ '/api/ListThings' = @{ get = (Get-Operation) } } | ConvertTo-Json -Depth 100 | + Set-Content $specPath + + $out1 = Join-Path $tmp 'o1.json' + $out2 = Join-Path $tmp 'o2.json' + Add-CippResponseSchema -InputSpec $specPath -OutputSpec $out1 -FrontendRepoPath $tmp | Out-Null + Add-CippResponseSchema -InputSpec $out1 -OutputSpec $out2 -FrontendRepoPath $tmp | Out-Null + (Get-Content $out2 -Raw) | Should -Be (Get-Content $out1 -Raw) + + Remove-Item -Recurse -Force $tmp -ErrorAction SilentlyContinue + } +} diff --git a/Tests/Build/Build-FunctionParameters.Tests.ps1 b/Tests/Build/Build-FunctionParameters.Tests.ps1 new file mode 100644 index 0000000000000..f673b4a6c02f7 --- /dev/null +++ b/Tests/Build/Build-FunctionParameters.Tests.ps1 @@ -0,0 +1,132 @@ +# Pester tests for build/tools/build-function-parameters.ps1 +# Generates a fixture module, runs the generator, dot-sources the same fixture and +# asserts the synthesized synopses match live Get-Help byte for byte. Covers the +# constructs that broke earlier revisions: mixed explicit positions, named parameter +# sets, ghost default sets, positioned switches, non-$true mandatory literals. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $GeneratorPath = Join-Path (Split-Path -Parent $RepoRoot) 'build/tools/build-function-parameters.ps1' + if (-not (Test-Path $GeneratorPath)) { throw "Could not locate build-function-parameters.ps1 at $GeneratorPath" } + + $FixtureRoot = Join-Path $TestDrive 'FixtureModule' + $PublicDir = Join-Path $FixtureRoot 'Public' + $null = New-Item -ItemType Directory -Path $PublicDir -Force + + $FixtureSource = @' +function Test-AutoPositional { + param($User, [string]$Name, [switch]$Force) +} +function Test-MandatoryForms { + param( + [Parameter(Mandatory)][string]$FlagForm, + [Parameter(Mandatory = $true)]$ExplicitTrue, + [Parameter(Mandatory = 1)][string]$NumericTrue, + [Parameter(Mandatory = $false)]$ExplicitFalse + ) +} +function Test-MixedPositions { + [CmdletBinding()] + param( + [Parameter(Position = 1)][string]$Second, + [Parameter(Position = 0)][string]$First, + [Parameter()][string]$Named + ) +} +function Test-NamedSets { + [CmdletBinding()] + param( + [Parameter(ParameterSetName = 'Single', Mandatory)][string]$UserId, + [Parameter(ParameterSetName = 'Single')][string]$Nickname, + [Parameter(ParameterSetName = 'Bulk', Mandatory)][System.Collections.Generic.List[object]]$Requests, + [Parameter(Mandatory)][string]$TenantFilter, + $Headers + ) +} +function Test-SwitchInNamedSet { + [CmdletBinding()] + param( + [Parameter(ParameterSetName = 'A')][switch]$Sw, + [Parameter(ParameterSetName = 'A')][string]$S + ) +} +function Test-PositionedSwitch { + [CmdletBinding()] + param( + [Parameter(Position = 0)][switch]$Sw, + [Parameter(Position = 1)][string]$Str + ) +} +function Test-GhostDefault { + [CmdletBinding(DefaultParameterSetName = 'Nope')] + param( + [Parameter(ParameterSetName = 'A')][string]$X, + [Parameter(ParameterSetName = 'B')][string]$Y + ) +} +function Test-ShouldProcess { + [CmdletBinding(SupportsShouldProcess = $true)] + param([string]$Target) +} +function Test-WithCommentHelp { + <# + .SYNOPSIS + a real synopsis + .FUNCTIONALITY + Internal + .PARAMETER Thing + the thing + #> + param([string]$Thing) +} +'@ + Set-Content -Path (Join-Path $PublicDir 'fixtures.ps1') -Value $FixtureSource + + $OutputPath = Join-Path $TestDrive 'out.json' + & $GeneratorPath -ModulePath $FixtureRoot -OutputPath $OutputPath | Out-Null + $script:Generated = Get-Content $OutputPath -Raw | ConvertFrom-Json -AsHashtable + + # same definitions live in the session so Get-Help renders its real synopses + . (Join-Path $PublicDir 'fixtures.ps1') + + $script:NoHelpFunctions = @( + 'Test-AutoPositional', 'Test-MandatoryForms', 'Test-MixedPositions', 'Test-NamedSets', + 'Test-SwitchInNamedSet', 'Test-PositionedSwitch', 'Test-GhostDefault', 'Test-ShouldProcess' + ) +} + +Describe 'build-function-parameters generator' { + It 'synthesizes a synopsis byte-identical to Get-Help for <_>' -ForEach @( + 'Test-AutoPositional', 'Test-MandatoryForms', 'Test-MixedPositions', 'Test-NamedSets', + 'Test-SwitchInNamedSet', 'Test-PositionedSwitch', 'Test-GhostDefault', 'Test-ShouldProcess' + ) { + $expected = (Get-Help $_).Synopsis.Trim() + # Get-Help joins multi-set blocks with the platform newline; the cache pins CRLF + $normalizedGenerated = $script:Generated[$_]['Synopsis'] -replace "`r`n", "`n" + $normalizedExpected = $expected -replace "`r`n", "`n" + $normalizedGenerated | Should -BeExactly $normalizedExpected + } + + It 'extracts comment-based help instead of synthesizing' { + $script:Generated['Test-WithCommentHelp']['Synopsis'] | Should -Be 'a real synopsis' + $script:Generated['Test-WithCommentHelp']['Functionality'] | Should -Be 'Internal' + ($script:Generated['Test-WithCommentHelp']['Parameters'] | Where-Object { $_['Name'] -eq 'Thing' })['Description'] | Should -Be 'the thing' + } + + It 'marks non-$true mandatory literals as required' { + $params = @{} + foreach ($p in $script:Generated['Test-MandatoryForms']['Parameters']) { $params[$p['Name']] = $p['Required'] } + $params['FlagForm'] | Should -BeTrue + $params['ExplicitTrue'] | Should -BeTrue + $params['NumericTrue'] | Should -BeTrue + $params['ExplicitFalse'] | Should -BeFalse + } + + It 'fails the build when a source file cannot be parsed' { + $brokenRoot = Join-Path $TestDrive 'BrokenModule' + $null = New-Item -ItemType Directory -Path (Join-Path $brokenRoot 'Public') -Force + Set-Content -Path (Join-Path $brokenRoot 'Public/ok.ps1') -Value 'function Get-Ok { param($A) }' + Set-Content -Path (Join-Path $brokenRoot 'Public/broken.ps1') -Value 'function Get-Broken {{{' + { & $GeneratorPath -ModulePath $brokenRoot -OutputPath (Join-Path $TestDrive 'broken-out.json') } | Should -Throw '*failed to parse*' + } +} diff --git a/Tests/Build/Invoke-BuildTests.ps1 b/Tests/Build/Invoke-BuildTests.ps1 new file mode 100644 index 0000000000000..5c7b7f96b8fd4 --- /dev/null +++ b/Tests/Build/Invoke-BuildTests.ps1 @@ -0,0 +1,46 @@ +#Requires -Version 7.0 +<# +.SYNOPSIS + Runs static analysis and the OpenAPI response schema Pester suite. + +.DESCRIPTION + Conventional one-command verification for the response schema build stage. + Checks PSScriptAnalyzer warning and error findings for the stage script and + its tests, then runs the focused Pester 5 suite. Exits non-zero on failure. +#> +[CmdletBinding()] +param() + +$ErrorActionPreference = 'Stop' + +$repoRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot) +$scriptPath = Join-Path $repoRoot '.build' 'Add-OpenApiResponseSchemas.ps1' +$testPath = Join-Path $PSScriptRoot 'Add-OpenApiResponseSchemas.Tests.ps1' + +Write-Information 'Running PSScriptAnalyzer...' -InformationAction Continue +$analysisFindings = @( + foreach ($path in @($scriptPath, $testPath)) { + Invoke-ScriptAnalyzer -Path $path -Severity Warning, Error + } +) + +if ($analysisFindings.Count -gt 0) { + $analysisFindings | Format-Table -AutoSize | Out-String | Write-Information -InformationAction Continue +} + +Write-Information "PSScriptAnalyzer Warning/Error findings: $($analysisFindings.Count)" -InformationAction Continue + +Write-Information 'Running Pester...' -InformationAction Continue +$pesterConfig = New-PesterConfiguration +$pesterConfig.Run.Path = $testPath +$pesterConfig.Run.PassThru = $true +$pesterConfig.Run.Exit = $false +$pesterConfig.Output.Verbosity = 'Detailed' + +$pesterResult = Invoke-Pester -Configuration $pesterConfig + +Write-Information "Pester: Passed=$($pesterResult.PassedCount) Failed=$($pesterResult.FailedCount) Skipped=$($pesterResult.SkippedCount)" -InformationAction Continue + +if ($analysisFindings.Count -gt 0 -or $pesterResult.FailedCount -gt 0) { + exit 1 +} diff --git a/Tests/Endpoint/Invoke-AddIntuneReusableSetting.Tests.ps1 b/Tests/Endpoint/Invoke-AddIntuneReusableSetting.Tests.ps1 index 555008547f998..4d926187dfaf3 100644 --- a/Tests/Endpoint/Invoke-AddIntuneReusableSetting.Tests.ps1 +++ b/Tests/Endpoint/Invoke-AddIntuneReusableSetting.Tests.ps1 @@ -3,7 +3,10 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneReusableSetting.ps1' + # Resolve by name under Modules/ so the test survives the function moving between modules. + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-AddIntuneReusableSetting.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-AddIntuneReusableSetting.ps1 under Modules/' } class HttpResponseContext { [int]$StatusCode diff --git a/Tests/Endpoint/Invoke-AddIntuneReusableSettingTemplate.Tests.ps1 b/Tests/Endpoint/Invoke-AddIntuneReusableSettingTemplate.Tests.ps1 index d29a4530611fb..7889fc9ffbd88 100644 --- a/Tests/Endpoint/Invoke-AddIntuneReusableSettingTemplate.Tests.ps1 +++ b/Tests/Endpoint/Invoke-AddIntuneReusableSettingTemplate.Tests.ps1 @@ -3,8 +3,14 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-AddIntuneReusableSettingTemplate.ps1' - $MetadataPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Remove-CIPPReusableSettingMetadata.ps1' + # Resolve by name under Modules/ so the tests survive functions moving between modules. + $ModulesRoot = Join-Path $RepoRoot 'Modules' + $FunctionPath = Get-ChildItem -Path $ModulesRoot -Recurse -Filter 'Invoke-AddIntuneReusableSettingTemplate.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-AddIntuneReusableSettingTemplate.ps1 under Modules/' } + $MetadataPath = Get-ChildItem -Path $ModulesRoot -Recurse -Filter 'Remove-CIPPReusableSettingMetadata.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $MetadataPath) { throw 'Could not locate Remove-CIPPReusableSettingMetadata.ps1 under Modules/' } class HttpResponseContext { [int]$StatusCode diff --git a/Tests/Endpoint/Invoke-EditUser.Tests.ps1 b/Tests/Endpoint/Invoke-EditUser.Tests.ps1 new file mode 100644 index 0000000000000..6681b230f4f53 --- /dev/null +++ b/Tests/Endpoint/Invoke-EditUser.Tests.ps1 @@ -0,0 +1,118 @@ +# Pester tests for Invoke-EditUser +# Validates the clear-vs-omit behaviour of the user PATCH body: +# a profile field present in the request (even as null) is forwarded to Graph as a clear, +# while an omitted field is left untouched. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1' + $CorePath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Set-CIPPUser.ps1' + + class HttpResponseContext { + [object]$StatusCode + [object]$Body + } + # The Functions worker exposes [HttpStatusCode]; map it for standalone test runs. + $Accelerators = [PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators') + if (-not ('HttpStatusCode' -as [type])) { + $Accelerators::Add('HttpStatusCode', [System.Net.HttpStatusCode]) + } + + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) } + function Get-CippException { param($Exception) $Exception } + # Capture the body of the user PATCH (first call; password reset is a separate call we don't trigger) + function New-GraphPostRequest { + param($uri, $tenantid, $type, $body, [switch]$verbose) + if ($null -eq $script:lastBody) { $script:lastBody = $body } + } + function Add-CIPPScheduledTask { + param($Task, $hidden, $DisallowDuplicateName, $Headers) + $script:lastScheduledTask = $Task + } + + function New-EditRequest { + param([hashtable]$Extra) + $body = [pscustomobject]@{ + id = '11111111-1111-1111-1111-111111111111' + tenantFilter = 'contoso.onmicrosoft.com' + username = 'jdoe' + Domain = 'contoso.com' + displayName = 'John Doe' + } + foreach ($key in $Extra.Keys) { + $body | Add-Member -NotePropertyName $key -NotePropertyValue $Extra[$key] -Force + } + [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'EditUser' } + Headers = @{} + Body = $body + } + } + + . $CorePath + . $FunctionPath +} + +Describe 'Invoke-EditUser body construction' { + BeforeEach { + $script:lastBody = $null + } + + It 'clears a field listed in clearProperties' { + $request = New-EditRequest -Extra @{ clearProperties = @('jobTitle') } + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -Match '"jobTitle":null' + } + + It 'omits a field that was neither sent nor listed for clearing' { + $request = New-EditRequest -Extra @{} + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -Not -Match 'jobTitle' + } + + It 'sends a provided value unchanged' { + $request = New-EditRequest -Extra @{ jobTitle = 'Manager' } + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -Match '"jobTitle":"Manager"' + } + + It 'clears a collection field with an empty array' { + $request = New-EditRequest -Extra @{ clearProperties = @('otherMails') } + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -Match '"otherMails":\[\]' + } + + It 'never clears displayName even when listed (Graph rejects it)' { + $request = New-EditRequest -Extra @{ clearProperties = @('displayName') } + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -Not -Match '"displayName":(null|"")' + } +} + +Describe 'Invoke-EditUser scheduling' { + BeforeEach { + $script:lastBody = $null + $script:lastScheduledTask = $null + } + + It 'schedules a Set-CIPPUser task instead of editing immediately when Scheduled.Enabled is set' { + $request = New-EditRequest -Extra @{ Scheduled = @{ Enabled = $true; date = 1234567890 } } + + $null = Invoke-EditUser -Request $request -TriggerMetadata $null + + $script:lastBody | Should -BeNullOrEmpty + $script:lastScheduledTask.Command.value | Should -Be 'Set-CIPPUser' + $script:lastScheduledTask.Parameters.UserObj.id | Should -Be $request.Body.id + $script:lastScheduledTask.ScheduledTime | Should -Be 1234567890 + } +} diff --git a/Tests/Endpoint/Invoke-ExecAssignApp.Tests.ps1 b/Tests/Endpoint/Invoke-ExecAssignApp.Tests.ps1 new file mode 100644 index 0000000000000..306807a4565ca --- /dev/null +++ b/Tests/Endpoint/Invoke-ExecAssignApp.Tests.ps1 @@ -0,0 +1,66 @@ +# Pester tests for Invoke-ExecAssignApp assignment mode defaults. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ExecAssignApp.ps1' -File | + Select-Object -First 1 -ExpandProperty FullName + + ([PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')).GetMethod('Add').Invoke( + $null, @('HttpStatusCode', [System.Net.HttpStatusCode])) + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + function Set-CIPPAssignedApplication { param($ApplicationId, $TenantFilter, $Intent, $APIName, $Headers, $GroupName, $AssignmentMode) } + + . $FunctionPath +} + +Describe 'Invoke-ExecAssignApp assignment mode' { + BeforeEach { + $script:assignmentMode = $null + Mock -CommandName Set-CIPPAssignedApplication -MockWith { + $script:assignmentMode = $AssignmentMode + } + } + + It 'defaults omitted assignment mode to append' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecAssignApp' } + Headers = @{} + Query = [pscustomobject]@{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'app-1' + AppType = 'Win32Lob' + AssignTo = 'AllDevices' + } + } + + $response = Invoke-ExecAssignApp -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $script:assignmentMode | Should -Be 'append' + } + + It 'preserves explicit replace mode' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecAssignApp' } + Headers = @{} + Query = [pscustomobject]@{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'app-1' + AppType = 'Win32Lob' + AssignTo = 'AllDevices' + assignmentMode = 'replace' + } + } + + $null = Invoke-ExecAssignApp -Request $request -TriggerMetadata $null + + $script:assignmentMode | Should -Be 'replace' + } +} diff --git a/Tests/Endpoint/Invoke-ExecAssignPolicy.Tests.ps1 b/Tests/Endpoint/Invoke-ExecAssignPolicy.Tests.ps1 new file mode 100644 index 0000000000000..e600ac0dd7825 --- /dev/null +++ b/Tests/Endpoint/Invoke-ExecAssignPolicy.Tests.ps1 @@ -0,0 +1,64 @@ +# Pester tests for Invoke-ExecAssignPolicy assignment mode defaults. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ExecAssignPolicy.ps1' -File | + Select-Object -First 1 -ExpandProperty FullName + + ([PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')).GetMethod('Add').Invoke( + $null, @('HttpStatusCode', [System.Net.HttpStatusCode])) + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + function Set-CIPPAssignedPolicy { param($PolicyId, $TenantFilter, $GroupName, $Type, $Headers, $AssignmentMode) } + + . $FunctionPath +} + +Describe 'Invoke-ExecAssignPolicy assignment mode' { + BeforeEach { + $script:assignmentMode = $null + Mock -CommandName Set-CIPPAssignedPolicy -MockWith { + $script:assignmentMode = $AssignmentMode + } + } + + It 'defaults omitted assignment mode to append' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecAssignPolicy' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'policy-1' + Type = 'configurationPolicies' + AssignTo = 'AllDevices' + } + } + + $response = Invoke-ExecAssignPolicy -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $script:assignmentMode | Should -Be 'append' + } + + It 'preserves explicit replace mode' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecAssignPolicy' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'policy-1' + Type = 'configurationPolicies' + AssignTo = 'AllDevices' + assignmentMode = 'replace' + } + } + + $null = Invoke-ExecAssignPolicy -Request $request -TriggerMetadata $null + + $script:assignmentMode | Should -Be 'replace' + } +} diff --git a/Tests/Endpoint/Invoke-ExecEditMailboxPermissions.Tests.ps1 b/Tests/Endpoint/Invoke-ExecEditMailboxPermissions.Tests.ps1 new file mode 100644 index 0000000000000..f223485d6c55e --- /dev/null +++ b/Tests/Endpoint/Invoke-ExecEditMailboxPermissions.Tests.ps1 @@ -0,0 +1,127 @@ +# Pester tests for Invoke-ExecEditMailboxPermissions +# The endpoint now delegates every request bucket (RemoveFullAccess / AddFullAccess / +# AddFullAccessNoAutoMap / AddSendAs / RemoveSendAs / AddSendOnBehalf / RemoveSendOnBehalf) to +# Set-CIPPMailboxPermission, so these tests assert each bucket maps to the right +# PermissionLevel / Action / AutoMap. The EXO cmdlet mapping, logging, and cache sync are the +# delegate's responsibility and are covered by Set-CIPPMailboxPermission.Tests.ps1. +# +# NOTE: the early `if ($username -eq $null) { exit }` guard is deliberately NOT exercised - `exit` +# inside a dot-sourced function terminates the Pester runspace, so it cannot be tested in-process. +# Every test below supplies a userID. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ExecEditMailboxPermissions.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-ExecEditMailboxPermissions.ps1 under Modules/' } + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + # The function uses the short [HttpStatusCode] (the Functions host supplies `using namespace + # System.Net`). Register a type accelerator so it resolves when the function is dot-sourced here. + $TypeAccelerators = [PowerShell].Assembly.GetType('System.Management.Automation.TypeAccelerators') + if (-not ([System.Management.Automation.PSTypeName]'HttpStatusCode').Type) { + $TypeAccelerators::Add('HttpStatusCode', [System.Net.HttpStatusCode]) + } + + function Set-CIPPMailboxPermission { param($UserId, $AccessUser, $PermissionLevel, $Action, $AutoMap, $TenantFilter, $APIName, $Headers) } + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) } + + . $FunctionPath + + # Build a request whose body carries a single bucket of delegates (mirrors the frontend's + # { value = @(...) } shape that the function reads via ($Request.body.).value). + function New-EditRequest { + param([string]$Bucket, [string[]]$Users, [string]$UserID = 'shared@contoso.com') + $body = [pscustomobject]@{ userID = $UserID; tenantfilter = 'contoso.com' } + $body | Add-Member -NotePropertyName $Bucket -NotePropertyValue ([pscustomobject]@{ value = $Users }) + [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecEditMailboxPermissions' } + Headers = @{ Authorization = 'token' } + Body = $body + } + } +} + +Describe 'Invoke-ExecEditMailboxPermissions' { + BeforeEach { + Mock -CommandName Set-CIPPMailboxPermission -MockWith { "$Action $PermissionLevel for $AccessUser" } + Mock -CommandName Write-LogMessage -MockWith { } + } + + It 'returns OK and passes the mailbox UPN through as the identity' { + $response = Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddFullAccess' -Users @('user@contoso.com')) -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $UserId -eq 'shared@contoso.com' -and $TenantFilter -eq 'contoso.com' } + } + + It 'RemoveFullAccess -> FullAccess / Remove' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'RemoveFullAccess' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { + $PermissionLevel -eq 'FullAccess' -and $Action -eq 'Remove' -and $AccessUser -eq 'user@contoso.com' + } + } + + It 'AddFullAccess -> FullAccess / Add with AutoMap $true' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddFullAccess' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { + $PermissionLevel -eq 'FullAccess' -and $Action -eq 'Add' -and $AutoMap -eq $true + } + } + + It 'AddFullAccessNoAutoMap -> FullAccess / Add with AutoMap $false' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddFullAccessNoAutoMap' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { + $PermissionLevel -eq 'FullAccess' -and $Action -eq 'Add' -and $AutoMap -eq $false + } + } + + It 'AddSendAs -> SendAs / Add' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddSendAs' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $PermissionLevel -eq 'SendAs' -and $Action -eq 'Add' } + } + + It 'RemoveSendAs -> SendAs / Remove' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'RemoveSendAs' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $PermissionLevel -eq 'SendAs' -and $Action -eq 'Remove' } + } + + It 'AddSendOnBehalf -> SendOnBehalf / Add' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddSendOnBehalf' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $PermissionLevel -eq 'SendOnBehalf' -and $Action -eq 'Add' } + } + + It 'RemoveSendOnBehalf -> SendOnBehalf / Remove' { + Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'RemoveSendOnBehalf' -Users @('user@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $PermissionLevel -eq 'SendOnBehalf' -and $Action -eq 'Remove' } + } + + It 'processes every user in a multi-user bucket and collects their results' { + $response = Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddSendAs' -Users @('a@contoso.com', 'b@contoso.com')) -TriggerMetadata $null + + Should -Invoke Set-CIPPMailboxPermission -Times 2 -Exactly -ParameterFilter { $PermissionLevel -eq 'SendAs' -and $Action -eq 'Add' } + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $response.Body.Results | Should -Contain 'Add SendAs for a@contoso.com' + $response.Body.Results | Should -Contain 'Add SendAs for b@contoso.com' + } + + It 'surfaces the delegate failure string in Results and still returns OK' { + Mock -CommandName Set-CIPPMailboxPermission -MockWith { 'Failed to Add FullAccess for user@contoso.com on shared@contoso.com: boom' } + + $response = Invoke-ExecEditMailboxPermissions -Request (New-EditRequest -Bucket 'AddFullAccess' -Users @('user@contoso.com')) -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + ($response.Body.Results -join "`n") | Should -Match 'Failed to Add FullAccess for user@contoso.com on shared@contoso.com: boom' + } +} diff --git a/Tests/Endpoint/Invoke-ExecModifyMBPerms.Tests.ps1 b/Tests/Endpoint/Invoke-ExecModifyMBPerms.Tests.ps1 new file mode 100644 index 0000000000000..cf12187b65f0f --- /dev/null +++ b/Tests/Endpoint/Invoke-ExecModifyMBPerms.Tests.ps1 @@ -0,0 +1,368 @@ +# Pester tests for Invoke-ExecModifyMBPerms +# The endpoint delegates the permission-level -> EXO cmdlet/parameter mapping to +# Set-CIPPMailboxPermission (dot-sourced below and called in -AsCmdletObject mode), so these tests +# focus on what the endpoint owns: the single-operation vs bulk (New-ExoBulkRequest + GUID mapping) +# execution paths, the bulk-failure fallback, the three accepted input shapes, the user-lookup +# fallback, and the request guards. The mapping itself is covered by Set-CIPPMailboxPermission.Tests.ps1. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ExecModifyMBPerms.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-ExecModifyMBPerms.ps1 under Modules/' } + + # Dot-source the REAL Set-CIPPMailboxPermission so -AsCmdletObject produces real mappings - the + # endpoint now delegates the level -> cmdlet mapping to it. Its -AsCmdletObject path only builds a + # hashtable and returns early, so none of the EXO / log stubs below are exercised by it. + $PermissionFunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Set-CIPPMailboxPermission.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $PermissionFunctionPath) { throw 'Could not locate Set-CIPPMailboxPermission.ps1 under Modules/' } + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + # The function uses the short [HttpStatusCode]; register a type accelerator so it resolves here. + $TypeAccelerators = [PowerShell].Assembly.GetType('System.Management.Automation.TypeAccelerators') + if (-not ([System.Management.Automation.PSTypeName]'HttpStatusCode').Type) { + $TypeAccelerators::Add('HttpStatusCode', [System.Net.HttpStatusCode]) + } + + function New-GraphGetRequest { param($uri, $tenantid) } + function New-ExoRequest { param($Anchor, $tenantid, $cmdlet, $cmdParams) } + function New-ExoBulkRequest { param($tenantid, $cmdletArray, $ReturnWithCommand) } + function Get-CippException { param($Exception) } + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) } + function Sync-CIPPMailboxPermissionCache { param($TenantFilter, $MailboxIdentity, $User, $PermissionType, $Action) } + + . $PermissionFunctionPath + . $FunctionPath + + # Build a request in the bulk 'mailboxRequests' shape. + function New-ModifyRequest { + param($Mailboxes) + [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecModifyMBPerms' } + Headers = @{ Authorization = 'token' } + Body = [pscustomobject]@{ tenantFilter = 'contoso.com'; mailboxRequests = $Mailboxes } + } + } + + # Build a single mailbox request object with one permission. + function New-Perm { + param($Level, $Modification, $TargetUser = 'user@contoso.com', $AutoMap = $true) + [pscustomobject]@{ + PermissionLevel = $Level + Modification = $Modification + AutoMap = $AutoMap + UserID = @([pscustomobject]@{ value = $TargetUser }) + } + } + function New-Mailbox { + param($UserID = 'shared@contoso.com', $Permissions) + [pscustomobject]@{ userID = $UserID; permissions = $Permissions } + } +} + +Describe 'Invoke-ExecModifyMBPerms' { + BeforeEach { + Mock -CommandName New-GraphGetRequest -MockWith { [pscustomobject]@{ userPrincipalName = 'shared@contoso.com' } } + Mock -CommandName New-ExoRequest -MockWith { } + Mock -CommandName New-ExoBulkRequest -MockWith { + param($tenantid, $cmdletArray, $ReturnWithCommand) + # Echo each operation back as a success keyed by cmdlet name (GUID round-trips so the + # function can map results to its metadata). + $h = @{} + foreach ($c in $cmdletArray) { + $name = $c.CmdletInput.CmdletName + if (-not $h.ContainsKey($name)) { $h[$name] = @() } + $h[$name] += [pscustomobject]@{ OperationGuid = $c.OperationGuid } + } + $h + } + Mock -CommandName Get-CippException -MockWith { [pscustomobject]@{ NormalizedError = 'boom' } } + Mock -CommandName Write-LogMessage -MockWith { } + Mock -CommandName Sync-CIPPMailboxPermissionCache -MockWith { } + } + + Context 'Single-operation execution and per-level mapping' { + It 'FullAccess Add -> individual New-ExoRequest with Add-MailboxPermission' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Add-MailboxPermission' -and $cmdParams.user -eq 'user@contoso.com' -and + $cmdParams.Identity -eq 'shared@contoso.com' -and $cmdParams.automapping -eq $true + } + Should -Invoke New-ExoBulkRequest -Times 0 -Exactly + $response.Body.Results | Should -Contain 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + } + + It 'FullAccess Remove -> Remove-MailboxPermission' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Remove')) + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Remove-MailboxPermission' } + $response.Body.Results | Should -Contain 'Removed user@contoso.com FullAccess from shared@contoso.com' + } + + It 'SendAs Add -> Add-RecipientPermission with Trustee' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'SendAs' -Modification 'Add')) + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Add-RecipientPermission' -and $cmdParams.Trustee -eq 'user@contoso.com' } + } + + It 'SendOnBehalf Add -> Set-Mailbox with GrantSendonBehalfTo add hashtable' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'SendOnBehalf' -Modification 'Add')) + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Set-Mailbox' -and $cmdParams.GrantSendonBehalfTo.add -eq 'user@contoso.com' -and + $cmdParams.GrantSendonBehalfTo['@odata.type'] -eq '#Exchange.GenericHashTable' + } + } + + It 'SendOnBehalf Remove -> Set-Mailbox with GrantSendonBehalfTo remove hashtable' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'SendOnBehalf' -Modification 'Remove')) + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Set-Mailbox' -and $cmdParams.GrantSendonBehalfTo.remove -eq 'user@contoso.com' } + } + + It 'default-level Remove () -> Remove-MailboxPermission with that access right' -ForEach @( + @{ Level = 'ReadPermission' } + @{ Level = 'ExternalAccount' } + @{ Level = 'DeleteItem' } + @{ Level = 'ChangePermission' } + @{ Level = 'ChangeOwner' } + ) { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level $Level -Modification 'Remove')) + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Remove-MailboxPermission' -and $cmdParams.accessRights -contains $Level } + } + + It 'default-level Add produces no cmdlet -> OK with a no-op message' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'ReadPermission' -Modification 'Add')) + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + Should -Invoke New-ExoRequest -Times 0 -Exactly + $response.Body.Results | Should -Contain 'No valid permission changes to process' + } + } + + Context 'Bulk execution path' { + It 'two operations -> New-ExoBulkRequest with GUID-mapped results, no individual calls' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @( + (New-Perm -Level 'FullAccess' -Modification 'Add') + (New-Perm -Level 'SendAs' -Modification 'Add') + )) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke New-ExoBulkRequest -Times 1 -Exactly + Should -Invoke New-ExoRequest -Times 0 -Exactly + $response.Body.Results | Should -Contain 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + $response.Body.Results | Should -Contain 'Granted user@contoso.com SendAs permissions to shared@contoso.com' + } + + It 'maps a per-operation error from the bulk result to an error string' { + Mock -CommandName New-ExoBulkRequest -MockWith { + param($tenantid, $cmdletArray, $ReturnWithCommand) + $h = @{} + foreach ($c in $cmdletArray) { + $name = $c.CmdletInput.CmdletName + if (-not $h.ContainsKey($name)) { $h[$name] = @() } + $h[$name] += [pscustomobject]@{ OperationGuid = $c.OperationGuid; error = 'kaboom' } + } + $h + } + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @( + (New-Perm -Level 'FullAccess' -Modification 'Add') + (New-Perm -Level 'SendAs' -Modification 'Add') + )) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + ($response.Body.Results -join "`n") | Should -Match 'Error processing FullAccess for user@contoso.com on shared@contoso.com: boom' + } + + It 'falls back to individual New-ExoRequest calls when the bulk request throws' { + Mock -CommandName New-ExoBulkRequest -MockWith { throw 'bulk endpoint down' } + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @( + (New-Perm -Level 'FullAccess' -Modification 'Add') + (New-Perm -Level 'SendAs' -Modification 'Add') + )) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke New-ExoRequest -Times 2 -Exactly + $response.Body.Results | Should -Contain 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + } + } + + Context 'Input shapes' { + It 'accepts the legacy single-mailbox format (userID + permissions on the body)' { + $req = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecModifyMBPerms' } + Headers = @{ Authorization = 'token' } + Body = [pscustomobject]@{ + tenantFilter = 'contoso.com' + userID = 'shared@contoso.com' + permissions = @(New-Perm -Level 'FullAccess' -Modification 'Add') + } + } + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Add-MailboxPermission' } + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + } + } + + Context 'User lookup' { + It 'falls back to a userPrincipalName filter query when the direct Graph lookup fails' { + Mock -CommandName New-GraphGetRequest -MockWith { [pscustomobject]@{ value = @([pscustomobject]@{ userPrincipalName = 'shared@contoso.com' }) } } -ParameterFilter { $uri -like '*filter*' } + Mock -CommandName New-GraphGetRequest -MockWith { throw 'direct lookup failed' } + + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke New-GraphGetRequest -ParameterFilter { $uri -like '*filter*' } + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { $cmdlet -eq 'Add-MailboxPermission' } + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + } + + It 'records a "could not find user" message when both lookups fail' { + # Graph fails for 'ghost' on both the direct and filter lookups; a second valid mailbox + # keeps CmdletArray non-empty so the specific message is not discarded by the + # "No valid permission changes" guard (which returns only a generic string). + Mock -CommandName New-GraphGetRequest -MockWith { throw 'not found' } -ParameterFilter { $uri -like '*ghost@contoso.com*' } + + $req = New-ModifyRequest -Mailboxes @( + (New-Mailbox -UserID 'ghost@contoso.com' -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + (New-Mailbox -UserID 'valid@contoso.com' -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + ) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + ($response.Body.Results -join "`n") | Should -Match 'Could not find user ghost@contoso.com' + } + } + + Context 'Cache sync' { + # The endpoint executes cmdlets itself (bypassing Set-CIPPMailboxPermission's execute-mode + # sync), so it must sync the reporting-DB cache for every operation that succeeded. + It 'syncs the cache after a successful single Remove' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Remove')) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { + $TenantFilter -eq 'contoso.com' -and $MailboxIdentity -eq 'shared@contoso.com' -and + $User -eq 'user@contoso.com' -and $PermissionType -eq 'FullAccess' -and $Action -eq 'Remove' + } + } + + It 'syncs with the resolved UPN when the request identifies the mailbox by object id' { + # Cached permission rows are keyed by mailbox UPN, so the sync must use what the + # Graph lookup resolved (BeforeEach mock: shared@contoso.com), not the raw request id. + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -UserID '11111111-2222-3333-4444-555555555555' -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Remove')) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { + $MailboxIdentity -eq 'shared@contoso.com' + } + } + + It 'syncs with Action Add for additions' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'SendAs' -Modification 'Add')) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { + $PermissionType -eq 'SendAs' -and $Action -eq 'Add' + } + } + + It 'syncs every successful operation in a bulk request' { + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @( + (New-Perm -Level 'FullAccess' -Modification 'Remove') + (New-Perm -Level 'SendOnBehalf' -Modification 'Remove') + )) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'FullAccess' } + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'SendOnBehalf' } + } + + It 'does not sync operations that failed in the bulk response' { + # FullAccess Remove (Remove-MailboxPermission) succeeds; SendAs Remove + # (Remove-RecipientPermission) comes back with an error attached. + Mock -CommandName New-ExoBulkRequest -MockWith { + param($tenantid, $cmdletArray, $ReturnWithCommand) + $h = @{} + foreach ($c in $cmdletArray) { + $name = $c.CmdletInput.CmdletName + if (-not $h.ContainsKey($name)) { $h[$name] = @() } + $entry = [pscustomobject]@{ OperationGuid = $c.OperationGuid } + if ($name -eq 'Remove-RecipientPermission') { + $entry | Add-Member -NotePropertyName error -NotePropertyValue 'denied' + } + $h[$name] += $entry + } + $h + } + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @( + (New-Perm -Level 'FullAccess' -Modification 'Remove') + (New-Perm -Level 'SendAs' -Modification 'Remove') + )) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'FullAccess' } + } + + It 'does not sync non-cacheable permission levels' { + # Comma-joined levels are split per operation; ReadPermission executes but has no + # cache representation, so only the FullAccess half syncs. + $req = New-ModifyRequest -Mailboxes @(New-Mailbox -Permissions @(New-Perm -Level 'FullAccess, ReadPermission' -Modification 'Remove')) + + Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'FullAccess' } + } + } + + Context 'Guards' { + It 'returns BadRequest when no mailbox requests are provided' { + $req = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecModifyMBPerms' } + Headers = @{ Authorization = 'token' } + Body = [pscustomobject]@{ tenantFilter = 'contoso.com' } + } + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::BadRequest) + $response.Body.Results | Should -Contain 'No mailbox requests provided' + } + + It 'skips a mailbox request that is missing its userID' { + # A second valid mailbox keeps CmdletArray non-empty so the "Skipped" message survives + # (the empty-array guard would otherwise replace Results with a generic string). + $req = New-ModifyRequest -Mailboxes @( + (New-Mailbox -UserID '' -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + (New-Mailbox -UserID 'valid@contoso.com' -Permissions @(New-Perm -Level 'FullAccess' -Modification 'Add')) + ) + + $response = Invoke-ExecModifyMBPerms -Request $req -TriggerMetadata $null + + Should -Invoke New-ExoRequest -Times 1 -Exactly + ($response.Body.Results -join "`n") | Should -Match 'Skipped mailbox with missing userID' + } + } +} diff --git a/Tests/Endpoint/Invoke-ListFunctionParameters.Tests.ps1 b/Tests/Endpoint/Invoke-ListFunctionParameters.Tests.ps1 new file mode 100644 index 0000000000000..109328c98625b --- /dev/null +++ b/Tests/Endpoint/Invoke-ListFunctionParameters.Tests.ps1 @@ -0,0 +1,163 @@ +# Pester tests for Invoke-ListFunctionParameters +# Validates the pregenerated cache path (Config/function-parameters.json), the guard +# that skips commands outside the pregenerated set (deployed legacy behavior), the +# live Get-Help fallback when no cache exists, and entrypoint filtering. + +BeforeAll { + # Resolve by name under Modules/ so the test survives the function moving between modules. + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ListFunctionParameters.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-ListFunctionParameters.ps1 under Modules/' } + + class HttpResponseContext { + [object]$StatusCode + [object]$Body + } + # The Functions worker exposes [HttpStatusCode]; map it for standalone test runs. + $Accelerators = [PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators') + if (-not ('HttpStatusCode' -as [type])) { + $Accelerators::Add('HttpStatusCode', [System.Net.HttpStatusCode]) + } + + function New-ExoRequest { param($AvailableCmdlets, $tenantid, $NoAuthCheck, $Compliance) } + + # fake FunctionInfo, endpoint reads Name / Visibility / Parameters + function New-FakeFunction { + param($Name) + [pscustomobject]@{ + Name = $Name + Visibility = 'Public' + Parameters = @{ + SomeParam = [pscustomobject]@{ + ParameterType = [pscustomobject]@{ FullName = 'System.String' } + Attributes = @([pscustomobject]@{ Mandatory = $true }) + } + } + } + } + + function New-CacheFile { + param($Root, $Functions) + $configDir = Join-Path $Root 'Config' + $null = New-Item -ItemType Directory -Path $configDir -Force + $Functions | ConvertTo-Json -Depth 8 | Set-Content -Path (Join-Path $configDir 'function-parameters.json') + } + + . $FunctionPath + + # the function also emits $Results to the pipeline before returning the + # response context, the worker keys on the HttpResponseContext object + function Invoke-Endpoint { + param($Request) + Invoke-ListFunctionParameters -Request $Request -TriggerMetadata $null | Where-Object { $_ -is [HttpResponseContext] } | Select-Object -First 1 + } +} + +Describe 'Invoke-ListFunctionParameters' { + BeforeEach { + $global:CIPPFunctionParameters = $null + $script:savedRootPath = $env:CIPPRootPath + + Mock -CommandName Get-Help -MockWith { + [pscustomobject]@{ + Functionality = '' + Synopsis = 'live synopsis' + parameters = [pscustomobject]@{ + parameter = @([pscustomobject]@{ name = 'SomeParam'; description = @([pscustomobject]@{ Text = 'live description' }) }) + } + } + } + } + + AfterEach { + $global:CIPPFunctionParameters = $null + $env:CIPPRootPath = $script:savedRootPath + } + + It 'serves cached functions without calling Get-Help' { + $env:CIPPRootPath = Join-Path $TestDrive 'cached' + New-CacheFile -Root $env:CIPPRootPath -Functions @{ + 'Get-CIPPFoo' = @{ + Functionality = '' + Synopsis = 'cached synopsis' + Parameters = @(@{ Name = 'SomeParam'; Type = 'System.String'; Description = 'cached description'; Required = $true }) + } + } + Mock -CommandName Get-Command -MockWith { @(New-FakeFunction -Name 'Get-CIPPFoo') } + + $request = [pscustomobject]@{ Query = [pscustomobject]@{ Module = 'CIPPCore' } } + $response = Invoke-Endpoint -Request $request + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $response.Body | Should -HaveCount 1 + $response.Body[0].Function | Should -Be 'Get-CIPPFoo' + $response.Body[0].Synopsis | Should -Be 'cached synopsis' + $response.Body[0].Parameters[0].Description | Should -Be 'cached description' + Should -Invoke Get-Help -Times 0 -Exactly + } + + It 'skips functions outside the pregenerated set without calling Get-Help' { + $env:CIPPRootPath = Join-Path $TestDrive 'partial' + New-CacheFile -Root $env:CIPPRootPath -Functions @{ + 'Get-CIPPFoo' = @{ + Functionality = '' + Synopsis = 'cached synopsis' + Parameters = @(@{ Name = 'SomeParam'; Type = 'System.String'; Description = 'cached description'; Required = $true }) + } + } + # cache present -> uncached commands are guard-skipped, never Get-Help'd + # (a bare Get-Command can return every command in the runspace) + Mock -CommandName Get-Command -MockWith { + @((New-FakeFunction -Name 'Get-CIPPFoo'), (New-FakeFunction -Name 'Get-SomeOtherModuleThing')) + } + + $request = [pscustomobject]@{ Query = [pscustomobject]@{ Module = 'CIPPCore' } } + $response = Invoke-Endpoint -Request $request + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $response.Body | Should -HaveCount 1 + $response.Body[0].Function | Should -Be 'Get-CIPPFoo' + Should -Invoke Get-Help -Times 0 -Exactly + } + + It 'uses live Get-Help for everything when no cache file exists' { + $env:CIPPRootPath = Join-Path $TestDrive 'empty' + $null = New-Item -ItemType Directory -Path $env:CIPPRootPath -Force + Mock -CommandName Get-Command -MockWith { + @((New-FakeFunction -Name 'Get-CIPPFoo'), (New-FakeFunction -Name 'Get-CIPPBar')) + } + + $request = [pscustomobject]@{ Query = [pscustomobject]@{ Module = 'CIPPCore' } } + $response = Invoke-Endpoint -Request $request + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $response.Body | Should -HaveCount 2 + Should -Invoke Get-Help -Times 2 -Exactly + } + + It 'filters out entrypoint functions listed in the cache' { + $env:CIPPRootPath = Join-Path $TestDrive 'entrypoints' + New-CacheFile -Root $env:CIPPRootPath -Functions @{ + 'Get-CIPPFoo' = @{ + Functionality = '' + Synopsis = 'cached synopsis' + Parameters = @() + } + 'Invoke-CIPPBar' = @{ + Functionality = 'Entrypoint,AnyTenant' + Synopsis = 'an entrypoint' + Parameters = @() + } + } + Mock -CommandName Get-Command -MockWith { + @((New-FakeFunction -Name 'Get-CIPPFoo'), (New-FakeFunction -Name 'Invoke-CIPPBar')) + } + + $request = [pscustomobject]@{ Query = [pscustomobject]@{ Module = 'CIPPCore' } } + $response = Invoke-Endpoint -Request $request + + $response.Body | Should -HaveCount 1 + $response.Body[0].Function | Should -Be 'Get-CIPPFoo' + } +} diff --git a/Tests/Endpoint/Invoke-ListIntuneReusableSettingTemplates.Tests.ps1 b/Tests/Endpoint/Invoke-ListIntuneReusableSettingTemplates.Tests.ps1 index 3813c7de946b9..095fb82996528 100644 --- a/Tests/Endpoint/Invoke-ListIntuneReusableSettingTemplates.Tests.ps1 +++ b/Tests/Endpoint/Invoke-ListIntuneReusableSettingTemplates.Tests.ps1 @@ -3,7 +3,10 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneReusableSettingTemplates.ps1' + # Resolve by name under Modules/ so the test survives the function moving between modules. + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ListIntuneReusableSettingTemplates.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-ListIntuneReusableSettingTemplates.ps1 under Modules/' } class HttpResponseContext { [int]$StatusCode diff --git a/Tests/Endpoint/Invoke-ListIntuneReusableSettings.Tests.ps1 b/Tests/Endpoint/Invoke-ListIntuneReusableSettings.Tests.ps1 index 5a66f62a43a44..730b9ee2f4364 100644 --- a/Tests/Endpoint/Invoke-ListIntuneReusableSettings.Tests.ps1 +++ b/Tests/Endpoint/Invoke-ListIntuneReusableSettings.Tests.ps1 @@ -1,66 +1,82 @@ # Pester tests for Invoke-ListIntuneReusableSettings -# Validates listing and filtering of live reusable settings +# Validates listing of live reusable settings, the report-DB branch, and tenant validation. BeforeAll { + # Resolve by name under Modules/ so the test survives the function moving between modules. $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-ListIntuneReusableSettings.ps1' + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-ListIntuneReusableSettings.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-ListIntuneReusableSettings.ps1 under Modules/' } + # Azure Functions binding types do not exist outside the Functions host - fake them. class HttpResponseContext { [int]$StatusCode [object]$Body } - Add-Type -AssemblyName System.Net.Http - - function Write-LogMessage { param($headers, $API, $message, $sev, $LogData) } - function Get-CippException { param($Exception) $Exception } - function New-GraphGETRequest { param($uri, $tenantid) } + # Stub every CIPP helper the function calls so Pester's Mock has a command to replace. + function Get-CippException { param($Exception) @{ NormalizedError = $Exception } } + function Get-CIPPIntuneReusableSettingsReport { param($TenantFilter) } + function New-GraphGetRequest { param($uri, $tenantid) } + function Write-LogMessage { param($headers, $API, $message, $Sev, $LogData) } . $FunctionPath } Describe 'Invoke-ListIntuneReusableSettings' { BeforeEach { - $script:lastUri = $null + $script:logs = @() + Mock -CommandName Write-LogMessage -MockWith { $script:logs += $message } + Mock -CommandName Get-CippException -MockWith { param($Exception) @{ NormalizedError = "$Exception" } } } - It 'returns reusable settings with raw JSON when tenantFilter is provided' { - Mock -CommandName New-GraphGETRequest -MockWith { + It 'returns OK and the live Graph results on the happy path' { + Mock -CommandName New-GraphGetRequest -MockWith { @( - [pscustomobject]@{ id = 'one'; displayName = 'A Item'; description = 'A description'; version = 1 }, - [pscustomobject]@{ id = 'two'; displayName = 'Z Item'; description = 'Z description'; version = 2 } + [pscustomobject]@{ id = 'setting-1'; displayName = 'Reusable A' }, + [pscustomobject]@{ id = 'setting-2'; displayName = 'Reusable B' } ) } - $request = [pscustomobject]@{ query = @{ tenantFilter = 'contoso.onmicrosoft.com' } } + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ListIntuneReusableSettings' } + Headers = @{ Authorization = 'token' } + Query = [pscustomobject]@{ tenantFilter = 'contoso.onmicrosoft.com' } + } + $response = Invoke-ListIntuneReusableSettings -Request $request -TriggerMetadata $null $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) - $response.Body.Count | Should -Be 2 - $response.Body[0].displayName | Should -Be 'A Item' + $response.Body | Should -HaveCount 2 + # The function enriches each item with a compact RawJSON copy. $response.Body[0].RawJSON | Should -Not -BeNullOrEmpty + Should -Invoke New-GraphGetRequest -ParameterFilter { $uri -like '*reusablePolicySettings*' -and $tenantid -eq 'contoso.onmicrosoft.com' } -Times 1 } - It 'requests a specific setting when ID is provided' { - Mock -CommandName New-GraphGETRequest -MockWith { - param($uri, $tenantid) - $script:lastUri = $uri - @([pscustomobject]@{ id = 'beta'; displayName = 'Beta' }) + It 'reads from the reporting DB when UseReportDB is true' { + Mock -CommandName Get-CIPPIntuneReusableSettingsReport -MockWith { + @([pscustomobject]@{ id = 'cached-1'; displayName = 'Cached' }) + } + Mock -CommandName New-GraphGetRequest -MockWith { throw 'live Graph should not be called' } + + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ListIntuneReusableSettings' } + Headers = @{ Authorization = 'token' } + Query = [pscustomobject]@{ tenantFilter = 'contoso.onmicrosoft.com'; UseReportDB = 'true' } } - $request = [pscustomobject]@{ query = @{ tenantFilter = 'contoso.onmicrosoft.com'; ID = 'beta' } } $response = Invoke-ListIntuneReusableSettings -Request $request -TriggerMetadata $null - $lastUri | Should -Match '/reusablePolicySettings/beta' - $response.Body.Count | Should -Be 1 - $response.Body[0].displayName | Should -Be 'Beta' - $response.Body[0].RawJSON | Should -Match '"id":"beta"' + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + Should -Invoke Get-CIPPIntuneReusableSettingsReport -Times 1 + Should -Invoke New-GraphGetRequest -Times 0 } It 'returns BadRequest when tenantFilter is missing' { - $request = [pscustomobject]@{ query = @{} } + $request = [pscustomobject]@{ Body = [pscustomobject]@{} ; Query = [pscustomobject]@{} } $response = Invoke-ListIntuneReusableSettings -Request $request -TriggerMetadata $null $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::BadRequest) + $response.Body.Results | Should -Match 'tenantFilter is required' } } diff --git a/Tests/Endpoint/Invoke-RemoveIntuneReusableSetting.Tests.ps1 b/Tests/Endpoint/Invoke-RemoveIntuneReusableSetting.Tests.ps1 index da1acacfab221..290ab4bb0a710 100644 --- a/Tests/Endpoint/Invoke-RemoveIntuneReusableSetting.Tests.ps1 +++ b/Tests/Endpoint/Invoke-RemoveIntuneReusableSetting.Tests.ps1 @@ -2,8 +2,14 @@ # Validates deletion and required parameters BeforeAll { + # Locate the function by name under Modules/ so the test survives the function being + # moved between modules (it has already moved from CIPPCore to CIPPHTTP once). $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneReusableSetting.ps1' + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-RemoveIntuneReusableSetting.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { + throw 'Could not locate Invoke-RemoveIntuneReusableSetting.ps1 under Modules/' + } class HttpResponseContext { [int]$StatusCode diff --git a/Tests/Endpoint/Invoke-RemoveIntuneReusableSettingTemplate.Tests.ps1 b/Tests/Endpoint/Invoke-RemoveIntuneReusableSettingTemplate.Tests.ps1 index e39bb1dfa0b7f..0e12a26d892d2 100644 --- a/Tests/Endpoint/Invoke-RemoveIntuneReusableSettingTemplate.Tests.ps1 +++ b/Tests/Endpoint/Invoke-RemoveIntuneReusableSettingTemplate.Tests.ps1 @@ -3,7 +3,10 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Endpoint/MEM/Invoke-RemoveIntuneReusableSettingTemplate.ps1' + # Resolve by name under Modules/ so the test survives the function moving between modules. + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-RemoveIntuneReusableSettingTemplate.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Invoke-RemoveIntuneReusableSettingTemplate.ps1 under Modules/' } class HttpResponseContext { [int]$StatusCode @@ -15,6 +18,8 @@ BeforeAll { function Remove-AzDataTableEntity { param([switch]$Force, $Entity) $script:lastRemoved = $Entity; $script:lastForce = $Force } function Write-LogMessage { param($Headers, $API, $message, $sev, $LogData) $script:logs += $message } function Get-CippException { param($Exception) [pscustomobject]@{ NormalizedError = $Exception } } + # The ID is sanitised for OData before the table lookup; stub it to pass the value through. + function ConvertTo-CIPPODataFilterValue { param($Value, $Type) $Value } . $FunctionPath } diff --git a/Tests/Endpoint/Invoke-RemovePolicy.Tests.ps1 b/Tests/Endpoint/Invoke-RemovePolicy.Tests.ps1 new file mode 100644 index 0000000000000..31a15ccff31ed --- /dev/null +++ b/Tests/Endpoint/Invoke-RemovePolicy.Tests.ps1 @@ -0,0 +1,83 @@ +# Pester tests for Invoke-RemovePolicy Graph URL construction (issue #6384). + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-RemovePolicy.ps1' -File | + Select-Object -First 1 -ExpandProperty FullName + + ([PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')).GetMethod('Add').Invoke( + $null, @('HttpStatusCode', [System.Net.HttpStatusCode])) + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + function New-GraphPostRequest { param($uri, $type, $tenant) } + function Write-LogMessage { param($headers, $API, $message, $Sev, $tenant, $LogData) } + function Get-CippException { param($Exception) } + + . $FunctionPath +} + +Describe 'Invoke-RemovePolicy Graph URL' { + BeforeEach { + $script:deleteUri = $null + Mock -CommandName New-GraphPostRequest -MockWith { + $script:deleteUri = $uri + } + Mock -CommandName Write-LogMessage -MockWith {} + } + + It 'maps singular app protection URLNames to the plural deviceAppManagement segment' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'RemovePolicy' } + Headers = @{} + Query = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'T_policy-1' + URLName = 'androidManagedAppProtection' + } + Body = [pscustomobject]@{} + } + + $response = Invoke-RemovePolicy -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $script:deleteUri | Should -Be "https://graph.microsoft.com/beta/deviceAppManagement/androidManagedAppProtections('T_policy-1')" + } + + It 'keeps mobileAppConfigurations under deviceAppManagement' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'RemovePolicy' } + Headers = @{} + Query = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'config-1' + URLName = 'mobileAppConfigurations' + } + Body = [pscustomobject]@{} + } + + $null = Invoke-RemovePolicy -Request $request -TriggerMetadata $null + + $script:deleteUri | Should -Be "https://graph.microsoft.com/beta/deviceAppManagement/mobileAppConfigurations('config-1')" + } + + It 'defaults other URLNames to deviceManagement' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'RemovePolicy' } + Headers = @{} + Query = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + ID = 'policy-2' + URLName = 'deviceConfigurations' + } + Body = [pscustomobject]@{} + } + + $null = Invoke-RemovePolicy -Request $request -TriggerMetadata $null + + $script:deleteUri | Should -Be "https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations('policy-2')" + } +} diff --git a/Tests/Invoke-CippTests.ps1 b/Tests/Invoke-CippTests.ps1 new file mode 100644 index 0000000000000..e6c672ee710f6 --- /dev/null +++ b/Tests/Invoke-CippTests.ps1 @@ -0,0 +1,101 @@ +#Requires -Version 7.0 +<# +.SYNOPSIS + Runs the CIPP-API Pester test suite. + +.DESCRIPTION + Thin, opinionated wrapper around Pester 5 so the backend tests can be run with a + single command regardless of the caller's current directory. Pester only discovers + files named '*.Tests.ps1', so the non-Pester helper scripts that also live under + Tests/ (Test-ODataFilterInjection.ps1, Test-SchedulerBlocklist.ps1) are ignored + automatically. + +.PARAMETER Path + Limit the run to a specific test file or folder (relative to the repo root or absolute). + Defaults to the entire Tests/ directory. + +.PARAMETER Tag + Only run It/Describe blocks carrying one of these Pester tags. + +.PARAMETER CI + Emit a NUnit result file (Tests/TestResults.xml). Use this from automation / GitHub Actions. + Note: a non-zero exit on failure is the DEFAULT (not gated on -CI) - see -NoExitCode. + +.PARAMETER NoExitCode + Do not set the process exit code from the test result. Use this in an interactive session + where a failing run should not terminate your shell. By default the script exits with the + failed-test count so scripts/agents relying on process status see red as red. + +.PARAMETER Coverage + Also collect code coverage over Modules/**/Public and write Tests/coverage.xml. + +.EXAMPLE + pwsh CIPP-API/Tests/Invoke-CippTests.ps1 + Runs the whole suite with detailed console output. + +.EXAMPLE + pwsh CIPP-API/Tests/Invoke-CippTests.ps1 -Path Tests/Endpoint -CI + Runs only the Endpoint tests and produces a CI result file + exit code. +#> +[CmdletBinding()] +param( + [string[]]$Path, + [string[]]$Tag, + [switch]$CI, + [switch]$NoExitCode, + [switch]$Coverage +) + +$ErrorActionPreference = 'Stop' + +# Tests/ is one level under the repo root. +$TestsRoot = $PSScriptRoot +$RepoRoot = Split-Path -Parent $TestsRoot + +# Pester 5 is required for the Should -Invoke / -ParameterFilter syntax the suite uses. +$pester = Get-Module -ListAvailable -Name Pester | Where-Object { $_.Version -ge [version]'5.0.0' } | Sort-Object Version -Descending | Select-Object -First 1 +if (-not $pester) { + throw "Pester 5+ is required but was not found. Install it with: Install-Module Pester -MinimumVersion 5.0 -Scope CurrentUser" +} +Import-Module $pester -ErrorAction Stop + +# Resolve -Path entries against the repo root when they are not already absolute, +# so callers can pass repo-relative paths like 'Tests/Endpoint' from anywhere. +$runPaths = if ($Path) { + foreach ($p in $Path) { + if ([System.IO.Path]::IsPathRooted($p)) { $p } + elseif (Test-Path -LiteralPath (Join-Path $RepoRoot $p)) { Join-Path $RepoRoot $p } + else { $p } + } +} else { + $TestsRoot +} + +$config = New-PesterConfiguration +$config.Run.Path = $runPaths +$config.Run.PassThru = $true +$config.Output.Verbosity = 'Detailed' + +if ($Tag) { + $config.Filter.Tag = $Tag +} + +if ($CI) { + $config.TestResult.Enabled = $true + $config.TestResult.OutputFormat = 'NUnitXml' + $config.TestResult.OutputPath = Join-Path $TestsRoot 'TestResults.xml' +} + +if ($Coverage) { + $config.CodeCoverage.Enabled = $true + $config.CodeCoverage.Path = Join-Path $RepoRoot 'Modules' + $config.CodeCoverage.OutputPath = Join-Path $TestsRoot 'coverage.xml' +} + +$result = Invoke-Pester -Configuration $config + +# Surface a real exit code by default so agents / pipelines that key off process status +# see a red suite as red. -NoExitCode opts out for interactive shells. +if (-not $NoExitCode) { + exit $result.FailedCount +} diff --git a/Tests/New-CippTest.ps1 b/Tests/New-CippTest.ps1 new file mode 100644 index 0000000000000..cdfdb80cfe377 --- /dev/null +++ b/Tests/New-CippTest.ps1 @@ -0,0 +1,263 @@ +#Requires -Version 7.0 +<# +.SYNOPSIS + Scaffolds a Pester test for a CIPP-API backend function. + +.DESCRIPTION + Locates a function by name under Modules/, parses it with the PowerShell AST, and + emits a starter .Tests.ps1 under Tests// that already contains: + * a move-resilient path resolver (find the function by filename, never hardcode a module), + * stub functions for every CIPP helper the function calls (so Pester Mock can replace them), + * fake HttpResponseContext / HttpRequestContext classes for HTTP endpoints, + * a Describe block with placeholder It cases (happy path + one per required field), + each marked with # TODO where a human or Claude fills in real assertions. + + It deliberately does NOT try to write meaningful assertions - that requires reading the + function's intent. The goal is to remove the ~30 lines of boilerplate and dependency + guesswork, then hand a runnable skeleton to the author. + +.PARAMETER FunctionName + The function to scaffold a test for, e.g. Invoke-ListIntuneReusableSettings. + +.PARAMETER Force + Overwrite an existing test file. + +.PARAMETER Area + Override the auto-detected Tests/ subfolder (Endpoint, Standards, Alerts, Private). + +.EXAMPLE + pwsh CIPP-API/Tests/New-CippTest.ps1 -FunctionName Invoke-ListIntuneReusableSettings +#> +[CmdletBinding()] +param( + [Parameter(Mandatory)] + [string]$FunctionName, + + [switch]$Force, + + [ValidateSet('Endpoint', 'Standards', 'Alerts', 'Private')] + [string]$Area +) + +$ErrorActionPreference = 'Stop' + +$TestsRoot = $PSScriptRoot +$RepoRoot = Split-Path -Parent $TestsRoot +$ModulesRoot = Join-Path $RepoRoot 'Modules' + +# --- 1. Locate the function file by name (this is what avoids hardcoded, rot-prone paths) --- +$matches = @(Get-ChildItem -Path $ModulesRoot -Recurse -Filter "$FunctionName.ps1" -File -ErrorAction SilentlyContinue) +if ($matches.Count -eq 0) { + throw "No file named '$FunctionName.ps1' found under $ModulesRoot. Check the function name." +} +if ($matches.Count -gt 1) { + $list = ($matches.FullName | ForEach-Object { " $_" }) -join "`n" + throw "Multiple files named '$FunctionName.ps1' found - cannot disambiguate:`n$list" +} +$FunctionFile = $matches[0].FullName + +# --- 2. Parse with the AST --- +$tokens = $null +$parseErrors = $null +$ast = [System.Management.Automation.Language.Parser]::ParseFile($FunctionFile, [ref]$tokens, [ref]$parseErrors) + +$funcAst = $ast.Find({ + param($node) + $node -is [System.Management.Automation.Language.FunctionDefinitionAst] -and $node.Name -eq $FunctionName + }, $true) +if (-not $funcAst) { + throw "File '$FunctionFile' does not define a function called '$FunctionName'." +} + +# Endpoint detection: HTTP entrypoints take $Request and $TriggerMetadata. +$paramNames = @() +if ($funcAst.Body.ParamBlock) { + $paramNames = $funcAst.Body.ParamBlock.Parameters.Name.VariablePath.UserPath +} +$isEndpoint = ($paramNames -contains 'Request' -and $paramNames -contains 'TriggerMetadata') + +# --- 3. Discover called CIPP helpers (to emit as stubbable functions) --- +# Only stub commands that look like CIPP helpers; never stub PowerShell built-ins. +$helperPattern = '(?i)(cipp|graph.*request|azdatatable|write-logmessage|write-alert|write-standardsalert|get-normalizederror)' +$commandAsts = $funcAst.FindAll({ + param($node) $node -is [System.Management.Automation.Language.CommandAst] + }, $true) +$helpers = [System.Collections.Generic.SortedSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) +foreach ($c in $commandAsts) { + $name = $c.GetCommandName() + if ($name -and $name -ne $FunctionName -and $name -match $helperPattern) { + [void]$helpers.Add($name) + } +} + +# --- 4. Discover input fields read from $Request.Body.* / $Request.Query.* --- +# Track which container each field comes from so the happy-path request seeds the right bag. +$bodyFields = [System.Collections.Generic.SortedSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) +$queryFields = [System.Collections.Generic.SortedSet[string]]::new([System.StringComparer]::OrdinalIgnoreCase) +if ($isEndpoint) { + $memberAsts = $funcAst.FindAll({ + param($node) $node -is [System.Management.Automation.Language.MemberExpressionAst] + }, $true) + foreach ($m in $memberAsts) { + $inner = $m.Expression + if ($inner -is [System.Management.Automation.Language.MemberExpressionAst] -and + $inner.Expression -is [System.Management.Automation.Language.VariableExpressionAst] -and + $inner.Expression.VariablePath.UserPath -eq 'Request' -and + $inner.Member.Value -in @('Body', 'Query') -and + $m.Member -is [System.Management.Automation.Language.StringConstantExpressionAst]) { + $field = $m.Member.Value + if ($inner.Member.Value -eq 'Body') { [void]$bodyFields.Add($field) } + else { [void]$queryFields.Add($field) } + } + } +} +$usesBody = $bodyFields.Count -gt 0 +$usesQuery = $queryFields.Count -gt 0 + +# --- 5. Discover required-field guards from ' is required' literals --- +$requiredFields = [System.Collections.Generic.List[string]]::new() +$strings = $funcAst.FindAll({ + param($node) $node -is [System.Management.Automation.Language.StringConstantExpressionAst] + }, $true) +foreach ($s in $strings) { + if ($s.Value -match '^(\w+)\s+is required') { + if (-not $requiredFields.Contains($Matches[1])) { $requiredFields.Add($Matches[1]) } + } +} + +# --- 6. Determine the Area (Tests/ subfolder) --- +if (-not $Area) { + $rel = $FunctionFile.Substring($ModulesRoot.Length).Replace('\', '/') + $Area = switch -Regex ($rel) { + 'Entrypoints/HTTP Functions' { 'Endpoint'; break } + '/Standards/' { 'Standards'; break } + '/Alerts/' { 'Alerts'; break } + default { 'Private' } + } +} +$OutDir = Join-Path $TestsRoot $Area +$OutFile = Join-Path $OutDir "$FunctionName.Tests.ps1" +if ((Test-Path $OutFile) -and -not $Force) { + throw "Test already exists: $OutFile (use -Force to overwrite)." +} + +# --- 7. Build the test file content --- +$nl = "`n" +$sb = [System.Text.StringBuilder]::new() +[void]$sb.Append("# Pester tests for $FunctionName$nl") +[void]$sb.Append("# Scaffolded by New-CippTest.ps1 - replace every # TODO with real assertions.$nl$nl") +[void]$sb.Append("BeforeAll {$nl") +[void]$sb.Append(" # Resolve by name under Modules/ so the test survives the function moving between modules.$nl") +[void]$sb.Append(" `$RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent `$PSCommandPath))$nl") +[void]$sb.Append(" `$FunctionPath = Get-ChildItem -Path (Join-Path `$RepoRoot 'Modules') -Recurse -Filter '$FunctionName.ps1' -File -ErrorAction SilentlyContinue |$nl") +[void]$sb.Append(" Select-Object -First 1 -ExpandProperty FullName$nl") +[void]$sb.Append(" if (-not `$FunctionPath) { throw 'Could not locate $FunctionName.ps1 under Modules/' }$nl$nl") + +if ($isEndpoint) { + [void]$sb.Append(" # Azure Functions binding types do not exist outside the Functions host - fake them.$nl") + [void]$sb.Append(" class HttpResponseContext {$nl [int]`$StatusCode$nl [object]`$Body$nl }$nl$nl") +} + +if ($helpers.Count -gt 0) { + [void]$sb.Append(" # Stub every CIPP helper the function calls so Pester's Mock has a command to replace.$nl") + foreach ($h in $helpers) { + [void]$sb.Append(" function $h { }$nl") + } + [void]$sb.Append($nl) +} + +[void]$sb.Append(" . `$FunctionPath$nl") +[void]$sb.Append("}$nl$nl") + +[void]$sb.Append("Describe '$FunctionName' {$nl") +[void]$sb.Append(" BeforeEach {$nl") +foreach ($h in $helpers) { + [void]$sb.Append(" Mock -CommandName $h -MockWith { } # TODO: return realistic data / capture args$nl") +} +[void]$sb.Append(" }$nl$nl") + +if ($isEndpoint) { + # Render a container literal (Body/Query) seeded with the fields it actually exposes. + function Format-Container { + param([System.Collections.Generic.SortedSet[string]]$Fields) + $pairs = foreach ($f in $Fields) { + if ($f -ieq 'tenantFilter') { "$f = 'contoso.onmicrosoft.com'" } else { "$f = 'TODO'" } + } + '[pscustomobject]@{ ' + ($pairs -join '; ') + ' }' + } + + # Happy-path case with a sample request built from discovered input fields. + [void]$sb.Append(" It 'returns OK on the happy path' {$nl") + [void]$sb.Append(" `$request = [pscustomobject]@{$nl") + [void]$sb.Append(" Params = @{ CIPPEndpoint = '$($FunctionName -replace '^Invoke-', '')' }$nl") + [void]$sb.Append(" Headers = @{ Authorization = 'token' }$nl") + if ($usesBody) { + [void]$sb.Append(" Body = $(Format-Container $bodyFields)$nl") + } + if ($usesQuery) { + [void]$sb.Append(" Query = $(Format-Container $queryFields)$nl") + } + [void]$sb.Append(" }$nl$nl") + [void]$sb.Append(" `$response = $FunctionName -Request `$request -TriggerMetadata `$null$nl$nl") + [void]$sb.Append(" `$response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK)$nl") + [void]$sb.Append(" # TODO: assert `$response.Body and Should -Invoke the helpers with -ParameterFilter$nl") + [void]$sb.Append(" }$nl") + + # Negative cases: endpoints validate required fields in order, so an all-empty request + # would always trip the FIRST guard. Instead start from a baseline that satisfies every + # guard, then drop ONLY the field under test so its specific guard is the one that fires. + function Get-FieldContainer { + param([string]$Field) + if ($bodyFields.Contains($Field)) { 'Body' } elseif ($queryFields.Contains($Field)) { 'Query' } else { 'Body' } + } + function Format-RequiredRequest { + param([string]$Omit) + $bodyPairs = [System.Collections.Generic.List[string]]::new() + $queryPairs = [System.Collections.Generic.List[string]]::new() + foreach ($f in $requiredFields) { + if ($f -ieq $Omit) { continue } + $val = if ($f -ieq 'tenantFilter') { "'contoso.onmicrosoft.com'" } else { "'TODO'" } + if ((Get-FieldContainer $f) -eq 'Body') { $bodyPairs.Add("$f = $val") } else { $queryPairs.Add("$f = $val") } + } + $b = '[pscustomobject]@{' + $(if ($bodyPairs.Count) { ' ' + ($bodyPairs -join '; ') + ' ' } else { '' }) + '}' + $q = '[pscustomobject]@{' + $(if ($queryPairs.Count) { ' ' + ($queryPairs -join '; ') + ' ' } else { '' }) + '}' + "Body = $b ; Query = $q" + } + + foreach ($field in $requiredFields) { + [void]$sb.Append($nl) + [void]$sb.Append(" It 'returns BadRequest when $field is missing' {$nl") + [void]$sb.Append(" # Baseline has every other required field populated; only $field is dropped.$nl") + [void]$sb.Append(" `$request = [pscustomobject]@{ $(Format-RequiredRequest -Omit $field) }$nl") + [void]$sb.Append(" `$response = $FunctionName -Request `$request -TriggerMetadata `$null$nl$nl") + [void]$sb.Append(" `$response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::BadRequest)$nl") + [void]$sb.Append(" `$response.Body.Results | Should -Match '$field is required'$nl") + [void]$sb.Append(" }$nl") + } +} else { + # Non-endpoint function: emit a single placeholder invocation case. + $callParams = ($paramNames | ForEach-Object { "-$_ `$null" }) -join ' ' + [void]$sb.Append(" It 'does the expected thing' {$nl") + [void]$sb.Append(" # TODO: call with realistic arguments and assert behaviour$nl") + [void]$sb.Append(" # $FunctionName $callParams$nl") + [void]$sb.Append(" `$true | Should -BeTrue # TODO: replace$nl") + [void]$sb.Append(" }$nl") +} + +[void]$sb.Append("}$nl") + +# --- 8. Write it out --- +if (-not (Test-Path $OutDir)) { New-Item -ItemType Directory -Path $OutDir -Force | Out-Null } +Set-Content -Path $OutFile -Value $sb.ToString() -Encoding utf8 -NoNewline + +Write-Host "Scaffolded: $OutFile" -ForegroundColor Green +Write-Host " Function : $FunctionFile" +Write-Host " Area : $Area | Endpoint: $isEndpoint" +Write-Host " Helpers : $(if ($helpers.Count) { $helpers -join ', ' } else { '(none detected)' })" +if ($isEndpoint) { + Write-Host " Body : $(if ($bodyFields.Count) { $bodyFields -join ', ' } else { '(none)' })" + Write-Host " Query : $(if ($queryFields.Count) { $queryFields -join ', ' } else { '(none)' })" + Write-Host " Required : $(if ($requiredFields.Count) { $requiredFields -join ', ' } else { '(none)' })" +} +Write-Host "Next: fill in the # TODOs, then run:" -ForegroundColor Cyan +Write-Host " pwsh $($MyInvocation.MyCommand.Path -replace 'New-CippTest','Invoke-CippTests') -Path `"$([System.IO.Path]::GetRelativePath($RepoRoot, $OutFile))`"" diff --git a/Tests/Private/Remove-CIPPDirectTenantToken.Tests.ps1 b/Tests/Private/Remove-CIPPDirectTenantToken.Tests.ps1 new file mode 100644 index 0000000000000..92c45f806b789 --- /dev/null +++ b/Tests/Private/Remove-CIPPDirectTenantToken.Tests.ps1 @@ -0,0 +1,103 @@ +# Pester tests for Remove-CIPPDirectTenantToken +# Verifies the stored per-tenant refresh token is removed from Key Vault (or DevSecrets locally), +# that the cached environment variable is cleared, and that cleanup failures never throw - callers +# invoke this while returning a different result to the user. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Remove-CIPPDirectTenantToken.ps1' + + # Minimal stubs so Mock has commands to replace during tests + function Get-CIPPTable { param($TableName) } + function Get-CIPPAzDataTableEntity { param($Context, $Filter) } + function Add-CIPPAzDataTableEntity { param($Context, $Entity, [switch]$Force) } + function Get-CippKeyVaultName { } + function Remove-CippKeyVaultSecret { param($VaultName, $Name) } + + . $FunctionPath +} + +Describe 'Remove-CIPPDirectTenantToken' { + BeforeEach { + $script:TenantId = '11111111-1111-1111-1111-111111111111' + $script:SecretName = '11111111_1111_1111_1111_111111111111' + + $script:OriginalStorage = $env:AzureWebJobsStorage + $script:OriginalNonLocal = $env:NonLocalHostAzurite + + Mock -CommandName Get-CippKeyVaultName -MockWith { 'stub-vault' } + Mock -CommandName Remove-CippKeyVaultSecret -MockWith { } + Mock -CommandName Get-CIPPTable -MockWith { @{ Context = 'stub-table' } } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { } + } + + AfterEach { + $env:AzureWebJobsStorage = $script:OriginalStorage + $env:NonLocalHostAzurite = $script:OriginalNonLocal + Remove-Item -Path "env:\$script:TenantId" -ErrorAction SilentlyContinue + Remove-Item -Path "env:\$script:SecretName" -ErrorAction SilentlyContinue + } + + Context 'Hosted (Key Vault) storage' { + BeforeEach { + $env:AzureWebJobsStorage = 'DefaultEndpointsProtocol=https;AccountName=stub' + $env:NonLocalHostAzurite = $null + } + + It 'deletes the Key Vault secret named after the tenant' { + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Should -Invoke -CommandName Remove-CippKeyVaultSecret -Times 1 -Exactly -ParameterFilter { + $Name -eq '11111111-1111-1111-1111-111111111111' + } + } + + It 'clears the cached environment variable' { + Set-Item -Path "env:\$script:TenantId" -Value 'stub-refresh-token' -Force + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Test-Path -Path "env:\$script:TenantId" | Should -BeFalse + } + + It 'does not throw when the secret cannot be deleted' { + Mock -CommandName Remove-CippKeyVaultSecret -MockWith { throw 'SecretNotFound' } + { Remove-CIPPDirectTenantToken -TenantId $script:TenantId } | Should -Not -Throw + } + + It 'does not touch DevSecrets' { + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Should -Invoke -CommandName Add-CIPPAzDataTableEntity -Times 0 -Exactly + } + } + + Context 'Local development storage' { + BeforeEach { + $env:AzureWebJobsStorage = 'UseDevelopmentStorage=true' + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + [pscustomobject]@{ + PartitionKey = 'Secret' + RowKey = 'Secret' + '11111111_1111_1111_1111_111111111111' = 'stub-refresh-token' + } + } + } + + It 'clears the stored secret value in the DevSecrets table' { + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Should -Invoke -CommandName Add-CIPPAzDataTableEntity -Times 1 -Exactly -ParameterFilter { + $Entity.'11111111_1111_1111_1111_111111111111' -eq '' + } + } + + It 'does not call Key Vault' { + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Should -Invoke -CommandName Remove-CippKeyVaultSecret -Times 0 -Exactly + } + + It 'leaves the table alone when no secret is stored for the tenant' { + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + [pscustomobject]@{ PartitionKey = 'Secret'; RowKey = 'Secret' } + } + Remove-CIPPDirectTenantToken -TenantId $script:TenantId + Should -Invoke -CommandName Add-CIPPAzDataTableEntity -Times 0 -Exactly + } + } +} diff --git a/Tests/Private/Remove-CIPPMailboxPermissions.Tests.ps1 b/Tests/Private/Remove-CIPPMailboxPermissions.Tests.ps1 new file mode 100644 index 0000000000000..cb6a7508c0dfa --- /dev/null +++ b/Tests/Private/Remove-CIPPMailboxPermissions.Tests.ps1 @@ -0,0 +1,147 @@ +# Pester tests for Remove-CIPPMailboxPermissions +# Covers the per-level single-mailbox removal branches (SendOnBehalf -> Set-Mailbox + GrantSendonBehalfTo, +# SendAs -> Remove-RecipientPermission, FullAccess -> Remove-MailboxPermission), cache-sync gating, +# the "already removed" message selection, the -UseCache report-driven path, and the error path. +# +# NOTE: the 'AllUsers' branch uses ForEach-Object -Parallel, which runs each iteration in a separate +# runspace that re-imports the real CIPPCore/AzBobbyTables modules. Pester mocks live in the test +# runspace and cannot cross that boundary, so that branch is intentionally NOT unit-tested here. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Remove-CIPPMailboxPermissions.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Remove-CIPPMailboxPermissions.ps1 under Modules/' } + + function New-ExoRequest { param($Anchor, $tenantid, $cmdlet, $cmdParams, $Select) } + function Get-CippException { param($Exception) } + function Get-CIPPMailboxPermissionReport { param($TenantFilter, [switch]$ByUser) } + function Sync-CIPPMailboxPermissionCache { param($TenantFilter, $MailboxIdentity, $User, $PermissionType, $Action) } + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) } + + . $FunctionPath +} + +Describe 'Remove-CIPPMailboxPermissions' { + BeforeEach { + # A successful EXO removal returns a truthy response that does NOT contain an error substring. + # (The branches use `$result -notlike '*error*'`; note that with a $null response, + # $null -notlike '' is $false, which would route to the "already removed" message.) + Mock -CommandName New-ExoRequest -MockWith { 'OK' } + Mock -CommandName Get-CippException -MockWith { [pscustomobject]@{ NormalizedError = 'boom' } } + Mock -CommandName Get-CIPPMailboxPermissionReport -MockWith { } + Mock -CommandName Sync-CIPPMailboxPermissionCache -MockWith { } + Mock -CommandName Write-LogMessage -MockWith { } + } + + Context 'Single-mailbox removal branches' { + It 'removes SendOnBehalf via Set-Mailbox with a GrantSendonBehalfTo remove hashtable' { + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('SendOnBehalf') + + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Set-Mailbox' -and + $cmdParams.GrantSendonBehalfTo.remove -eq 'user@contoso.com' -and + $cmdParams.GrantSendonBehalfTo['@odata.type'] -eq '#Exchange.GenericHashTable' + } + $result | Should -Match "Removed SendOnBehalf permissions for user@contoso.com from shared@contoso.com's mailbox\." + } + + It 'removes SendAs via Remove-RecipientPermission and syncs the cache' { + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('SendAs') + + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Remove-RecipientPermission' -and $cmdParams.Trustee -eq 'user@contoso.com' + } + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { + $PermissionType -eq 'SendAs' -and $Action -eq 'Remove' + } + $result | Should -Match "Removed SendAs permissions for user@contoso.com from shared@contoso.com's mailbox\." + } + + It 'reports SendAs as already-removed when EXO says the ACE is not present' { + Mock -CommandName New-ExoRequest -MockWith { "can't remove the ACL because the ACE isn't present" } + + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('SendAs') + + # cache is still synced regardless of whether the permission existed + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'SendAs' } + $result | Should -Match "were already removed or don't exist" + } + + It 'removes FullAccess via Remove-MailboxPermission and syncs the cache' { + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('FullAccess') + + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Remove-MailboxPermission' -and + $cmdParams.user -eq 'user@contoso.com' -and + $cmdParams.accessRights -contains 'FullAccess' + } + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { $PermissionType -eq 'FullAccess' } + $result | Should -Match "Removed FullAccess permissions for user@contoso.com from shared@contoso.com's mailbox\." + } + + It 'reports FullAccess as already-removed when EXO says the ACE does not exist' { + Mock -CommandName New-ExoRequest -MockWith { "can't remove because the ACE doesn't exist on the object." } + + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('FullAccess') + + $result | Should -Match "were already removed or don't exist" + } + + It 'processes multiple permission levels in one call' { + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('FullAccess', 'SendAs', 'SendOnBehalf') + + Should -Invoke New-ExoRequest -Times 3 -Exactly + $result.Count | Should -Be 3 + } + } + + Context '-UseCache path' { + It 'removes every cached permission for the user via recursion and returns per-mailbox results' { + Mock -CommandName Get-CIPPMailboxPermissionReport -MockWith { + [pscustomobject]@{ + User = 'user@contoso.com' + MailboxCount = 2 + Permissions = @( + [pscustomobject]@{ MailboxUPN = 'sharedA@contoso.com'; AccessRights = 'FullAccess' } + [pscustomobject]@{ MailboxUPN = 'sharedB@contoso.com'; AccessRights = 'SendAs' } + ) + } + } + + $result = Remove-CIPPMailboxPermissions -AccessUser 'user@contoso.com' -TenantFilter 'contoso.com' -UseCache + + Should -Invoke Get-CIPPMailboxPermissionReport -Times 1 -Exactly + # one EXO call per recursive removal (FullAccess + SendAs) + Should -Invoke New-ExoRequest -Times 2 -Exactly + $result.Count | Should -Be 2 + } + + It 'returns an informational message when no cached permissions exist' { + Mock -CommandName Get-CIPPMailboxPermissionReport -MockWith { } + + $result = Remove-CIPPMailboxPermissions -AccessUser 'user@contoso.com' -TenantFilter 'contoso.com' -UseCache + + Should -Invoke New-ExoRequest -Times 0 -Exactly + $result | Should -Be 'No mailbox permissions found for user@contoso.com in cached data' + } + } + + Context 'Error path' { + It 'returns a failure string and logs an error when New-ExoRequest throws' { + Mock -CommandName New-ExoRequest -MockWith { throw 'EXO down' } + + $result = Remove-CIPPMailboxPermissions -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -TenantFilter 'contoso.com' -PermissionsLevel @('FullAccess') + + $result | Should -Be 'Could not remove mailbox permissions for shared@contoso.com. Error: boom' + Should -Invoke Write-LogMessage -Times 1 -Exactly -ParameterFilter { $Sev -eq 'Error' } + } + } +} diff --git a/Tests/Private/Set-CIPPAuthenticationPolicy.Tests.ps1 b/Tests/Private/Set-CIPPAuthenticationPolicy.Tests.ps1 new file mode 100644 index 0000000000000..c5402c179623e --- /dev/null +++ b/Tests/Private/Set-CIPPAuthenticationPolicy.Tests.ps1 @@ -0,0 +1,129 @@ +# Pester tests for Set-CIPPAuthenticationPolicy +# Validates that method-specific sub-settings are written to the Graph PATCH body + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Set-CIPPAuthenticationPolicy.ps1' + + # Mock returns whatever the current test stored, simulating the existing Graph config + function New-GraphGetRequest { param($Uri, $tenantid, $AsApp) return $script:mockCurrentInfo } + function New-GraphPostRequest { + param($tenantid, $Uri, $Type, $Body, $ContentType, $AsApp) + $script:lastBody = $Body + } + function Write-LogMessage { param($headers, $API, $tenant, $message, $sev, $LogData) } + function Get-CippException { param($Exception) $Exception } + + . $FunctionPath +} + +Describe 'Set-CIPPAuthenticationPolicy' { + BeforeEach { + $script:lastBody = $null + $script:mockCurrentInfo = $null + } + + It 'writes Temporary Access Pass sub-settings to the PATCH body' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + isUsableOnce = $true + minimumLifetimeInMinutes = 10 + maximumLifetimeInMinutes = 20 + defaultLifetimeInMinutes = 15 + defaultLength = 8 + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'TemporaryAccessPass' ` + -Enabled $true -TAPisUsableOnce $false -TAPDefaultLength 12 -TAPDefaultLifeTime 90 + + $body = $script:lastBody | ConvertFrom-Json + $body.state | Should -Be 'enabled' + $body.isUsableOnce | Should -Be $false + $body.defaultLength | Should -Be 12 + $body.defaultLifetimeInMinutes | Should -Be 90 + } + + It 'honors the FIDO2 attestation/self-service parameters instead of forcing true' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + isAttestationEnforced = $true + isSelfServiceRegistrationAllowed = $true + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'FIDO2' ` + -Enabled $true -FIDO2AttestationEnforced $false -FIDO2SelfServiceRegistration $false + + $body = $script:lastBody | ConvertFrom-Json + $body.isAttestationEnforced | Should -Be $false + $body.isSelfServiceRegistrationAllowed | Should -Be $false + } + + It 'defaults FIDO2 to enforced/allowed when no parameters are passed' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + isAttestationEnforced = $false + isSelfServiceRegistrationAllowed = $false + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'FIDO2' -Enabled $true + + $body = $script:lastBody | ConvertFrom-Json + $body.isAttestationEnforced | Should -Be $true + $body.isSelfServiceRegistrationAllowed | Should -Be $true + } + + It 'scopes the method to all users when GroupIds contains all_users' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + includeTargets = @() + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'softwareOath' ` + -Enabled $true -GroupIds @('all_users') + + $body = $script:lastBody | ConvertFrom-Json + $body.includeTargets[0].targetType | Should -Be 'group' + $body.includeTargets[0].id | Should -Be 'all_users' + } + + It 'stamps SMS isUsableForSignIn onto every include-target' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + includeTargets = @( + [pscustomobject]@{ targetType = 'group'; id = 'all_users' } + ) + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'SMS' ` + -Enabled $true -SmsIsUsableForSignIn $true + + $body = $script:lastBody | ConvertFrom-Json + $body.includeTargets[0].isUsableForSignIn | Should -Be $true + } + + It 'clears Email exclude targets when an empty group list is supplied' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + excludeTargets = @([pscustomobject]@{ targetType = 'group'; id = 'old-group' }) + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'Email' ` + -Enabled $true -EmailExcludeGroupIds @() + + $body = $script:lastBody | ConvertFrom-Json + @($body.excludeTargets).Count | Should -Be 0 + } + + It 'writes the Voice isOfficePhoneAllowed setting to the PATCH body' { + $script:mockCurrentInfo = [pscustomobject]@{ + state = 'disabled' + isOfficePhoneAllowed = $false + } + + Set-CIPPAuthenticationPolicy -Tenant 'contoso.onmicrosoft.com' -AuthenticationMethodId 'Voice' ` + -Enabled $true -VoiceIsOfficePhoneAllowed $true + + $body = $script:lastBody | ConvertFrom-Json + $body.isOfficePhoneAllowed | Should -Be $true + } +} diff --git a/Tests/Private/Set-CIPPMailboxAccess.Tests.ps1 b/Tests/Private/Set-CIPPMailboxAccess.Tests.ps1 new file mode 100644 index 0000000000000..d837ba181dabe --- /dev/null +++ b/Tests/Private/Set-CIPPMailboxAccess.Tests.ps1 @@ -0,0 +1,79 @@ +# Pester tests for Set-CIPPMailboxAccess +# Set-CIPPMailboxAccess now delegates each grant to Set-CIPPMailboxPermission (FullAccess / Add), so +# these tests cover the per-user fan-out, extraction of frontend objects with a .value property, +# AutoMap pass-through, and that one user's failure does not stop the rest (the delegate returns an +# error string rather than throwing). The EXO cmdlet mapping itself is covered by +# Set-CIPPMailboxPermission.Tests.ps1. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Set-CIPPMailboxAccess.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Set-CIPPMailboxAccess.ps1 under Modules/' } + + function Set-CIPPMailboxPermission { param($UserId, $AccessUser, $PermissionLevel, $Action, $AutoMap, $TenantFilter, $APIName, $Headers) } + + . $FunctionPath +} + +Describe 'Set-CIPPMailboxAccess' { + BeforeEach { + Mock -CommandName Set-CIPPMailboxPermission -MockWith { "Granted $AccessUser FullAccess to $UserId with automapping $AutoMap" } + } + + It 'delegates a single user to Set-CIPPMailboxPermission as a FullAccess Add' { + $result = Set-CIPPMailboxAccess -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -Automap $true -TenantFilter 'contoso.com' -AccessRights @('FullAccess') + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { + $UserId -eq 'shared@contoso.com' -and + $AccessUser -eq 'user@contoso.com' -and + $PermissionLevel -eq 'FullAccess' -and + $Action -eq 'Add' -and + $AutoMap -eq $true -and + $TenantFilter -eq 'contoso.com' + } + $result | Should -Contain 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + } + + It 'processes an array of users, one delegate call per user' { + $result = Set-CIPPMailboxAccess -userid 'shared@contoso.com' -AccessUser @('a@contoso.com', 'b@contoso.com') ` + -Automap $true -TenantFilter 'contoso.com' -AccessRights @('FullAccess') + + Should -Invoke Set-CIPPMailboxPermission -Times 2 -Exactly + $result.Count | Should -Be 2 + } + + It 'extracts the .value property from frontend objects' { + $accessUsers = @([pscustomobject]@{ value = 'picked@contoso.com'; label = 'Picked User' }) + + Set-CIPPMailboxAccess -userid 'shared@contoso.com' -AccessUser $accessUsers ` + -Automap $true -TenantFilter 'contoso.com' -AccessRights @('FullAccess') + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $AccessUser -eq 'picked@contoso.com' } + } + + It 'passes AutoMap through to the delegate when disabled' { + Set-CIPPMailboxAccess -userid 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -Automap $false -TenantFilter 'contoso.com' -AccessRights @('FullAccess') + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $AutoMap -eq $false } + } + + It 'continues to the next user when one user returns a failure string' { + Mock -CommandName Set-CIPPMailboxPermission -MockWith { + if ($AccessUser -eq 'bad@contoso.com') { + 'Failed to Add FullAccess for bad@contoso.com on shared@contoso.com: boom' + } else { + "Granted $AccessUser FullAccess to shared@contoso.com with automapping True" + } + } + + $result = Set-CIPPMailboxAccess -userid 'shared@contoso.com' -AccessUser @('bad@contoso.com', 'good@contoso.com') ` + -Automap $true -TenantFilter 'contoso.com' -AccessRights @('FullAccess') + + Should -Invoke Set-CIPPMailboxPermission -Times 2 -Exactly + ($result -join "`n") | Should -Match 'Failed to Add FullAccess for bad@contoso.com on shared@contoso.com: boom' + ($result -join "`n") | Should -Match 'Granted good@contoso.com FullAccess to shared@contoso.com' + } +} diff --git a/Tests/Private/Set-CIPPMailboxPermission.Tests.ps1 b/Tests/Private/Set-CIPPMailboxPermission.Tests.ps1 new file mode 100644 index 0000000000000..761057d51287c --- /dev/null +++ b/Tests/Private/Set-CIPPMailboxPermission.Tests.ps1 @@ -0,0 +1,185 @@ +# Pester tests for Set-CIPPMailboxPermission +# Covers the permission-level -> EXO cmdlet/parameter mapping (via -AsCmdletObject, no execution), +# the execute path (New-ExoRequest + logging), cache-sync gating, and the error path. + +BeforeAll { + # Resolve by name under Modules/ so the test survives the function moving between modules. + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Set-CIPPMailboxPermission.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Set-CIPPMailboxPermission.ps1 under Modules/' } + + # Stub every CIPP helper the function calls so Pester's Mock has a command to replace. + function New-ExoRequest { param($Anchor, $tenantid, $cmdlet, $cmdParams) } + function Get-CippException { param($Exception) } + function Sync-CIPPMailboxPermissionCache { param($TenantFilter, $MailboxIdentity, $User, $PermissionType, $Action) } + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) } + + . $FunctionPath +} + +Describe 'Set-CIPPMailboxPermission' { + + Context '-AsCmdletObject mapping matrix (no execution)' { + + It 'maps FullAccess Add to Add-MailboxPermission with automapping and InheritanceType' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'FullAccess' -Action 'Add' -AutoMap $true -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Add-MailboxPermission' + $result.Parameters.Identity | Should -Be 'shared@contoso.com' + $result.Parameters.user | Should -Be 'user@contoso.com' + $result.Parameters.accessRights | Should -Be @('FullAccess') + $result.Parameters.automapping | Should -BeTrue + $result.Parameters.InheritanceType | Should -Be 'all' + $result.Parameters.Confirm | Should -BeFalse + $result.ExpectedResult | Should -Be 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + } + + It 'passes automapping through as $false when AutoMap is disabled' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'FullAccess' -Action 'Add' -AutoMap $false -TenantFilter 'contoso.com' -AsCmdletObject + + $result.Parameters.automapping | Should -BeFalse + $result.ExpectedResult | Should -Match 'automapping False' + } + + It 'maps FullAccess Remove to Remove-MailboxPermission' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'FullAccess' -Action 'Remove' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Remove-MailboxPermission' + $result.Parameters.accessRights | Should -Be @('FullAccess') + $result.Parameters.Keys | Should -Not -Contain 'automapping' + $result.ExpectedResult | Should -Be 'Removed user@contoso.com FullAccess from shared@contoso.com' + } + + It 'maps SendAs Add to Add-RecipientPermission with Trustee' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'SendAs' -Action 'Add' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Add-RecipientPermission' + $result.Parameters.Trustee | Should -Be 'user@contoso.com' + $result.Parameters.accessRights | Should -Be @('SendAs') + $result.ExpectedResult | Should -Be 'Granted user@contoso.com SendAs permissions to shared@contoso.com' + } + + It 'maps SendAs Remove to Remove-RecipientPermission with Trustee' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'SendAs' -Action 'Remove' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Remove-RecipientPermission' + $result.Parameters.Trustee | Should -Be 'user@contoso.com' + $result.ExpectedResult | Should -Be 'Removed user@contoso.com SendAs permissions from shared@contoso.com' + } + + It 'maps SendOnBehalf Add to Set-Mailbox with GrantSendonBehalfTo add hashtable' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'SendOnBehalf' -Action 'Add' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Set-Mailbox' + $result.Parameters.GrantSendonBehalfTo['@odata.type'] | Should -Be '#Exchange.GenericHashTable' + $result.Parameters.GrantSendonBehalfTo.add | Should -Be 'user@contoso.com' + $result.Parameters.GrantSendonBehalfTo.Keys | Should -Not -Contain 'remove' + $result.ExpectedResult | Should -Be 'Granted user@contoso.com SendOnBehalf permissions to shared@contoso.com' + } + + It 'maps SendOnBehalf Remove to Set-Mailbox with GrantSendonBehalfTo remove hashtable' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'SendOnBehalf' -Action 'Remove' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Set-Mailbox' + $result.Parameters.GrantSendonBehalfTo.remove | Should -Be 'user@contoso.com' + $result.Parameters.GrantSendonBehalfTo.Keys | Should -Not -Contain 'add' + $result.ExpectedResult | Should -Be 'Removed user@contoso.com SendOnBehalf permissions from shared@contoso.com' + } + + It 'maps default-level Remove () to Remove-MailboxPermission with that access right' -ForEach @( + @{ Level = 'ReadPermission' } + @{ Level = 'ExternalAccount' } + @{ Level = 'DeleteItem' } + @{ Level = 'ChangePermission' } + @{ Level = 'ChangeOwner' } + ) { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel $Level -Action 'Remove' -TenantFilter 'contoso.com' -AsCmdletObject + + $result.CmdletName | Should -Be 'Remove-MailboxPermission' + $result.Parameters.accessRights | Should -Be @($Level) + $result.ExpectedResult | Should -Be "Removed user@contoso.com $Level from shared@contoso.com" + } + + It 'returns an unsupported-action string for default-level Add ()' -ForEach @( + @{ Level = 'ReadPermission' } + @{ Level = 'ExternalAccount' } + @{ Level = 'DeleteItem' } + @{ Level = 'ChangePermission' } + @{ Level = 'ChangeOwner' } + ) { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel $Level -Action 'Add' -TenantFilter 'contoso.com' -AsCmdletObject + + $result | Should -Be "Add action is not supported for $Level" + } + } + + Context 'Execute path' { + BeforeEach { + Mock -CommandName New-ExoRequest -MockWith { } + Mock -CommandName Sync-CIPPMailboxPermissionCache -MockWith { } + Mock -CommandName Write-LogMessage -MockWith { } + Mock -CommandName Get-CippException -MockWith { [pscustomobject]@{ NormalizedError = 'boom' } } + } + + It 'invokes New-ExoRequest with the mapped cmdlet/params anchored on the mailbox and returns the result string' { + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'FullAccess' -Action 'Add' -TenantFilter 'contoso.com' + + Should -Invoke New-ExoRequest -Times 1 -Exactly -ParameterFilter { + $cmdlet -eq 'Add-MailboxPermission' -and + $Anchor -eq 'shared@contoso.com' -and + $tenantid -eq 'contoso.com' -and + $cmdParams.user -eq 'user@contoso.com' + } + $result | Should -Be 'Granted user@contoso.com FullAccess to shared@contoso.com with automapping True' + } + + It 'logs an Info message on success' { + Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'SendAs' -Action 'Add' -TenantFilter 'contoso.com' + + Should -Invoke Write-LogMessage -Times 1 -Exactly -ParameterFilter { $Sev -eq 'Info' } + } + + It 'syncs the cache for cached permission types ()' -ForEach @( + @{ Level = 'FullAccess' } + @{ Level = 'SendAs' } + @{ Level = 'SendOnBehalf' } + ) { + Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel $Level -Action 'Add' -TenantFilter 'contoso.com' + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 1 -Exactly -ParameterFilter { + $PermissionType -eq $Level -and $Action -eq 'Add' + } + } + + It 'does not sync the cache for non-cached permission types' { + Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'ReadPermission' -Action 'Remove' -TenantFilter 'contoso.com' + + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 0 -Exactly + } + + It 'returns a failure string and logs an error when New-ExoRequest throws' { + Mock -CommandName New-ExoRequest -MockWith { throw 'EXO down' } + + $result = Set-CIPPMailboxPermission -UserId 'shared@contoso.com' -AccessUser 'user@contoso.com' ` + -PermissionLevel 'FullAccess' -Action 'Add' -TenantFilter 'contoso.com' + + $result | Should -Be 'Failed to Add FullAccess for user@contoso.com on shared@contoso.com: boom' + Should -Invoke Write-LogMessage -Times 1 -Exactly -ParameterFilter { $Sev -eq 'Error' } + Should -Invoke Sync-CIPPMailboxPermissionCache -Times 0 -Exactly + } + } +} diff --git a/Tests/Private/Set-CIPPMailboxVacation.Tests.ps1 b/Tests/Private/Set-CIPPMailboxVacation.Tests.ps1 new file mode 100644 index 0000000000000..f1aeeacced3ce --- /dev/null +++ b/Tests/Private/Set-CIPPMailboxVacation.Tests.ps1 @@ -0,0 +1,132 @@ +# Pester tests for Set-CIPPMailboxVacation +# Covers the mailbox-permission loop (delegating to Set-CIPPMailboxPermission), the calendar-permission +# loop (Set-CIPPCalendarPermission), hashtable vs PSCustomObject entry access, missing-field skips, +# Action propagation, and the calendar error path. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Set-CIPPMailboxVacation.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $FunctionPath) { throw 'Could not locate Set-CIPPMailboxVacation.ps1 under Modules/' } + + function Set-CIPPMailboxPermission { param($UserId, $AccessUser, $PermissionLevel, $Action, $AutoMap, $TenantFilter, $APIName, $Headers) } + function Set-CIPPCalendarPermission { param($TenantFilter, $UserID, $FolderName, $APIName, $Headers, $RemoveAccess, $UserToGetPermissions, $Permissions, $CanViewPrivateItems) } + function Get-CippException { param($Exception) } + + . $FunctionPath +} + +Describe 'Set-CIPPMailboxVacation' { + BeforeEach { + Mock -CommandName Set-CIPPMailboxPermission -MockWith { 'mailbox-perm-result' } + Mock -CommandName Set-CIPPCalendarPermission -MockWith { 'calendar-perm-result' } + Mock -CommandName Get-CippException -MockWith { [pscustomobject]@{ NormalizedError = 'boom' } } + } + + Context 'Mailbox permissions' { + It 'forwards each mailbox permission to Set-CIPPMailboxPermission with the requested Action' { + $perms = @( + [pscustomobject]@{ UserId = 'shared@contoso.com'; AccessUser = 'user@contoso.com'; PermissionLevel = 'FullAccess'; AutoMap = $true } + ) + + $results = Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -MailboxPermissions $perms + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { + $UserId -eq 'shared@contoso.com' -and + $AccessUser -eq 'user@contoso.com' -and + $PermissionLevel -eq 'FullAccess' -and + $Action -eq 'Add' -and + $AutoMap -eq $true -and + $TenantFilter -eq 'contoso.com' + } + $results | Should -Contain 'mailbox-perm-result' + } + + It 'propagates the Remove action to the delegate cmdlet' { + $perms = @([pscustomobject]@{ UserId = 'shared@contoso.com'; AccessUser = 'user@contoso.com'; PermissionLevel = 'SendAs' }) + + Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Remove' -MailboxPermissions $perms + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $Action -eq 'Remove' } + } + + It 'accepts hashtable entries as well as PSCustomObject entries' { + $perms = @(@{ UserId = 'shared@contoso.com'; AccessUser = 'user@contoso.com'; PermissionLevel = 'FullAccess' }) + + Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -MailboxPermissions $perms + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $UserId -eq 'shared@contoso.com' } + } + + It 'defaults AutoMap to $true when not supplied' { + $perms = @([pscustomobject]@{ UserId = 'shared@contoso.com'; AccessUser = 'user@contoso.com'; PermissionLevel = 'FullAccess' }) + + Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -MailboxPermissions $perms + + Should -Invoke Set-CIPPMailboxPermission -Times 1 -Exactly -ParameterFilter { $AutoMap -eq $true } + } + + It 'skips entries with missing required fields and records a skip message' { + $perms = @([pscustomobject]@{ UserId = 'shared@contoso.com'; PermissionLevel = 'FullAccess' }) # no AccessUser + + $results = Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -MailboxPermissions $perms + + Should -Invoke Set-CIPPMailboxPermission -Times 0 -Exactly + $results | Should -Contain 'Skipped mailbox permission with missing fields' + } + } + + Context 'Calendar permissions' { + It 'forwards Add calendar permissions with delegate, permissions and private-items flag' { + $cal = @( + [pscustomobject]@{ UserID = 'shared@contoso.com'; UserToGetPermissions = 'user@contoso.com'; FolderName = 'Calendar'; Permissions = 'Editor'; CanViewPrivateItems = $true } + ) + + $results = Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -CalendarPermissions $cal + + Should -Invoke Set-CIPPCalendarPermission -Times 1 -Exactly -ParameterFilter { + $UserID -eq 'shared@contoso.com' -and + $UserToGetPermissions -eq 'user@contoso.com' -and + $Permissions -eq 'Editor' -and + $CanViewPrivateItems -eq $true + } + $results | Should -Contain 'calendar-perm-result' + } + + It 'uses RemoveAccess when the action is Remove' { + $cal = @([pscustomobject]@{ UserID = 'shared@contoso.com'; UserToGetPermissions = 'user@contoso.com' }) + + Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Remove' -CalendarPermissions $cal + + Should -Invoke Set-CIPPCalendarPermission -Times 1 -Exactly -ParameterFilter { + $RemoveAccess -eq 'user@contoso.com' + } + } + + It 'defaults the calendar folder name to Calendar' { + $cal = @([pscustomobject]@{ UserID = 'shared@contoso.com'; UserToGetPermissions = 'user@contoso.com' }) + + Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -CalendarPermissions $cal + + Should -Invoke Set-CIPPCalendarPermission -Times 1 -Exactly -ParameterFilter { $FolderName -eq 'Calendar' } + } + + It 'skips calendar entries with missing required fields' { + $cal = @([pscustomobject]@{ UserID = 'shared@contoso.com' }) # no delegate + + $results = Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -CalendarPermissions $cal + + Should -Invoke Set-CIPPCalendarPermission -Times 0 -Exactly + $results | Should -Contain 'Skipped calendar permission with missing fields' + } + + It 'records a failure message when the calendar permission throws' { + Mock -CommandName Set-CIPPCalendarPermission -MockWith { throw 'cal down' } + $cal = @([pscustomobject]@{ UserID = 'shared@contoso.com'; UserToGetPermissions = 'user@contoso.com' }) + + $results = Set-CIPPMailboxVacation -TenantFilter 'contoso.com' -Action 'Add' -CalendarPermissions $cal + + $results | Should -Match 'Failed calendar permission for user@contoso.com on shared@contoso.com: boom' + } + } +} diff --git a/Tests/Private/Test-CIPPAccessTenant.Tests.ps1 b/Tests/Private/Test-CIPPAccessTenant.Tests.ps1 new file mode 100644 index 0000000000000..f8d8744c5055f --- /dev/null +++ b/Tests/Private/Test-CIPPAccessTenant.Tests.ps1 @@ -0,0 +1,187 @@ +# Pester tests for Test-CIPPAccessTenant +# Verifies that direct tenants are assessed on their own connectivity instead of on GDAP role +# assignments made to the partner tenant, and that the GDAP path is unchanged. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Test-CIPPAccessTenant.ps1' + + # Minimal stubs so Mock has commands to replace during tests + function Get-Tenants { param($TenantFilter, [switch]$IncludeErrors) } + function New-GraphGetRequest { param($uri, $tenantid) } + function New-GraphBulkRequest { param($tenantid, $Requests) } + function New-ExoRequest { param($tenantid, $cmdlet, $cmdParams) } + function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $Preset, [switch]$SkipLog) } + function Write-LogMessage { param($headers, $API, $tenant, $tenantId, $message, $sev, $LogData, $level) } + function Get-CippException { param($Exception) } + function Get-CIPPTable { param($TableName) } + function Add-CIPPAzDataTableEntity { param($Context, $Entity, [switch]$Force) } + + . $FunctionPath +} + +Describe 'Test-CIPPAccessTenant' { + BeforeEach { + $env:TenantID = '00000000-0000-0000-0000-00000000partner' + + Mock -CommandName Write-LogMessage -MockWith { } + Mock -CommandName Get-CippException -MockWith { @{ NormalizedError = 'stub error' } } + Mock -CommandName Get-CIPPTable -MockWith { @{ Context = 'stub-table' } } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { } + + # Skip the Exchange leg - it is identical for both tenant types and needs far more scaffolding. + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } + Mock -CommandName New-ExoRequest -MockWith { } + } + + Context 'Direct tenants' { + BeforeEach { + $script:AllExpectedRoleIds = @( + '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3', 'fe930be7-5e62-47db-91af-98c3a49a38b1', + '3a2c62db-5318-420d-8d74-23affee5d9d5', '29232cdf-9323-42fd-ade2-1d097af3e4de', + '194ae4cb-b126-40b2-bd5b-6091b380977d', '892c5842-a9a6-463a-8041-72aa08ca3cf6', + '7698a772-787b-4ac8-901f-60d6b08affd2', '69091246-20e8-4a56-aa4d-066075b2a7a8', + 'f28a1f50-f6e7-4571-818b-6a12f2af6b6c', '0526716b-113d-4c15-b2c8-68e3c22b9f80', + 'e8611ab8-c189-46e8-94e1-60213ab1f814', '7be44c8a-adaf-4e2a-84d6-ab2649e08a13', + 'b0f54661-2d74-4c50-afa3-1ec803f12efe', 'f2ef992c-3afb-46b9-b7cf-a126ee74c451', + '8329153b-31d0-4727-b945-745eb3bc5f31' + ) + + Mock -CommandName Get-Tenants -MockWith { + [pscustomobject]@{ + customerId = '11111111-1111-1111-1111-111111111111' + defaultDomainName = 'direct.onmicrosoft.com' + displayName = 'Direct Tenant' + delegatedPrivilegeStatus = 'directTenant' + } + } + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*/me?*' } -MockWith { + [pscustomobject]@{ + id = 'service-account-id' + displayName = 'CIPP Service Account' + userPrincipalName = 'cipp@direct.onmicrosoft.com' + } + } + # Default: the service account holds every expected role directly. + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*transitiveMemberOf*' } -MockWith { + $script:AllExpectedRoleIds | ForEach-Object { + [pscustomobject]@{ '@odata.type' = '#microsoft.graph.directoryRole'; roleTemplateId = $_ } + } + } + Mock -CommandName New-GraphBulkRequest -MockWith { @() } + } + + It 'reports the tenant as a Direct tenant' { + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + $Result.TenantType | Should -Be 'Direct' + } + + It 'records the service account it authenticated as' { + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + $Result.ServiceAccount | Should -Be 'cipp@direct.onmicrosoft.com' + } + + It 'does not enumerate partner GDAP role assignments' { + $null = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + Should -Invoke -CommandName New-GraphBulkRequest -Times 0 -Exactly + } + + It 'reports the roles the service account holds and none missing' { + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + $Result.GraphStatus | Should -BeTrue + @($Result.MissingRoles).Count | Should -Be 0 + @($Result.AssignedRoles).Count | Should -Be $script:AllExpectedRoleIds.Count + $Result.AssignedRoles[0].Group | Should -Be 'cipp@direct.onmicrosoft.com' + $Result.GraphTest | Should -Be 'Successfully connected to Graph' + } + + It 'reports missing required roles when the service account lacks them' { + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*transitiveMemberOf*' } -MockWith { + @([pscustomobject]@{ + '@odata.type' = '#microsoft.graph.directoryRole' + roleTemplateId = 'fe930be7-5e62-47db-91af-98c3a49a38b1' # User Administrator only + }) + } + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + @($Result.AssignedRoles).Count | Should -Be 1 + @($Result.MissingRoles).Name | Should -Contain 'Intune Administrator' + $Result.GraphTest | Should -BeLike '*missing required roles*' + } + + It 'treats Global Administrator as satisfying every expected role' { + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*transitiveMemberOf*' } -MockWith { + @([pscustomobject]@{ + '@odata.type' = '#microsoft.graph.directoryRole' + roleTemplateId = '62e90394-69f5-4237-9190-012177145e10' # Global Administrator + }) + } + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + @($Result.MissingRoles).Count | Should -Be 0 + @($Result.AssignedRoles).Count | Should -Be $script:AllExpectedRoleIds.Count + $Result.AssignedRoles[0].Group | Should -BeLike '*via Global Administrator*' + } + + It 'flags only optional roles when just those are absent' { + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*transitiveMemberOf*' } -MockWith { + $Required = $script:AllExpectedRoleIds | Select-Object -First 12 + $Required | ForEach-Object { + [pscustomobject]@{ '@odata.type' = '#microsoft.graph.directoryRole'; roleTemplateId = $_ } + } + } + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + @($Result.MissingRoles).Count | Should -Be 3 + $Result.GraphTest | Should -BeLike '*missing optional roles*' + } + + It 'ignores group memberships when deriving roles' { + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*transitiveMemberOf*' } -MockWith { + @( + [pscustomobject]@{ '@odata.type' = '#microsoft.graph.group'; id = 'some-group' } + [pscustomobject]@{ '@odata.type' = '#microsoft.graph.directoryRole'; roleTemplateId = 'fe930be7-5e62-47db-91af-98c3a49a38b1' } + ) + } + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + @($Result.AssignedRoles).Count | Should -Be 1 + } + + It 'fails the Graph check when the tenant token is not usable' { + Mock -CommandName New-GraphGetRequest -ParameterFilter { $uri -like '*/me?*' } -MockWith { + throw 'invalid_grant' + } + $Result = Test-CIPPAccessTenant -Tenant 'direct.onmicrosoft.com' + $Result.GraphStatus | Should -BeFalse + $Result.GraphTest | Should -BeLike 'Failed to connect to Graph*' + } + } + + Context 'GDAP tenants' { + BeforeEach { + Mock -CommandName Get-Tenants -MockWith { + [pscustomobject]@{ + customerId = '22222222-2222-2222-2222-222222222222' + defaultDomainName = 'gdap.onmicrosoft.com' + displayName = 'GDAP Tenant' + delegatedPrivilegeStatus = 'granularDelegatedAdminPrivileges' + } + } + Mock -CommandName New-GraphBulkRequest -MockWith { @() } + Mock -CommandName New-GraphGetRequest -MockWith { @() } + } + + It 'reports the tenant as a GDAP tenant' { + $Result = Test-CIPPAccessTenant -Tenant 'gdap.onmicrosoft.com' + $Result.TenantType | Should -Be 'GDAP' + } + + It 'still enumerates partner GDAP role assignments' { + $null = Test-CIPPAccessTenant -Tenant 'gdap.onmicrosoft.com' + Should -Invoke -CommandName New-GraphBulkRequest -Times 1 -Exactly + } + + It 'still reports missing roles when the partner holds no role assignments' { + $Result = Test-CIPPAccessTenant -Tenant 'gdap.onmicrosoft.com' + @($Result.MissingRoles).Count | Should -BeGreaterThan 0 + $Result.GraphTest | Should -BeLike '*missing required GDAP roles*' + } + } +} diff --git a/Tests/Reports/Get-CIPPDrift.Tests.ps1 b/Tests/Reports/Get-CIPPDrift.Tests.ps1 new file mode 100644 index 0000000000000..b69b241a59f33 --- /dev/null +++ b/Tests/Reports/Get-CIPPDrift.Tests.ps1 @@ -0,0 +1,568 @@ +# Pester tests for Get-CIPPDrift +# +# Covers: +# - The #6347 bug: raw .name comparison used to match $null -eq $null for policy types that have +# no .name property at all, silently suppressing tenant-only Intune drift detection. +# - A second regression discovered while validating the #6347 fix: collapsing template/tenant +# names to a single "effective name" (preferring displayName) breaks matching for Settings +# Catalog-style policies, whose templates always get a CIPP-forced .displayName but whose real +# Graph identity (and the only property tenant policies of that type actually have) is .name. +# - Conditional Access extra-policy matching (unaffected by either bug, used as a control). +# - Standards-deviation display name/description resolution (Intune/CA/ReusableSettings/Quarantine). +# - Stale tenantDrift row pruning, gated on whether the relevant Graph collection succeeded. +# +# Get-CIPPDrift talks to several CIPPCore/Az helpers; all are stubbed here and mocked per-scenario +# so the function under test can run standalone, following the convention in +# Tests/Alerts/Get-CIPPAlertIntunePolicyConflicts.Tests.ps1. + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Get-CIPPDrift.ps1' + + function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $Preset) } + function Get-CippTable { param($tablename) } + function Get-CIPPAzDataTableEntity { param($Filter, $TableName) } + function Get-CIPPTenantAlignment { param($TenantFilter, $TemplateId) } + function New-GraphBulkRequest { param($Requests, $tenantid, $asapp) } + function Add-CIPPAzDataTableEntity { param($Entity, [switch]$Force, $TableName) } + function Remove-AzDataTableEntity { param($Entity, $TableName) } + + # Builds an IntuneTemplate row the way the templates table stores it: JSON is a wrapper object + # (Displayname/Description/Type/RAWJson) where RAWJson is itself a JSON string of the captured + # policy body. RawPolicy is a hashtable/PSCustomObject for the *actual* Graph-shaped body (the + # thing that may or may not have .name / .displayName depending on policy type). + function New-IntuneTemplateRow { + param($RowKey, $DisplayName, $RawPolicy, $Description = 'desc', $Type = 'deviceCompliancePolicy', $Package) + $Wrapper = @{ + Displayname = $DisplayName + Description = $Description + Type = $Type + RAWJson = ($RawPolicy | ConvertTo-Json -Compress -Depth 10) + } + [pscustomobject]@{ + PartitionKey = 'IntuneTemplate' + RowKey = $RowKey + Package = $Package + JSON = ($Wrapper | ConvertTo-Json -Compress -Depth 10) + } + } + + function New-CATemplateRow { + param($RowKey, $Policy, $Package) + [pscustomobject]@{ + PartitionKey = 'CATemplate' + RowKey = $RowKey + Package = $Package + JSON = ($Policy | ConvertTo-Json -Compress -Depth 10) + } + } + + function New-DriftEntity { + param($StandardName, $Status = 'New', $Reason = $null, $User = $null) + [pscustomobject]@{ + StandardName = $StandardName + Status = $Status + Reason = $Reason + User = $User + } + } + + # NOTE: These two builders must live in this top-level BeforeAll (not directly inside a + # Describe block) because Pester v5 only re-executes BeforeAll/It bodies during the Run + # phase - plain `function` statements written directly in a Describe body only exist during + # the Discovery phase and are gone by the time Mock -MockWith scriptblocks actually invoke them. + function New-BaseAlignment { + param($TemplateGuids) + [pscustomobject]@{ + standardType = 'drift' + StandardName = 'Test Standard' + StandardId = 'sid-1' + AlignmentScore = 100 + CompliantStandards = 0 + ComparisonDetails = @() + LatestDataCollection = (Get-Date) + standardSettings = @{ + # Get-CIPPDrift iterates standardSettings.IntuneTemplate as an array and reads a + # single TemplateList.value per entry - it is one entry per selected template, not + # one entry with a comma-joined value. + IntuneTemplate = @($TemplateGuids | ForEach-Object { @{ TemplateList = @{ value = $_ } } }) + } + } + } + + function New-CABaseAlignment { + param($TemplateGuids) + [pscustomobject]@{ + standardType = 'drift' + StandardName = 'CA Standard' + StandardId = 'sid-2' + AlignmentScore = 100 + CompliantStandards = 0 + ComparisonDetails = @() + LatestDataCollection = (Get-Date) + standardSettings = @{ + ConditionalAccessTemplate = @($TemplateGuids | ForEach-Object { @{ TemplateList = @{ value = $_ } } }) + } + } + } + + . $FunctionPath +} + +Describe 'Get-CIPPDrift - Intune extra-policy matching (#6347 and Settings Catalog regression)' { + BeforeEach { + $script:IntuneCapable = $true + $script:ConditionalAccessCapable = $false + $script:IntuneTemplateRows = @() + $script:CATemplateRows = @() + $script:ReusableTemplateRows = @() + $script:DriftEntityRows = @() + $script:GraphResponses = @{} + $script:AddedDriftEntities = [System.Collections.Generic.List[object]]::new() + $script:RemovedDriftEntities = [System.Collections.Generic.List[object]]::new() + + Mock -CommandName Test-CIPPStandardLicense -MockWith { + param($StandardName, $TenantFilter, $Preset) + if ($Preset -eq 'Intune') { $script:IntuneCapable } else { $script:ConditionalAccessCapable } + } + Mock -CommandName Get-CippTable -MockWith { param($tablename) @{ TableName = $tablename } } + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @($script:IntuneTemplateRows) } + "*PartitionKey eq 'CATemplate'*" { return @($script:CATemplateRows) } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @($script:ReusableTemplateRows) } + default { return @($script:DriftEntityRows) } + } + } + Mock -CommandName New-GraphBulkRequest -MockWith { + param($Requests, $tenantid, $asapp) + foreach ($r in $Requests) { + [pscustomobject]@{ + id = $r.id + body = @{ value = @($script:GraphResponses[$r.id]) } + } + } + } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { + param($Entity, [switch]$Force, $TableName) + foreach ($e in @($Entity)) { $script:AddedDriftEntities.Add($e) } + } + Mock -CommandName Remove-AzDataTableEntity -MockWith { + param($Entity, $TableName) + $script:RemovedDriftEntities.Add($Entity) + } + } + + It 'does NOT match on the original null-eq-null bug (template and tenant both lack .name)' { + # Both sides are of a displayName-only Graph type (e.g. compliance policy): the raw captured + # body has no .name property at all, so it is $null on both sides. Names genuinely differ. + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Template A' -RawPolicy @{ id = 'tpl-1' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'Totally Different Policy' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 1 + $Result[0].currentDeviations[0].standardName | Should -Be 'IntuneTemplates.tenant-1' + $Result[0].currentDeviations[0].standardDisplayName | Should -Be 'Intune - Totally Different Policy' + } + + It 'matches on displayName-to-displayName when both sides have equal, non-null displayName' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Same Policy' -RawPolicy @{ id = 'tpl-1'; displayName = 'Same Policy' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'Same Policy' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'matches Settings Catalog policies on raw name-to-name even though the template also has a forced displayName' { + # Settings Catalog (deviceManagement/configurationPolicies) templates get a CIPP-friendly + # displayName forced onto them (Add-Member -Force) even though the underlying Graph object + # only ever has .name. The tenant-side policy, captured straight from Graph, has ONLY .name. + # A "collapsed effective name" comparison (prefer displayName if present) would compare the + # CIPP-friendly template name against the raw tenant .name and never match - that was the + # regression introduced by the first fix attempt for #6347. + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'My Settings Catalog Template' -Type 'configurationPolicy' -RawPolicy @{ id = 'tpl-1'; name = 'RawSettingsCatalogName123' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/configurationPolicies' = @( + @{ id = 'tenant-1'; name = 'RawSettingsCatalogName123' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'matches on the displayName-to-name cross pairing' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Cross Match' -RawPolicy @{ id = 'tpl-1' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/configurationPolicies' = @( + @{ id = 'tenant-1'; name = 'Cross Match' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'matches on the name-to-displayName cross pairing' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Some Friendly Name' -Type 'configurationPolicy' -RawPolicy @{ id = 'tpl-1'; name = 'Cross Match 2' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'Cross Match 2' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'reports a deviation when no pairing matches any template' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Template One' -RawPolicy @{ id = 'tpl-1'; name = 'template-one-raw' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'Unrelated Tenant Policy' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 1 + $Result[0].currentDeviations[0].expectedValue | Should -Match 'only exists in the tenant' + } + + It 'matches a later template when earlier templates in the loop do not match' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Not It' -RawPolicy @{ id = 'tpl-1' }) + (New-IntuneTemplateRow -RowKey 'guid-2' -DisplayName 'This One' -RawPolicy @{ id = 'tpl-2' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'This One' } + ) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1', 'guid-2')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'preserves an Accepted status across re-detection of the same extra policy' { + $script:IntuneTemplateRows = @( + (New-IntuneTemplateRow -RowKey 'guid-1' -DisplayName 'Template A' -RawPolicy @{ id = 'tpl-1' }) + ) + $script:GraphResponses = @{ + 'deviceManagement/deviceCompliancePolicies' = @( + @{ id = 'tenant-1'; displayName = 'Unrelated Tenant Policy' } + ) + } + $script:DriftEntityRows = @(New-DriftEntity -StandardName 'IntuneTemplates.tenant-1' -Status 'Accepted') + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-BaseAlignment -TemplateGuids @('guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + $Result[0].acceptedDeviationsCount | Should -Be 1 + $Result[0].acceptedDeviations[0].Status | Should -Be 'Accepted' + } +} + +Describe 'Get-CIPPDrift - Conditional Access extra-policy matching' { + BeforeEach { + $script:IntuneCapable = $false + $script:ConditionalAccessCapable = $true + $script:IntuneTemplateRows = @() + $script:CATemplateRows = @() + $script:ReusableTemplateRows = @() + $script:DriftEntityRows = @() + $script:GraphResponses = @{} + + Mock -CommandName Test-CIPPStandardLicense -MockWith { + param($StandardName, $TenantFilter, $Preset) + if ($Preset -eq 'Intune') { $script:IntuneCapable } else { $script:ConditionalAccessCapable } + } + Mock -CommandName Get-CippTable -MockWith { param($tablename) @{ TableName = $tablename } } + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @($script:IntuneTemplateRows) } + "*PartitionKey eq 'CATemplate'*" { return @($script:CATemplateRows) } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @($script:ReusableTemplateRows) } + default { return @($script:DriftEntityRows) } + } + } + Mock -CommandName New-GraphBulkRequest -MockWith { + param($Requests, $tenantid, $asapp) + foreach ($r in $Requests) { + [pscustomobject]@{ id = $r.id; body = @{ value = @($script:GraphResponses[$r.id]) } } + } + } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { param($Entity, [switch]$Force, $TableName) } + Mock -CommandName Remove-AzDataTableEntity -MockWith { param($Entity, $TableName) } + } + + It 'does not report a deviation when displayName matches exactly' { + $script:CATemplateRows = @(New-CATemplateRow -RowKey 'ca-guid-1' -Policy @{ id = 'ca-tpl-1'; displayName = 'Block Legacy Auth' }) + $script:GraphResponses = @{ 'policies' = @(@{ id = 'ca-tenant-1'; displayName = 'Block Legacy Auth' }) } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-CABaseAlignment -TemplateGuids @('ca-guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + } + + It 'reports a deviation with a Conditional Access label when displayName does not match any template' { + $script:CATemplateRows = @(New-CATemplateRow -RowKey 'ca-guid-1' -Policy @{ id = 'ca-tpl-1'; displayName = 'Block Legacy Auth' }) + $script:GraphResponses = @{ 'policies' = @(@{ id = 'ca-tenant-1'; displayName = 'Some Other CA Policy' }) } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { @(New-CABaseAlignment -TemplateGuids @('ca-guid-1')) } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 1 + $Result[0].currentDeviations[0].standardName | Should -Be 'ConditionalAccessTemplates.ca-tenant-1' + $Result[0].currentDeviations[0].standardDisplayName | Should -Be 'Conditional Access - Some Other CA Policy' + } +} + +Describe 'Get-CIPPDrift - standards deviation display name resolution' { + BeforeEach { + $script:IntuneCapable = $false + $script:ConditionalAccessCapable = $false + $script:IntuneTemplateRows = @() + $script:CATemplateRows = @() + $script:ReusableTemplateRows = @() + $script:DriftEntityRows = @() + $script:GraphResponses = @{} + + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } + Mock -CommandName Get-CippTable -MockWith { param($tablename) @{ TableName = $tablename } } + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @($script:IntuneTemplateRows) } + "*PartitionKey eq 'CATemplate'*" { return @($script:CATemplateRows) } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @($script:ReusableTemplateRows) } + default { return @($script:DriftEntityRows) } + } + } + Mock -CommandName New-GraphBulkRequest -MockWith { @() } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { param($Entity, [switch]$Force, $TableName) } + Mock -CommandName Remove-AzDataTableEntity -MockWith { param($Entity, $TableName) } + } + + It 'resolves the Intune template display name and description for standards.IntuneTemplate deviations' { + $script:IntuneTemplateRows = @(New-IntuneTemplateRow -RowKey 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' -DisplayName 'Compliance Baseline' -Description 'Baseline description' -RawPolicy @{}) + Mock -CommandName Get-CIPPTenantAlignment -MockWith { + @([pscustomobject]@{ + standardType = 'drift' + StandardName = 'Standard' + StandardId = 'sid-3' + AlignmentScore = 90 + CompliantStandards = 1 + LatestDataCollection = (Get-Date) + ComparisonDetails = @( + [pscustomobject]@{ + StandardName = 'standards.IntuneTemplate.aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.somesetting' + Compliant = $false + StandardValue = $true + ComplianceStatus = 'Non-Compliant' + } + ) + }) + } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Deviation = $Result[0].currentDeviations[0] + $Deviation.standardDisplayName | Should -Be 'Compliance Baseline' + $Deviation.standardDescription | Should -Be 'Baseline description' + } + + It 'decodes the hex-encoded name for standards.QuarantineTemplate deviations' { + $HexName = -join ([byte[]][System.Text.Encoding]::UTF8.GetBytes('Bad Policy') | ForEach-Object { $_.ToString('x2') }) + Mock -CommandName Get-CIPPTenantAlignment -MockWith { + @([pscustomobject]@{ + standardType = 'drift' + StandardName = 'Standard' + StandardId = 'sid-4' + AlignmentScore = 90 + CompliantStandards = 1 + LatestDataCollection = (Get-Date) + ComparisonDetails = @( + [pscustomobject]@{ + StandardName = "standards.QuarantineTemplate.$HexName" + Compliant = $false + StandardValue = $true + ComplianceStatus = 'Non-Compliant' + } + ) + }) + } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviations[0].standardDisplayName | Should -Be 'Quarantine Policy: Bad Policy' + } + + It 'separates License Missing deviations into their own bucket, not currentDeviations' { + Mock -CommandName Get-CIPPTenantAlignment -MockWith { + @([pscustomobject]@{ + standardType = 'drift' + StandardName = 'Standard' + StandardId = 'sid-5' + AlignmentScore = 90 + CompliantStandards = 1 + LatestDataCollection = (Get-Date) + ComparisonDetails = @( + [pscustomobject]@{ + StandardName = 'standards.SomeStandard' + Compliant = $false + StandardValue = $true + ComplianceStatus = 'License Missing' + } + ) + }) + } + + $Result = Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' + + $Result[0].currentDeviationsCount | Should -Be 0 + $Result[0].licenseMissingDeviationsCount | Should -Be 1 + } +} + +Describe 'Get-CIPPDrift - stale drift entity pruning' { + BeforeEach { + $script:IntuneCapable = $false + $script:ConditionalAccessCapable = $false + $script:IntuneTemplateRows = @() + $script:CATemplateRows = @() + $script:ReusableTemplateRows = @() + $script:GraphResponses = @{} + $script:RemovedDriftEntities = [System.Collections.Generic.List[object]]::new() + + Mock -CommandName Test-CIPPStandardLicense -MockWith { $false } + Mock -CommandName Get-CippTable -MockWith { param($tablename) @{ TableName = $tablename } } + Mock -CommandName New-GraphBulkRequest -MockWith { @() } + Mock -CommandName Add-CIPPAzDataTableEntity -MockWith { param($Entity, [switch]$Force, $TableName) } + Mock -CommandName Remove-AzDataTableEntity -MockWith { + param($Entity, $TableName) + $script:RemovedDriftEntities.Add($Entity) + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { + @([pscustomobject]@{ + standardType = 'drift' + StandardName = 'Standard' + StandardId = 'sid-6' + AlignmentScore = 100 + CompliantStandards = 0 + LatestDataCollection = (Get-Date) + ComparisonDetails = @() + }) + } + } + + It 'removes a stale plain standards drift row that no longer appears in the alignment' { + $script:DriftEntityRows = @(New-DriftEntity -StandardName 'standards.LongGoneStandard') + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @() } + "*PartitionKey eq 'CATemplate'*" { return @() } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @() } + default { return @($script:DriftEntityRows) } + } + } + + Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' | Out-Null + + $script:RemovedDriftEntities.Count | Should -Be 1 + $script:RemovedDriftEntities[0].StandardName | Should -Be 'standards.LongGoneStandard' + } + + It 'does not remove a stale IntuneTemplates row when the Intune policy collection did not run' { + # IntuneCapable is $false in this Describe block, so IntunePoliciesCollected never becomes + # $true; a stale IntuneTemplates.* row must be protected from deletion in that case, since we + # cannot prove the tenant policy is actually gone without a successful Graph collection. + $script:DriftEntityRows = @(New-DriftEntity -StandardName 'IntuneTemplates.some-tenant-policy-id') + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @() } + "*PartitionKey eq 'CATemplate'*" { return @() } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @() } + default { return @($script:DriftEntityRows) } + } + } + + Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' | Out-Null + + $script:RemovedDriftEntities.Count | Should -Be 0 + } + + It 'does not remove a drift row that is still referenced by the current alignment' { + $script:DriftEntityRows = @(New-DriftEntity -StandardName 'standards.StillRelevant') + Mock -CommandName Get-CIPPAzDataTableEntity -MockWith { + param($Filter, $TableName) + switch -Wildcard ($Filter) { + "*PartitionKey eq 'IntuneTemplate'*" { return @() } + "*PartitionKey eq 'CATemplate'*" { return @() } + "*PartitionKey eq 'IntuneReusableSettingTemplate'*" { return @() } + default { return @($script:DriftEntityRows) } + } + } + Mock -CommandName Get-CIPPTenantAlignment -MockWith { + @([pscustomobject]@{ + standardType = 'drift' + StandardName = 'Standard' + StandardId = 'sid-7' + AlignmentScore = 90 + CompliantStandards = 1 + LatestDataCollection = (Get-Date) + ComparisonDetails = @( + [pscustomobject]@{ + StandardName = 'standards.StillRelevant' + Compliant = $true + StandardValue = $true + ComplianceStatus = 'Compliant' + } + ) + }) + } + + Get-CIPPDrift -TenantFilter 'contoso.onmicrosoft.com' | Out-Null + + $script:RemovedDriftEntities.Count | Should -Be 0 + } +} diff --git a/Tests/Reports/Get-CIPPSharedMailboxAccountEnabledReport.Tests.ps1 b/Tests/Reports/Get-CIPPSharedMailboxAccountEnabledReport.Tests.ps1 new file mode 100644 index 0000000000000..991df44fd8206 --- /dev/null +++ b/Tests/Reports/Get-CIPPSharedMailboxAccountEnabledReport.Tests.ps1 @@ -0,0 +1,141 @@ +# Pester tests for Get-CIPPSharedMailboxAccountEnabledReport +# Verifies the cached Mailboxes + Users join, accountEnabled filtering, payload shape, and AllTenants fan-out + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $ReportPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Get-CIPPSharedMailboxAccountEnabledReport.ps1' + + # Minimal stubs so Mock has commands to replace during tests + function Get-CIPPDbItem { param($TenantFilter, $Type) } + function Get-Tenants { param([switch]$IncludeErrors) } + function Write-LogMessage { param($API, $tenant, $message, $sev) } + + . $ReportPath + + function New-DbItem { + param($PartitionKey, $RowKey, $Data, $Timestamp) + [pscustomobject]@{ + PartitionKey = $PartitionKey + RowKey = $RowKey + Timestamp = $Timestamp + Data = ($Data | ConvertTo-Json -Depth 5 -Compress) + } + } +} + +Describe 'Get-CIPPSharedMailboxAccountEnabledReport' { + BeforeEach { + $script:Tenant = 'contoso.onmicrosoft.com' + + $script:SharedMailbox = @{ UPN = 'shared@contoso.com'; recipientTypeDetails = 'SharedMailbox' } + $script:RegularMailbox = @{ UPN = 'user@contoso.com'; recipientTypeDetails = 'UserMailbox' } + + $script:EnabledUser = @{ + userPrincipalName = 'shared@contoso.com' + displayName = 'Shared Mailbox' + givenName = 'Shared' + surname = 'Mailbox' + accountEnabled = $true + assignedLicenses = @(@{ skuId = 'sku-1' }) + id = 'user-id-shared' + onPremisesSyncEnabled = $false + } + $script:RegularUser = @{ + userPrincipalName = 'user@contoso.com' + displayName = 'Regular User' + accountEnabled = $true + id = 'user-id-regular' + onPremisesSyncEnabled = $false + } + + $script:Now = Get-Date + + Mock -CommandName Write-LogMessage -MockWith { } + Mock -CommandName Get-Tenants -MockWith { @([pscustomobject]@{ defaultDomainName = 'contoso.onmicrosoft.com' }) } + } + + It 'joins a shared mailbox to its user and returns the live payload shape' { + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Mailboxes' } -MockWith { + @( + New-DbItem -PartitionKey $script:Tenant -RowKey 'Mailboxes-Count' -Data @{ Count = 2 } -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey '1' -Data $script:SharedMailbox -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey '2' -Data $script:RegularMailbox -Timestamp $script:Now + ) + } + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Users' } -MockWith { + @( + New-DbItem -PartitionKey $script:Tenant -RowKey 'Users-Count' -Data @{ Count = 2 } -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey 'u1' -Data $script:EnabledUser -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey 'u2' -Data $script:RegularUser -Timestamp $script:Now + ) + } + + $Result = Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $script:Tenant + + @($Result).Count | Should -Be 1 + $Result[0].UserPrincipalName | Should -Be 'shared@contoso.com' + $Result[0].id | Should -Be 'user-id-shared' + $Result[0].accountEnabled | Should -BeTrue + $Result[0].onPremisesSyncEnabled | Should -BeFalse + $Result[0].CacheTimestamp | Should -Not -BeNullOrEmpty + # Must not leak the regular (non-shared) mailbox + $Result.UserPrincipalName | Should -Not -Contain 'user@contoso.com' + } + + It 'excludes shared mailboxes whose user account is disabled' { + $script:EnabledUser.accountEnabled = $false + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Mailboxes' } -MockWith { + @( + New-DbItem -PartitionKey $script:Tenant -RowKey 'Mailboxes-Count' -Data @{ Count = 1 } -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey '1' -Data $script:SharedMailbox -Timestamp $script:Now + ) + } + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Users' } -MockWith { + @(New-DbItem -PartitionKey $script:Tenant -RowKey 'u1' -Data $script:EnabledUser -Timestamp $script:Now) + } + + $Result = Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $script:Tenant + + @($Result).Count | Should -Be 0 + } + + It 'returns an empty result (no throw) when the cache holds no enabled shared mailboxes' { + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Mailboxes' } -MockWith { + @( + New-DbItem -PartitionKey $script:Tenant -RowKey 'Mailboxes-Count' -Data @{ Count = 1 } -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey '1' -Data $script:RegularMailbox -Timestamp $script:Now + ) + } + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Users' } -MockWith { + @(New-DbItem -PartitionKey $script:Tenant -RowKey 'u2' -Data $script:RegularUser -Timestamp $script:Now) + } + + { Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $script:Tenant } | Should -Not -Throw + @(Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $script:Tenant).Count | Should -Be 0 + } + + It 'throws when no mailbox data is cached' { + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Mailboxes' } -MockWith { @() } + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Users' } -MockWith { @() } + + { Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter $script:Tenant } | Should -Throw '*Sync the report data first*' + } + + It 'adds a Tenant column for AllTenants' { + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Mailboxes' } -MockWith { + @( + New-DbItem -PartitionKey $script:Tenant -RowKey 'Mailboxes-Count' -Data @{ Count = 1 } -Timestamp $script:Now + New-DbItem -PartitionKey $script:Tenant -RowKey '1' -Data $script:SharedMailbox -Timestamp $script:Now + ) + } + Mock -CommandName Get-CIPPDbItem -ParameterFilter { $Type -eq 'Users' } -MockWith { + @(New-DbItem -PartitionKey $script:Tenant -RowKey 'u1' -Data $script:EnabledUser -Timestamp $script:Now) + } + + $Result = Get-CIPPSharedMailboxAccountEnabledReport -TenantFilter 'AllTenants' + + @($Result).Count | Should -Be 1 + $Result[0].Tenant | Should -Be 'contoso.onmicrosoft.com' + $Result[0].UserPrincipalName | Should -Be 'shared@contoso.com' + } +} diff --git a/Tests/Security/Invoke-ExecSetSecurityIncident.Tests.ps1 b/Tests/Security/Invoke-ExecSetSecurityIncident.Tests.ps1 new file mode 100644 index 0000000000000..8c12a28ca6ff6 --- /dev/null +++ b/Tests/Security/Invoke-ExecSetSecurityIncident.Tests.ps1 @@ -0,0 +1,129 @@ +# Pester tests for Invoke-ExecSetSecurityIncident +# Validates the PATCH body built for severity changes and resolving comments, +# and that free-text comments produce valid JSON (regression for the body builder). + +BeforeAll { + $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) + $FunctionPath = Join-Path $RepoRoot 'Modules/CIPPHTTP/Public/Entrypoints/HTTP Functions/Security/Invoke-ExecSetSecurityIncident.ps1' + + # The Functions worker exposes [HttpStatusCode] as an accelerator; register it for tests. + ([PSObject].Assembly.GetType('System.Management.Automation.TypeAccelerators')).GetMethod('Add').Invoke( + $null, @('HttpStatusCode', [System.Net.HttpStatusCode])) + + class HttpResponseContext { + [int]$StatusCode + [object]$Body + } + + function New-GraphPOSTRequest { param($uri, $type, $tenantid, $body, $asApp) $script:lastPatch = @{ Uri = $uri; Type = $type; Tenant = $tenantid; Body = $body } } + function Write-LogMessage { param($headers, $API, $tenant, $message, $Sev, $LogData) $script:logs += $message } + function Get-CippException { param($Exception) @{ NormalizedError = $Exception.Exception.Message } } + + . $FunctionPath +} + +Describe 'Invoke-ExecSetSecurityIncident' { + BeforeEach { + $script:lastPatch = $null + $script:logs = @() + } + + It 'sends only the chosen severity, leaving the assignee untouched' { + # The severity action omits Assigned, so no assignedTo should be written. + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecSetSecurityIncident' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + GUID = 'incident-1' + Severity = [pscustomobject]@{ value = 'high'; label = 'High' } + } + } + + $response = Invoke-ExecSetSecurityIncident -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $lastPatch.Type | Should -Be 'PATCH' + $lastPatch.Uri | Should -Match '/security/incidents/incident-1' + $parsed = $lastPatch.Body | ConvertFrom-Json + $parsed.severity | Should -Be 'high' + $parsed.PSObject.Properties.Name | Should -Not -Contain 'assignedTo' + } + + It 'assigns to the calling user when the AssignToSelf flag is set' { + $principal = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('{"userDetails":"caller@contoso.com"}')) + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecSetSecurityIncident' } + Headers = @{ 'x-ms-client-principal' = $principal } + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + GUID = 'incident-1' + AssignToSelf = $true + } + } + + $response = Invoke-ExecSetSecurityIncident -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + ($lastPatch.Body | ConvertFrom-Json).assignedTo | Should -Be 'caller@contoso.com' + } + + It 'sends status resolved together with the resolving comment' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecSetSecurityIncident' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + GUID = 'incident-2' + Status = 'resolved' + Comment = 'Closed after review' + } + } + + $response = Invoke-ExecSetSecurityIncident -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $parsed = $lastPatch.Body | ConvertFrom-Json + $parsed.status | Should -Be 'resolved' + $parsed.resolvingComment | Should -Be 'Closed after review' + } + + It 'produces valid JSON when the comment contains quotes and newlines' { + $comment = "Line one with a `"quote`"`nLine two with a backslash \" + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecSetSecurityIncident' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + GUID = 'incident-3' + Status = 'resolved' + Comment = $comment + } + } + + $response = Invoke-ExecSetSecurityIncident -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + { $lastPatch.Body | ConvertFrom-Json } | Should -Not -Throw + ($lastPatch.Body | ConvertFrom-Json).resolvingComment | Should -Be $comment + } + + It 'refuses to update a redirected incident' { + $request = [pscustomobject]@{ + Params = @{ CIPPEndpoint = 'ExecSetSecurityIncident' } + Headers = @{} + Body = [pscustomobject]@{ + tenantFilter = 'contoso.onmicrosoft.com' + GUID = 'incident-4' + Status = 'resolved' + Redirected = 1 + } + } + + $response = Invoke-ExecSetSecurityIncident -Request $request -TriggerMetadata $null + + $response.StatusCode | Should -Be ([System.Net.HttpStatusCode]::OK) + $response.Body.Results | Should -Match 'Refused to update' + $lastPatch | Should -BeNullOrEmpty + } +} diff --git a/Tests/Standards/Invoke-CIPPStandardReusableSettingsTemplate.Tests.ps1 b/Tests/Standards/Invoke-CIPPStandardReusableSettingsTemplate.Tests.ps1 index 9777672690c5f..82e43e1d0d4b7 100644 --- a/Tests/Standards/Invoke-CIPPStandardReusableSettingsTemplate.Tests.ps1 +++ b/Tests/Standards/Invoke-CIPPStandardReusableSettingsTemplate.Tests.ps1 @@ -3,7 +3,10 @@ BeforeAll { $RepoRoot = Split-Path -Parent (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) - $StandardPath = Join-Path $RepoRoot 'Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardReusableSettingsTemplate.ps1' + # Resolve by name under Modules/ so the test survives the function moving between modules. + $StandardPath = Get-ChildItem -Path (Join-Path $RepoRoot 'Modules') -Recurse -Filter 'Invoke-CIPPStandardReusableSettingsTemplate.ps1' -File -ErrorAction SilentlyContinue | + Select-Object -First 1 -ExpandProperty FullName + if (-not $StandardPath) { throw 'Could not locate Invoke-CIPPStandardReusableSettingsTemplate.ps1 under Modules/' } function Test-CIPPStandardLicense { param($StandardName, $TenantFilter, $RequiredCapabilities) } function Get-CippTable { param($tablename) } diff --git a/cspell.json b/cspell.json index 42bdb4bb4fa43..6b2ac5a7bfdfa 100644 --- a/cspell.json +++ b/cspell.json @@ -4,6 +4,7 @@ "dictionaryDefinitions": [], "dictionaries": [], "words": [ + "SyncTest", "adminapi", "ADMS", "AITM", diff --git a/host.json b/host.json index 9de15356dcb97..afe2555a4578e 100644 --- a/host.json +++ b/host.json @@ -16,9 +16,9 @@ "distributedTracingEnabled": false, "version": "None" }, - "defaultVersion": "10.5.8", + "defaultVersion": "10.6.4", "versionMatchStrategy": "Strict", "versionFailureStrategy": "Fail" } } -} +} \ No newline at end of file diff --git a/redocly.yaml b/redocly.yaml new file mode 100644 index 0000000000000..481010ed7caed --- /dev/null +++ b/redocly.yaml @@ -0,0 +1,5 @@ +apis: + enriched: + root: ./openapi.enriched.json +extends: + - recommended diff --git a/version_latest.txt b/version_latest.txt index 0b09579a68d16..f52231543ca7c 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -10.5.8 +10.7.2 \ No newline at end of file